Date: Tue, 25 Oct 2011 13:43:24 -0500 From: Dan Nelson <dnelson@allantgroup.com> To: Poul-Henning Kamp <phk@phk.freebsd.dk> Cc: freebsd-current@freebsd.org, Luigi Rizzo <rizzo@iet.unipi.it> Subject: Re: getting the cpuid for a userspace process ? Message-ID: <20111025184323.GH93709@dan.emsphone.com> In-Reply-To: <99483.1319566152@critter.freebsd.dk> References: <201110251342.45194.jhb@freebsd.org> <99483.1319566152@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Oct 25), Poul-Henning Kamp said: > In message <201110251342.45194.jhb@freebsd.org>, John Baldwin writes: > >On Tuesday, October 25, 2011 11:06:22 am Luigi Rizzo wrote: > >> as the subject says... is there any way to get the current CPU id for a > >> userspace process (of course, valid only at the time the function is > >> called as the process might be arbitrarily moved while it runs) > > > >Not from userland, no. On x86 you can use cpuid to fetch the APIC ID, > >but that does not map 1:1 to FreeBSD cpu IDs. > > How does JEmalloc do it ? Looking at the source, it just determines the number of CPUs, creates a number of arenas proportional to that, and assigns threads to an arena. If contention on a particular arena gets bad, the thread gets moved to another areana (see everything inside "#ifdef MALLOC_BALANCE" blocks). -- Dan Nelson dnelson@allantgroup.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111025184323.GH93709>