AMD64 infrastructure stage 1/99. This is just a preliminary commit. Many
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 2 Feb 2004 08:05:56 +0000 (08:05 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 2 Feb 2004 08:05:56 +0000 (08:05 +0000)
commitb940da15daf89f843604845bc023660063d937c1
treecd23d04fd400b9fea0f90f1c0edbb5dfb8c9b293
parent9e9672bdcc5bac4ae74019f0394d0862266bec83
AMD64 infrastructure stage 1/99.  This is just a preliminary commit.  Many
of these files are being brought in from FreeBSD-5.  The noteable exception
is sys/amd64/pmap.h, which contains some #if 0'd FreeBSD-5 stuff but has
the beginnings of a new MMU infrastructure.  NOTHING WILL BUILD YET!

The DFly 64 bit AMD work will have a lot of similarities to the FreeBSD-5
work, but the PMAP/MMU/VM subsystem support is going to be written from
scratch and diverge wildly from F-5.

In particular, it is my intent to entirely do-away with %fs for per-cpu
storage references and instead use the top level PML4 page table (512GB
per entry, 256TB total VM) as a fixed per-cpu entity.  Each cpu will get
its own PML4 table.  Initially only one entry (512GB of VM) in PML4 will
be used to represent UVM.  This is the entry that the thread switch code
changes out.  Other entries will be used:

    PML4 TABLE (each cpu gets its own table)

* 1 switched entry 512GB of UVM (expandable to more)
* 1 static entry 512GB of KVM
* 1 static entry to map physical memory
* 1 per-cpu entry to map the per-cpu globaldata space.
* Additional entries for recursive page tables, third party
  process address space caches (userspace<->userspace copying),
  and other features.

This should greatly simplify the PMAP code... no copies of the 'high' kernel
PDE entries, for example, and we still have the flexibility of switching out
the whole PML4 table at a later date without interfering with the basic
feature set.
45 files changed:
sys/amd64/amd64/genassym.c [new file with mode: 0644]
sys/amd64/include/asm.h [new file with mode: 0644]
sys/amd64/include/atomic.h [new file with mode: 0644]
sys/amd64/include/bootinfo.h [new file with mode: 0644]
sys/amd64/include/coredump.h [new file with mode: 0644]
sys/amd64/include/cpufunc.h [new file with mode: 0644]
sys/amd64/include/elf.h [new file with mode: 0644]
sys/amd64/include/endian.h [new file with mode: 0644]
sys/amd64/include/exec.h [new file with mode: 0644]
sys/amd64/include/float.h [new file with mode: 0644]
sys/amd64/include/fpu.h [new file with mode: 0644]
sys/amd64/include/frame.h [new file with mode: 0644]
sys/amd64/include/globaldata.h [new file with mode: 0644]
sys/amd64/include/ieeefp.h [new file with mode: 0644]
sys/amd64/include/limits.h [new file with mode: 0644]
sys/amd64/include/lock.h [new file with mode: 0644]
sys/amd64/include/md_var.h [new file with mode: 0644]
sys/amd64/include/param.h [new file with mode: 0644]
sys/amd64/include/pcb.h [new file with mode: 0644]
sys/amd64/include/pcb_ext.h [new file with mode: 0644]
sys/amd64/include/pmap.h [new file with mode: 0644]
sys/amd64/include/proc.h [new file with mode: 0644]
sys/amd64/include/profile.h [new file with mode: 0644]
sys/amd64/include/psl.h [new file with mode: 0644]
sys/amd64/include/reloc.h [new file with mode: 0644]
sys/amd64/include/segments.h [new file with mode: 0644]
sys/amd64/include/setjmp.h [new file with mode: 0644]
sys/amd64/include/sigframe.h [new file with mode: 0644]
sys/amd64/include/signal.h [new file with mode: 0644]
sys/amd64/include/specialreg.h [new file with mode: 0644]
sys/amd64/include/stdarg.h [new file with mode: 0644]
sys/amd64/include/stdint.h [new file with mode: 0644]
sys/amd64/include/sysarch.h [new file with mode: 0644]
sys/amd64/include/thread.h [new file with mode: 0644]
sys/amd64/include/trap.h [new file with mode: 0644]
sys/amd64/include/tss.h [new file with mode: 0644]
sys/amd64/include/types.h [new file with mode: 0644]
sys/amd64/include/ucontext.h [new file with mode: 0644]
sys/amd64/include/uvparam.h [new file with mode: 0644]
sys/amd64/include/vmparam.h [new file with mode: 0644]
sys/conf/Makefile.amd64 [new file with mode: 0644]
sys/conf/files.alpha [deleted file]
sys/conf/files.amd64 [new file with mode: 0644]
sys/conf/ldscript.amd64 [new file with mode: 0644]
sys/conf/options.amd64 [new file with mode: 0644]