Skip site navigation (1)Skip section navigation (2)
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>