freebsd-nq/sys/conf
Peter Wemm f1b665c8fe Revive backed out pmap related changes from Feb 2002. The highlights are:
- It actually works this time, honest!
- Fine grained TLB shootdowns for SMP on i386.  IPI's are very expensive,
  so try and optimize things where possible.
- Introduce ranged shootdowns that can be done as a single IPI.
- PG_G support for i386
- Specific-cpu targeted shootdowns.  For example, there is no sense in
  globally purging the TLB cache for where we are stealing a page from
  the local unshared process on the local cpu.  Use pm_active to track
  this.
- Add some instrumentation for the tlb shootdown code.
- Rip out SMP code from <machine/cpufunc.h>
- Try and fix some very bogus PG_G and PG_PS interactions that were bad
  enough to cause vm86 bios calls to break.  vm86 depended on our existing
  bugs and this was the cause of the VESA panics last time.
- Fix the silly one-line error that caused the 'panic: bad pte' last time.
- Fix a couple of other silly one-line errors that should have caused more
  pain than they did.

Some more work is needed:
- pmap_{zero,copy}_page[_idle].  These can be done without IPI's if we
  have a hook in cpu_switch.
- The IPI handlers need some cleanup.  I have a bogus %ds load that can
  be avoided.
- APTD handling is rather bogus and appears to be a large source of
  global TLB IPI shootdowns for no really good reason.

I see speedups of between 1.5% and ~4% on buildworlds in a while 1 loop.
I expect to see a bigger difference when there is significant pageout
activity or the system otherwise has memory shortages.

I have backed out a few optimizations that I had been using over the last
few days in order to be a little more conservative.  I'll revisit these
again over the next few days as the dust settles.

New option:  DISABLE_PG_G - In case I missed something.
2002-07-12 07:56:11 +00:00
..
defines
files Enable ISP SBus support. 2002-07-11 03:26:39 +00:00
files.alpha Desupport the TurboChannel Alpha's. This means the DEC3000/300* Pelic* 2002-07-09 19:20:18 +00:00
files.amd64 This is the start of the FreeBSD/x86_64 kernel. 2002-06-30 08:05:21 +00:00
files.i386
files.ia64
files.pc98
files.powerpc Add setjmp (needed for DDB). 2002-07-10 12:26:17 +00:00
files.sparc64
kern.mk
kern.post.mk
kern.pre.mk
kmod_syms.awk
kmod.mk Do not override the standard `distribute' target that is currently 2002-07-11 14:13:37 +00:00
ldscript.alpha
ldscript.amd64
ldscript.i386
ldscript.ia64
ldscript.powerpc
ldscript.sparc64
majors It's not "usio" anymore, it's "ucom". 2002-07-10 01:42:25 +00:00
Makefile.alpha
Makefile.amd64 This is the start of the FreeBSD/x86_64 kernel. 2002-06-30 08:05:21 +00:00
Makefile.i386
Makefile.ia64
Makefile.pc98
Makefile.powerpc
Makefile.sparc64
makeLINT.sed
newvers.sh
NOTES Fixed misspelling of "hint." as "hints." in the description of the "hint." 2002-07-11 20:43:37 +00:00
options Introduce syscall.master option 'COMPAT4' which allows one to wrap 2002-07-12 06:38:34 +00:00
options.alpha Desupport the TurboChannel Alpha's. This means the DEC3000/300* Pelic* 2002-07-09 19:20:18 +00:00
options.amd64 This is the start of the FreeBSD/x86_64 kernel. 2002-06-30 08:05:21 +00:00
options.i386 Revive backed out pmap related changes from Feb 2002. The highlights are: 2002-07-12 07:56:11 +00:00
options.ia64
options.pc98 Revive backed out pmap related changes from Feb 2002. The highlights are: 2002-07-12 07:56:11 +00:00
options.powerpc Driver for the Apple UniNorth Host-PCI bridge. 2002-07-09 13:34:09 +00:00
options.sparc64
systags.sh