Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Apr 1999 14:48:56 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Alan Cox <alc@cs.rice.edu>
Cc:        Chuck Robey <chuckr@picnic.mat.net>, Poul-Henning Kamp <phk@critter.freebsd.dk>, Luoqi Chen <luoqi@watermarkgroup.com>, current@freebsd.org, smp@freebsd.org
Subject:   Re: HEADS UP! to commit SMP vmspace sharing patches
Message-ID:  <199904282148.OAA09354@apollo.backplane.com>
References:  <Pine.BSF.4.10.9904281400540.378-100000@picnic.mat.net> <199904281819.LAA07937@apollo.backplane.com> <19990428151454.O1121@nonpc.cs.rice.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
:On Wed, Apr 28, 1999 at 11:19:17AM -0700, Matthew Dillon wrote:
:>     I know this is a little late ... but I don't suppose there might be a
:>     way to lock a TLB entry in place?  That would solve the problem too.
:>     Baring that, %fs is the way to go.
:> 
:
:Unfortunately, on the x86, the answer is "No."  The only serious
:alternative was to put the commonly used per processor variables
:and a pointer to the less commonly used ones at the base of each
:process's/thread's kernel stack, i.e., the upages, where you could
:mask off bits from the stack pointer to arrive at the correct address.
:You'd then have to "refresh" most of these variables on a context switch
:(in case the process migrated).
:
:	Alan

    Too bad.

    There might be less confusion with %fs if we simply use it as a 
    'cpu number' index and then make all the cpu-dependant variables 
    standard arrays.  i.e. instead if 'struct proc *curproc' we would
    have 'struct proc *curproc[NCPU];'.  The assembly macro would
    simply retrieive the current cpu number from %fs, so:

	curproc[MYCPU] = ...

    This would be much less confusing then trying to encapsulate the concept
    of 'curproc', and we could do away with cpu-specific VM areas entirely.

    Sure, it would eat a few more cycles, but I don't think it would effect
    performance.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199904282148.OAA09354>