Date: Tue, 26 Nov 1996 08:35:42 +0800 From: Peter Wemm <peter@spinner.dialix.com> To: Steve Passe <smp@csn.net> Cc: Poul-Henning Kamp <phk@critter.tfs.com>, freebsd-smp@freebsd.org Subject: Re: cvs commit: sys/i386/i386 locore.s swtch.s sys/i386/include pmap.h Message-ID: <199611260035.IAA02227@spinner.DIALix.COM> In-Reply-To: Your message of "Mon, 25 Nov 1996 10:05:58 MST." <199611251705.KAA01825@clem.systemsix.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Steve Passe wrote: > Hi, > > > > Going this way eliminates (for each reference to curproc): > > ... > > I thought of a shortcut for this awhile back but never tried it. Any code that > > is running inside the kernel and currently has the lock could skip this and > > determine which cpu it is with: > > > > #define LOCKED_CPUNUM() ((mp_lock & 0x0f000000) >> 24) > > > > you still have the shift, but the APIC access is eliminated. > gotto have my first cup of coffee b4 trying to think. This is not quite righ t, > still need the phyToLog indirection, the mplock uses physical CPU#. But it > does eliminate the APIC access, the most expensive part of the current call. Yes, I know the feeling. :-) I'm having a very slow start this morning too. Just as well Netscape sent me a double-sized coffee mug.. :-) BTW, I would like to change the mplocking to use the logical cpu numbering, since that's the only place left where it takes the physical number. Going via a private page mechanism means we can do this easily since we can supply a pre-shifted, masked and translated 32 bit int with the logical cpu number in 0x0N000000. > -- > Steve Passe | powered by > smp@csn.net | FreeBSD > Cheers, -Peter
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611260035.IAA02227>