[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