From owner-freebsd-smp Mon Nov 25 03:43:10 1996 Return-Path: owner-smp Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id DAA10045 for smp-outgoing; Mon, 25 Nov 1996 03:43:10 -0800 (PST) Received: (from peter@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id DAA10036 for freebsd-smp; Mon, 25 Nov 1996 03:43:03 -0800 (PST) Date: Mon, 25 Nov 1996 03:43:03 -0800 (PST) From: Peter Wemm Message-Id: <199611251143.DAA10036@freefall.freebsd.org> To: freebsd-smp Subject: cvs commit: sys/i386/i386 locore.s swtch.s sys/i386/include pmap.h Sender: owner-smp@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk peter 96/11/25 03:42:59 Modified: i386/include pmap.h i386/i386 locore.s swtch.s Log: Implement part 1 of per-cpu private pages. This lowers th max kernel VM from 252MB to 248MB so that we can steal a PDE slot for the per-cpu page table. This is copied on cpu_switch(). Note, this is not complete yet. Presently, only one set is created for boot cpu. At present, there is a 4K page at 0xff800000, there is a 4K page mapping the default local apic address to 0xff801000, and the IO apic to 0xff802000. These are just for experimenting, don't panic. :-) Things like curproc, curpcb, runtime, cpu_id, etc will be linked to load in the private page once it's finished, eliminating the need for macros looking up arrays with NCPU elements etc. Each private page is also mapped into the global kvm space, there will be an array of pointers to them, so it'll be possible to get to cpu#6's curproc by doing doing something like: cpudata[6]->curproc. This assumes there will be a 'struct' to make dereferenced accesses to the private pages. Revision Changes Path 1.2 +86 -45 sys/i386/include/pmap.h 1.31 +64 -0 sys/i386/i386/locore.s 1.27 +25 -0 sys/i386/i386/swtch.s