4d88d6566a
- 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.
182 lines
4.4 KiB
Plaintext
182 lines
4.4 KiB
Plaintext
# $FreeBSD$
|
|
# Options specific to the pc98 platform kernels
|
|
|
|
MATH_EMULATE opt_math_emulate.h
|
|
GPL_MATH_EMULATE opt_math_emulate.h
|
|
DISABLE_PSE opt_pmap.h
|
|
PMAP_SHPGPERPROC opt_pmap.h
|
|
DISABLE_PG_G opt_pmap.h
|
|
PPC_PROBE_CHIPSET opt_ppc.h
|
|
PPC_DEBUG opt_ppc.h
|
|
SHOW_BUSYBUFS
|
|
PANIC_REBOOT_WAIT_TIME opt_panic.h
|
|
MAXMEM
|
|
PERFMON opt_perfmon.h
|
|
POWERFAIL_NMI opt_trap.h
|
|
AUTO_EOI_1 opt_auto_eoi.h
|
|
AUTO_EOI_2 opt_auto_eoi.h
|
|
I586_PMC_GUPROF opt_i586_guprof.h
|
|
WLCACHE opt_wavelan.h
|
|
WLDEBUG opt_wavelan.h
|
|
COMPAT_OLDISA
|
|
BROKEN_KEYBOARD_RESET opt_reset.h
|
|
KSTACK_PAGES
|
|
|
|
# Options for emulators. These should only be used at config time, so
|
|
# they are handled like options for static filesystems
|
|
# (see src/sys/conf/options), except for broken debugging options.
|
|
IBCS2 opt_dontuse.h
|
|
COMPAT_LINUX opt_dontuse.h
|
|
COMPAT_SVR4 opt_dontuse.h
|
|
DEBUG_SVR4 opt_svr4.h
|
|
PECOFF_SUPPORT opt_dontuse.h
|
|
PECOFF_DEBUG opt_pecoff.h
|
|
# i386 SMP options
|
|
APIC_IO opt_global.h
|
|
|
|
# Change KVM size. Changes things all over the kernel.
|
|
KVA_PAGES opt_global.h
|
|
|
|
CLK_CALIBRATION_LOOP opt_clock.h
|
|
CLK_USE_I8254_CALIBRATION opt_clock.h
|
|
CLK_USE_TSC_CALIBRATION opt_clock.h
|
|
TIMER_FREQ opt_clock.h
|
|
|
|
NO_F00F_HACK opt_cpu.h
|
|
CPU_BLUELIGHTNING_FPU_OP_CACHE opt_cpu.h
|
|
CPU_BLUELIGHTNING_3X opt_cpu.h
|
|
CPU_BTB_EN opt_cpu.h
|
|
CPU_CYRIX_NO_LOCK opt_cpu.h
|
|
CPU_DIRECT_MAPPED_CACHE opt_cpu.h
|
|
CPU_DISABLE_5X86_LSSER opt_cpu.h
|
|
CPU_FASTER_5X86_FPU opt_cpu.h
|
|
CPU_I486_ON_386 opt_cpu.h
|
|
CPU_IORT opt_cpu.h
|
|
CPU_L2_LATENCY opt_cpu.h
|
|
CPU_LOOP_EN opt_cpu.h
|
|
CPU_PPRO2CELERON opt_cpu.h
|
|
CPU_RSTK_EN opt_cpu.h
|
|
CPU_SUSP_HLT opt_cpu.h
|
|
CPU_UPGRADE_HW_CACHE opt_cpu.h
|
|
CPU_WT_ALLOC opt_cpu.h
|
|
CYRIX_CACHE_WORKS opt_cpu.h
|
|
CYRIX_CACHE_REALLY_WORKS opt_cpu.h
|
|
NO_MEMORY_HOLE opt_cpu.h
|
|
CPU_ENABLE_SSE opt_cpu.h
|
|
CPU_ATHLON_SSE_HACK opt_cpu.h
|
|
|
|
# The CPU type affects the endian conversion functions all over the kernel.
|
|
I386_CPU opt_global.h
|
|
I486_CPU opt_global.h
|
|
I586_CPU opt_global.h
|
|
I686_CPU opt_global.h
|
|
|
|
MAXCONS opt_syscons.h
|
|
SC_ALT_MOUSE_IMAGE opt_syscons.h
|
|
SC_CUT_SPACES2TABS opt_syscons.h
|
|
SC_CUT_SEPCHARS opt_syscons.h
|
|
SC_DEBUG_LEVEL opt_syscons.h
|
|
SC_DFLT_FONT opt_syscons.h
|
|
SC_DISABLE_DDBKEY opt_syscons.h
|
|
SC_DISABLE_REBOOT opt_syscons.h
|
|
SC_HISTORY_SIZE opt_syscons.h
|
|
SC_KERNEL_CONS_ATTR opt_syscons.h
|
|
SC_KERNEL_CONS_REV_ATTR opt_syscons.h
|
|
SC_MOUSE_CHAR opt_syscons.h
|
|
SC_NO_CUTPASTE opt_syscons.h
|
|
SC_NO_FONT_LOADING opt_syscons.h
|
|
SC_NO_HISTORY opt_syscons.h
|
|
SC_NO_SYSMOUSE opt_syscons.h
|
|
SC_NORM_ATTR opt_syscons.h
|
|
SC_NORM_REV_ATTR opt_syscons.h
|
|
SC_PIXEL_MODE opt_syscons.h
|
|
SC_RENDER_DEBUG opt_syscons.h
|
|
SC_TWOBUTTON_MOUSE opt_syscons.h
|
|
|
|
GDC opt_gdc.h
|
|
|
|
PUC_FASTINTR opt_puc.h
|
|
|
|
KBD_DISABLE_KEYMAP_LOAD opt_kbd.h
|
|
KBD_INSTALL_CDEV opt_kbd.h
|
|
KBD_MAXRETRY opt_kbd.h
|
|
KBD_MAXWAIT opt_kbd.h
|
|
KBD_RESETDELAY opt_kbd.h
|
|
KBDIO_DEBUG opt_kbd.h
|
|
|
|
# Video spigot
|
|
SPIGOT_UNSECURE opt_spigot.h
|
|
|
|
# -------------------------------
|
|
# isdn4bsd: passive ISA cards
|
|
# -------------------------------
|
|
TEL_S0_8 opt_i4b.h
|
|
TEL_S0_16 opt_i4b.h
|
|
TEL_S0_16_3 opt_i4b.h
|
|
AVM_A1 opt_i4b.h
|
|
USR_STI opt_i4b.h
|
|
ITKIX1 opt_i4b.h
|
|
ELSA_PCC16 opt_i4b.h
|
|
# -------------------------------
|
|
# isdn4bsd: passive ISA PnP cards
|
|
# -------------------------------
|
|
CRTX_S0_P opt_i4b.h
|
|
DRN_NGO opt_i4b.h
|
|
TEL_S0_16_3_P opt_i4b.h
|
|
SEDLBAUER opt_i4b.h
|
|
DYNALINK opt_i4b.h
|
|
ASUSCOM_IPAC opt_i4b.h
|
|
ELSA_QS1ISA opt_i4b.h
|
|
SIEMENS_ISURF2 opt_i4b.h
|
|
EICON_DIVA opt_i4b.h
|
|
COMPAQ_M610 opt_i4b.h
|
|
# -------------------------------
|
|
# isdn4bsd: passive PCI cards
|
|
# -------------------------------
|
|
ELSA_QS1PCI opt_i4b.h
|
|
# -------------------------------
|
|
# isdn4bsd: misc options
|
|
# -------------------------------
|
|
# temporary workaround for SMP machines
|
|
I4B_SMP_WORKAROUND opt_i4b.h
|
|
# enable VJ compression code for ipr i/f
|
|
IPR_VJ opt_i4b.h
|
|
IPR_LOG opt_i4b.h
|
|
|
|
# Total number of ports controlled by the dgb(4) driver.
|
|
# Defaults to NDGB*16.
|
|
NDGBPORTS opt_dgb.h
|
|
|
|
# bs driver options
|
|
SCSI_BOUNCE_SIZE opt_bs.h
|
|
BS_TARG_SAFEMODE opt_bs.h
|
|
|
|
# ct driver options
|
|
CT_USE_RELOCATE_OFFSET opt_ct.h
|
|
CT_BUS_WEIGHT opt_ct.h
|
|
|
|
# npx options
|
|
FPU_ERROR_BROKEN opt_npx.h
|
|
|
|
# PC98 options
|
|
PC98 opt_global.h
|
|
EPSON_BOUNCEDMA opt_pc98.h
|
|
EPSON_MEMWIN opt_pc98.h
|
|
LINE30 opt_syscons.h
|
|
|
|
# Device options
|
|
DEV_NPX opt_npx.h
|
|
DEV_SPLASH opt_splash.h
|
|
DEV_MECIA opt_mecia.h
|
|
|
|
# SMB/CIFS requester
|
|
NETSMB opt_netsmb.h
|
|
NETSMBCRYPTO opt_netsmb.h
|
|
|
|
# SMB/CIFS filesystem
|
|
SMBFS
|
|
|
|
# -------------------------------
|
|
# EOF
|
|
# -------------------------------
|