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.

Attachment: signature.asc
Description: PGP signature

Reply via email to