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 Remote pci.h/NPCI usage from i4b code. 2002-06-13 06:04:28 +00:00
files.ia64 ${MACHINE_ARCH}dump.c -> dump_machdep.c. 2002-05-13 02:40:21 +00:00
files.pc98 Remote pci.h/NPCI usage from i4b code. 2002-06-13 06:04:28 +00:00
files.powerpc Add setjmp (needed for DDB). 2002-07-10 12:26:17 +00:00
files.sparc64 Allow one to configure `sio'. 2002-06-18 01:14:54 +00:00
kern.mk For now, make the .ifdef GCC3 case default. We should change -Wno-format 2002-05-24 01:02:45 +00:00
kern.post.mk Fixed broken ``make -jX install''. 2002-05-23 07:25:01 +00:00
kern.pre.mk Removed a duplicate -ffreestanding. It's already set in bsd.kern.mk. 2002-06-16 10:42:05 +00:00
kmod_syms.awk Respect setting of NM to allow cross-building. 2002-04-19 09:04:53 +00:00
kmod.mk Do not override the standard `distribute' target that is currently 2002-07-11 14:13:37 +00:00
ldscript.alpha Use the kernbase symbol exported from locore.o instead of hardcoded magic 2001-09-20 09:19:38 +00:00
ldscript.amd64 Remove hard coded magic load address. Now to change the load address, 2001-09-18 01:12:43 +00:00
ldscript.i386 Remove hard coded magic load address. Now to change the load address, 2001-09-18 01:12:43 +00:00
ldscript.ia64 Put symbols at the start and end of the unwind section so that we can 2001-10-29 11:40:14 +00:00
ldscript.powerpc Page align the data segment. 2001-10-08 10:43:34 +00:00
ldscript.sparc64 Add kernbase symbol and use it instead of magic numbers in the 2001-09-21 05:43:38 +00:00
majors It's not "usio" anymore, it's "ucom". 2002-07-10 01:42:25 +00:00
Makefile.alpha Commit some infrastructure for turning on -Werror for kernel compiles. 2002-02-20 23:35:56 +00:00
Makefile.amd64 This is the start of the FreeBSD/x86_64 kernel. 2002-06-30 08:05:21 +00:00
Makefile.i386 Commit some infrastructure for turning on -Werror for kernel compiles. 2002-02-20 23:35:56 +00:00
Makefile.ia64 Remove CWARNFLAGS and add GCC3. We handle GCC3.x specific flags 2002-05-19 03:41:48 +00:00
Makefile.pc98 Commit some infrastructure for turning on -Werror for kernel compiles. 2002-02-20 23:35:56 +00:00
Makefile.powerpc Remove the setting of 'FMT'. We now do ELF by default, so only bother 2002-03-24 17:45:46 +00:00
Makefile.sparc64 Remove a hack for using an external compiler if cross compiling. 2002-05-26 15:55:28 +00:00
makeLINT.sed Join the pissing contest: generate LINT with a single sed(1) command. 2002-05-02 16:34:47 +00:00
newvers.sh setlocale(3) has been fixed to match POSIX standard: 2001-03-02 16:52:14 +00:00
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 Make the speed used by gdb over serial settable in the kernel configuration. 2002-06-18 21:30:37 +00:00
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 Add a DEBUGGER_ON_POWERFAIL option. This makes the power button on ultra 10s 2002-03-13 05:58:45 +00:00
systags.sh $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00