Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Mar 2003 11:56:39 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 26293 for review
Message-ID:  <200303031956.h23JudPh020225@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=26293

Change 26293 by jhb@jhb_laptop on 2003/03/03 11:56:17

	Add a HTT kernel option.

Affected files ...

.. //depot/projects/smpng/sys/conf/options.i386#21 edit
.. //depot/projects/smpng/sys/i386/conf/NOTES#49 edit
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#38 edit

Differences ...

==== //depot/projects/smpng/sys/conf/options.i386#21 (text+ko) ====

@@ -29,6 +29,7 @@
 PECOFF_DEBUG		opt_pecoff.h
 # i386 SMP options
 APIC_IO			opt_global.h
+HTT
 
 # Change KVM size.  Changes things all over the kernel.
 KVA_PAGES		opt_global.h

==== //depot/projects/smpng/sys/i386/conf/NOTES#49 (text+ko) ====

@@ -36,6 +36,7 @@
 
 # Mandatory:
 options 	APIC_IO			# Symmetric (APIC) I/O
+options 	HTT			# HyperThreading Technology
 
 #
 # Rogue SMP hardware:

==== //depot/projects/smpng/sys/i386/i386/mp_machdep.c#38 (text+ko) ====

@@ -26,6 +26,7 @@
  */
 
 #include "opt_cpu.h"
+#include "opt_htt.h"
 #include "opt_kstack_pages.h"
 
 #ifdef SMP
@@ -237,8 +238,10 @@
 
 #define MP_ANNOUNCE_POST	0x19
 
+#ifdef HTT
 static int need_hyperthreading_fixup;
 static u_int logical_cpus;
+#endif
 
 /* used to hold the AP's until we are ready to release them */
 static struct mtx ap_boot_mtx;
@@ -315,7 +318,9 @@
 static int	search_for_sig(u_int32_t target, int count);
 static void	mp_enable(u_int boot_addr);
 
+#ifdef HTT
 static void	mptable_hyperthread_fixup(u_int id_mask);
+#endif
 static void	mptable_pass1(void);
 static int	mptable_pass2(void);
 static void	default_mp_table(int type);
@@ -786,7 +791,9 @@
 	void*	position;
 	int	count;
 	int	type;
+#ifdef HTT
 	u_int	id_mask;
+#endif
 
 	POSTCODE(MPTABLE_PASS1_POST);
 
@@ -800,7 +807,9 @@
 	mp_nbusses = 0;
 	mp_napics = 0;
 	nintrs = 0;
+#ifdef HTT
 	id_mask = 0;
+#endif
 
 	/* check for use of 'default' configuration */
 	if (MPFPS_MPFB1 != 0) {
@@ -835,8 +844,10 @@
 				    & PROCENTRY_FLAG_EN) {
 					++mp_naps;
 					mp_maxid++;
+#ifdef HTT
 					id_mask |= 1 <<
 					    ((proc_entry_ptr)position)->apic_id;
+#endif
 				}
 				break;
 			case 1: /* bus_entry */
@@ -871,8 +882,10 @@
 		mp_naps = MAXCPU;
 	}
 
+#ifdef HTT
 	/* See if we need to fixup HT logical CPUs. */
 	mptable_hyperthread_fixup(id_mask);
+#endif
 	
 	/*
 	 * Count the BSP.
@@ -898,7 +911,9 @@
 static int
 mptable_pass2(void)
 {
+#ifdef HTT
 	struct PROCENTRY proc;
+#endif
 	int     x;
 	mpcth_t cth;
 	int     totalSize;
@@ -911,10 +926,12 @@
 
 	POSTCODE(MPTABLE_PASS2_POST);
 
+#ifdef HTT
 	/* Initialize fake proc entry for use with HT fixup. */
 	bzero(&proc, sizeof(proc));
 	proc.type = 0;
 	proc.cpu_flags = PROCENTRY_FLAG_EN;
+#endif
 
 	pgeflag = 0;		/* XXX - Not used under SMP yet.  */
 
@@ -994,6 +1011,7 @@
 			if (processor_entry(position, cpu))
 				++cpu;
 
+#ifdef HTT
 			if (need_hyperthreading_fixup) {
 				/*
 				 * Create fake mptable processor entries
@@ -1007,6 +1025,7 @@
 					cpu++;
 				}
 			}
+#endif
 			break;
 		case 1:
 			if (bus_entry(position, bus))
@@ -1039,6 +1058,7 @@
 	return 0;
 }
 
+#ifdef HTT
 /*
  * Check if we should perform a hyperthreading "fix-up" to
  * enumerate any logical CPU's that aren't already listed
@@ -1088,6 +1108,7 @@
 	mp_maxid *= logical_cpus;
 	mp_naps *= logical_cpus;
 }
+#endif
 
 void
 assign_apic_irq(int apic, int intpin, int irq)

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200303031956.h23JudPh020225>