Jeff Hammond <[email protected]> writes: > I agree 100% that multithreaded codes that fault pages from the main thread > in a NUMA environment are doing something wrong ;-) > > Does calloc *guarantee* pages are not mapped? If I calloc(8), do I get the > zero page or part of the arena that's already mapped that is zeroed by the > heap manager?
Is your argument that calloc() should never be used in multi-threaded code? If the allocation is larger than MMAP_THRESHOLD (128 KiB by default for glibc) then it calls mmap. This obviously leaves an intermediate size that could be poorly mapped (assuming 4 KiB pages), but it's also so small that it easily fits in cache.
signature.asc
Description: PGP signature
