cvs commit: src/sys/i386/i386 pmap.c
truckman at FreeBSD.org
Mon Nov 10 21:03:05 PST 2003
On 25 Oct, Alan Cox wrote:
> On Sat, Oct 25, 2003 at 11:14:48PM -0400, Jeff Roberson wrote:
>> Uhm, dumb question, why don't we just allocate one page of kva per
>> processor and avoid the mutex, the switchin/out, etc? To save KVA? At 3
>> pages per processor and a max of 8 processors on intel, that's 192k. We
>> can probably spare it. I just saved that much with some UMA tuning.
> The mutex and the switchin mechanism are addressing two distinct needs.
> The mutex exists because there is a single KVA for some low-level pmap
> functions on i386. (This could be changed, eliminating the need for
> the mutex.)
> If, however, you eliminate the need for the mutex, you still require
> the switchin mechanism as a means of handling preemption,
> specifically, migration of the preempted thread between CPUs. The
> alternative is to make pmap_zero_page() and the like critical
Why not allow preemption, but just mark the thread as being ineligable
for migration while it is executing pmap_zero_page() and similar bits of
code? The thread might have to wait longer to get the CPU again after
it was preempted, but so what.
More information about the cvs-all