aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2003-10-22 19:04:09 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2003-10-22 19:04:09 +0000
commit455b1d51aa0c69e6b56089b9bbddbf44d43f8048 (patch)
treee71f0669ad553e683674d56b1fbfdfb2e701faf2
parent84f7936869d3597aa0630743ca0f55ea824b880e (diff)
downloadsrc-455b1d51aa0c69e6b56089b9bbddbf44d43f8048.tar.gz
src-455b1d51aa0c69e6b56089b9bbddbf44d43f8048.zip
MFC: Always enable hyperthreading to avoid lockups due to APIC interrupt
routing problems. - Enable cpu_idle_hlt for the SMP case by default since that significantly helps HTT performance. - Provide a facility for disabling individual CPUs by refusing to schedule processes on them. - Use the above to provide a sysctl for disabling or enabling all logical CPUs. The default is to disable all logical CPUs. - Remove the 'HTT' kernel option now that it is obsolete. Submitted by: ps Approved by: re (murray)
Notes
Notes: svn path=/stable/4/; revision=121356
-rw-r--r--sys/conf/options.i3861
-rw-r--r--sys/conf/options.pc981
-rw-r--r--sys/i386/conf/LINT1
-rw-r--r--sys/i386/include/smp.h1
4 files changed, 1 insertions, 3 deletions
diff --git a/sys/conf/options.i386 b/sys/conf/options.i386
index 142cf7ba7055..186623823c76 100644
--- a/sys/conf/options.i386
+++ b/sys/conf/options.i386
@@ -32,7 +32,6 @@ DEBUG_SVR4 opt_svr4.h
# i386 SMP options
APIC_IO opt_global.h
-HTT
# Change KVM size. Changes things all over the kernel.
KVA_PAGES opt_global.h
diff --git a/sys/conf/options.pc98 b/sys/conf/options.pc98
index 328c0119e239..d3d308977fcf 100644
--- a/sys/conf/options.pc98
+++ b/sys/conf/options.pc98
@@ -32,7 +32,6 @@ DEBUG_SVR4 opt_svr4.h
# i386 SMP options
APIC_IO opt_global.h
-HTT
# Change KVM size. Changes things all over the kernel.
KVA_PAGES opt_global.h
diff --git a/sys/i386/conf/LINT b/sys/i386/conf/LINT
index 105bef71ef08..774642ba7496 100644
--- a/sys/i386/conf/LINT
+++ b/sys/i386/conf/LINT
@@ -122,7 +122,6 @@ options ROOTDEVNAME=\"ufs:da0s2e\"
# Mandatory:
options SMP # Symmetric MultiProcessor Kernel
options APIC_IO # Symmetric (APIC) I/O
-options HTT # HyperThreading Technology
#
# Rogue SMP hardware:
diff --git a/sys/i386/include/smp.h b/sys/i386/include/smp.h
index 91349c1b820e..757c22054425 100644
--- a/sys/i386/include/smp.h
+++ b/sys/i386/include/smp.h
@@ -121,6 +121,7 @@ int apic_src_bus_irq __P((int, int));
int apic_int_type __P((int, int));
int apic_trigger __P((int, int));
int apic_polarity __P((int, int));
+int mp_grab_cpu_hlt __P((void));
void assign_apic_irq __P((int apic, int intpin, int irq));
void revoke_apic_irq __P((int irq));
void bsp_apic_configure __P((void));