[GHC] #11340: linker_unload test fails on ARM

GHC ghc-devs at haskell.org
Sun Jan 3 00:42:12 UTC 2016


#11340: linker_unload test fails on ARM
-------------------------------------+------------------------------
        Reporter:  bgamari           |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.0.1
       Component:  Compiler          |              Version:  7.10.3
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:  arm
 Type of failure:  Runtime crash     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+------------------------------

Comment (by bgamari):

 Looking a bit more at how m32 works, this behavior makes quite a bit of
 sense: it keeps a list of pages which it fills with small objects (which
 symbol extras are). Once a page is full it removes it from the active
 list. When an object in a non-active page is freed it decrements an object
 counter associated with that page. When the counter reaches zero, the page
 itself is freed.

 I can think of a few (imperfect) approaches to mitigate this,

  1. don't use m32 for symbol extras
  2. teach m32 to try harder to find memory in the needed range
  3. teach m32 to replace freed pages on the active list instead of freeing
 them
  4. just accept that object unloading on ARM is a bit broken and mark the
 test accordingly

 I'm currently leaning towards (4).

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11340#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list