Date: Thu, 22 May 2003 22:04:55 -0700 (PDT) From: Peter Wemm <peter@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/amd64/amd64 genassym.c locore.S machdep.c mem.c nexus.c pmap.c trap.c vm_machdep.c src/sys/amd64/include bus_amd64.h param.h pmap.h vmparam.h src/sys/conf kern.mk Message-ID: <200305230504.h4N54tIh013346@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
peter 2003/05/22 22:04:55 PDT FreeBSD src repository Modified files: sys/amd64/amd64 genassym.c locore.S machdep.c mem.c nexus.c pmap.c trap.c vm_machdep.c sys/amd64/include bus_amd64.h param.h pmap.h vmparam.h sys/conf kern.mk Log: Major pmap rework to take advantage of the larger address space on amd64 systems. Of note: - Implement a direct mapped region using 2MB pages. This eliminates the need for temporary mappings when getting ptes. This supports up to 512GB of physical memory for now. This should be enough for a while. - Implement a 4-tier page table system. Most of the infrastructure is there for 128TB of userland virtual address space, but only 512GB is presently enabled due to a mystery bug somewhere. The design of this was heavily inspired by the alpha pmap.c. - The kernel is moved into the negative address space(!). - The kernel has 2GB of KVM available. - Provide a uma memory allocator to use the direct map region to take advantage of the 2MB TLBs. - Fixed some assumptions in the bus_space macros about the ability to fit virtual addresses in an 'int'. Notable missing things: - pmap_growkernel() should be able to grow to 512GB of KVM by expanding downwards below kernbase. The kernel must be at the top 2GB of the negative address space because of gcc code generation strategies. - need to fix the >512GB user vm code. Approved by: re (blanket) Revision Changes Path 1.147 +10 -2 src/sys/amd64/amd64/genassym.c 1.174 +8 -1 src/sys/amd64/amd64/locore.S 1.580 +9 -77 src/sys/amd64/amd64/machdep.c 1.108 +2 -1 src/sys/amd64/amd64/mem.c 1.52 +2 -2 src/sys/amd64/amd64/nexus.c 1.408 +552 -447 src/sys/amd64/amd64/pmap.c 1.259 +1 -1 src/sys/amd64/amd64/trap.c 1.209 +1 -1 src/sys/amd64/amd64/vm_machdep.c 1.25 +6 -6 src/sys/amd64/include/bus_amd64.h 1.5 +5 -7 src/sys/amd64/include/param.h 1.102 +33 -46 src/sys/amd64/include/pmap.h 1.37 +24 -12 src/sys/amd64/include/vmparam.h 1.35 +1 -1 src/sys/conf/kern.mk
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305230504.h4N54tIh013346>