Subject: Re: Split pmap_activate() into pmap_activate() and pmap_newvmspace().
To: Chuck Silvers <chuq@chuq.com>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: tech-kern
Date: 09/07/2002 10:02:27
On Sat, Sep 07, 2002 at 09:39:23AM -0700, Chuck Silvers wrote:
> how is operation 1 per-LWP? the address space is the same for each LWP
> in a process, so wouldn't they use the same ASN, etc?
> if the PCB is going to be per-LWP, shouldn't there be a corresponding
> structure that is per-proc, and wouldn't any address space information
> be in that structure instead of in the PCB?
The "about to switch to a LWP that uses this address space" is a
per-LWP operation. I.e. "make sure this LWP's address space is ready
to go, because I'm about to use it".
> (though I'd think that the per-LWP structure would be an LCB,
> leaving "PCB" per-process. it does stand for "process control block"
> after all.)
Well, the PCB is part of u-area, which is a per-LWP thing. There's
really nothing left in the PCB if you split it into LCB and PCB, so
it was a "don't make too many waves" kind of approach taken :-)
> when would a process get a new address space while it has multiple LWPs?
> the address space changing out from under an LWP would cause a lot of problems,
> I'd think. could you give an example of how this would work?
I don't have any real scenarios for this right now. However, it was a
hole in the previous pmap interface specification, IMO.
See the diff I posted to tech-kern ... it might make things more clear.
--
-- Jason R. Thorpe <thorpej@wasabisystems.com>