tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: malloc, thread and alignment



   Date: Fri, 27 Mar 2015 16:30:32 +0100
   From: "Jean-Yves Migeon (NetBSD)" <jym%NetBSD.org@localhost>

   For x86 you can look at cpuctl(8), identifycpu() uses cpuid to get this 
   information. This is MD and varies between AMD/Intel, revisions... This 
   requires not-so-funny tests to deduce the correct value. I don't think 
   this is exposed through headers/libs for external use though.

   AFAICT !x86 platforms have nothing.

Perhaps we ought to expose it via a sysctl.

Someone^TM should document the kernel CACHE_LINE_SIZE, coherency_unit,
COHERENCY_UNIT, and figure out what it is worthwhile to expose MI to
userland.  Obviously some systems may have different instruction and
data cache line sizes, and maybe there are more exotic possibilities,
but presumably there is a good conservative estimate for user programs
to round buffers to.  jemalloc seems to use 64 bytes unconditionally.


Home | Main Index | Thread Index | Old Index