
#13362: GHC first generation of GC to be as large as largest cache size by default -------------------------------------+------------------------------------- Reporter: varosi | Owner: sjakobi Type: feature request | Status: new Priority: normal | Milestone: 8.6.1 Component: Runtime System | Version: 8.0.2 Resolution: | Keywords: numa cache gc | newcomers Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by sjakobi): I have [https://github.com/sjakobi/ghc/tree/T13362 a branch] that works for me on Windows 10 and Linux using an i7-4790K CPU. It would be great if y'all could test this on: * macOS / OS X * FreeBSD * ARM and other non-x86 architectures * Intel Haswell and Broadwell CPUs with L4 cache To ensure that the code works as intended, run a "Hello world"-program with `+RTS -s` and check that the report shows `(N+1) MB total memory in use` where `N` MB is the size of your largest cache. PRs to support other operating systems are also very welcome! :) Open design questions as of now: 1. If we only find an L1 cache, should we really go with an allocation area of typically just 32 or 64 kB? IMHO it might be better to ignore any L1 caches and to simply default to the old 1 MB in these cases. 2. What if we find an L4 cache with 64 or 128 **MB**? This would easier to decide if we got some benchmark results, for example in the style of [comment:7 varosi's]. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13362#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler