+ revert-x86_64-mm-i386-prefer-tsc.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     revert x86_64-mm-i386-prefer-tsc

has been added to the -mm tree.  Its filename is

     revert-x86_64-mm-i386-prefer-tsc.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this


From: Andrew Morton <akpm@xxxxxxxx>

Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 arch/i386/kernel/apic.c         |   49 ------------------------------
 arch/i386/kernel/timers/timer.c |   25 ---------------
 include/asm-i386/apicdef.h      |    8 ----
 include/asm-i386/hpet.h         |    2 -
 include/asm-i386/smp.h          |    3 -
 5 files changed, 87 deletions(-)

diff -puN arch/i386/kernel/apic.c~revert-x86_64-mm-i386-prefer-tsc arch/i386/kernel/apic.c
--- devel/arch/i386/kernel/apic.c~revert-x86_64-mm-i386-prefer-tsc	2006-05-15 20:38:15.000000000 -0700
+++ devel-akpm/arch/i386/kernel/apic.c	2006-05-15 20:38:15.000000000 -0700
@@ -1262,55 +1262,6 @@ int setup_profiling_timer(unsigned int m
 }
 
 /*
- * oem_force_hpet_timer -- force HPET mode for some boxes.
- *
- * Thus far, the major user of this is IBM's Summit2 series:
- *
- * Clustered boxes may have unsynced TSC problems if they are
- * multi-chassis. Use available data to take a good guess.
- * If in doubt, go HPET.
- */
-
-__cpuinit int oem_force_hpet_timer(void)
-{
-	int i, clusters, zeros;
-	unsigned id;
-	DECLARE_BITMAP(clustermap, NUM_APIC_CLUSTERS);
-
-	bitmap_zero(clustermap, NUM_APIC_CLUSTERS);
-
-	for (i = 0; i < NR_CPUS; i++) {
-		id = bios_cpu_apicid[i];
-		if (id != BAD_APICID)
-			__set_bit(APIC_CLUSTERID(id), clustermap);
-	}
-
-	/* Problem:  Partially populated chassis may not have CPUs in some of
-	 * the APIC clusters they have been allocated.  Only present CPUs have
-	 * bios_cpu_apicid entries, thus causing zeroes in the bitmap.  Since
-	 * clusters are allocated sequentially, count zeros only if they are
-	 * bounded by ones.
-	 */
-	clusters = 0;
-	zeros = 0;
-	for (i = 0; i < NUM_APIC_CLUSTERS; i++) {
-		if (test_bit(i, clustermap)) {
-			clusters += 1 + zeros;
-			zeros = 0;
-		} else
-			++zeros;
-	}
-
-	/*
-	 * If clusters > 2, then should be multi-chassis.  Return 1 for HPET.
-	 * Else return 0 to use TSC.
-	 * May have to revisit this when multi-core + hyperthreaded CPUs come
-	 * out, but AFAIK this will work even for them.
-	 */
-	return (clusters > 2);
-}
-
-/*
  * This interrupt should _never_ happen with our APIC/SMP architecture
  */
 fastcall void smp_spurious_interrupt(struct pt_regs *regs)
diff -puN arch/i386/kernel/timers/timer.c~revert-x86_64-mm-i386-prefer-tsc arch/i386/kernel/timers/timer.c
--- devel/arch/i386/kernel/timers/timer.c~revert-x86_64-mm-i386-prefer-tsc	2006-05-15 20:38:15.000000000 -0700
+++ devel-akpm/arch/i386/kernel/timers/timer.c	2006-05-15 20:38:15.000000000 -0700
@@ -2,7 +2,6 @@
 #include <linux/kernel.h>
 #include <linux/string.h>
 #include <asm/timer.h>
-#include <asm/hpet.h>
 
 #ifdef CONFIG_HPET_TIMER
 /*
@@ -47,24 +46,6 @@ void clock_fallback(void)
 	cur_timer = &timer_pit;
 }
 
-/*
- * Make an educated guess if the TSC is trustworthy and synchronized
- * over all CPUs.
- */
-__cpuinit int unsynchronized_tsc(void)
-{
-#ifdef CONFIG_SMP
-	if (oem_force_hpet_timer())
-		return 1;
- 	/* Intel systems are normally all synchronized. Exceptions
- 	   are handled in the OEM check above. */
- 	if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)
- 		return 0;
-#endif
- 	/* Assume multi socket systems are not synchronized */
- 	return num_present_cpus() > 1;
-}
-
 /* iterates through the list of timers, returning the first 
  * one that initializes successfully.
  */
@@ -72,12 +53,6 @@ struct timer_opts* __init select_timer(v
 {
 	int i = 0;
 	
-	/* Prefer TSC if possible because it's fastest */
-	if (clock_override[0] == 0 && !unsynchronized_tsc()) {
-		if (timer_tsc_init.init(clock_override) == 0)
-			return timer_tsc_init.opts;
-	}
-
 	/* find most preferred working timer */
 	while (timers[i]) {
 		if (timers[i]->init)
diff -puN include/asm-i386/apicdef.h~revert-x86_64-mm-i386-prefer-tsc include/asm-i386/apicdef.h
--- devel/include/asm-i386/apicdef.h~revert-x86_64-mm-i386-prefer-tsc	2006-05-15 20:38:15.000000000 -0700
+++ devel-akpm/include/asm-i386/apicdef.h	2006-05-15 20:38:15.000000000 -0700
@@ -113,14 +113,6 @@
 
 #define MAX_IO_APICS 64
 
-#define XAPIC_DEST_CPUS_SHIFT	4
-#define XAPIC_DEST_CPUS_MASK	((1u << XAPIC_DEST_CPUS_SHIFT) - 1)
-#define XAPIC_DEST_CLUSTER_MASK	(XAPIC_DEST_CPUS_MASK << XAPIC_DEST_CPUS_SHIFT)
-#define APIC_CLUSTER(apicid)	((apicid) & XAPIC_DEST_CLUSTER_MASK)
-#define APIC_CLUSTERID(apicid)	(APIC_CLUSTER(apicid) >> XAPIC_DEST_CPUS_SHIFT)
-#define APIC_CPUID(apicid)	((apicid) & XAPIC_DEST_CPUS_MASK)
-#define NUM_APIC_CLUSTERS	((BAD_APICID + 1) >> XAPIC_DEST_CPUS_SHIFT)
-
 /*
  * the local APIC register structure, memory mapped. Not terribly well
  * tested, but we might eventually use this one in the future - the
diff -puN include/asm-i386/hpet.h~revert-x86_64-mm-i386-prefer-tsc include/asm-i386/hpet.h
--- devel/include/asm-i386/hpet.h~revert-x86_64-mm-i386-prefer-tsc	2006-05-15 20:38:15.000000000 -0700
+++ devel-akpm/include/asm-i386/hpet.h	2006-05-15 20:38:15.000000000 -0700
@@ -101,8 +101,6 @@ extern int is_hpet_enabled(void);
 extern int is_hpet_capable(void);
 extern int hpet_readl(unsigned long a);
 
-extern int oem_force_hpet_timer(void);
-
 #ifdef CONFIG_HPET_EMULATE_RTC
 extern int hpet_mask_rtc_irq_bit(unsigned long bit_mask);
 extern int hpet_set_rtc_irq_bit(unsigned long bit_mask);
diff -puN include/asm-i386/smp.h~revert-x86_64-mm-i386-prefer-tsc include/asm-i386/smp.h
--- devel/include/asm-i386/smp.h~revert-x86_64-mm-i386-prefer-tsc	2006-05-15 20:38:15.000000000 -0700
+++ devel-akpm/include/asm-i386/smp.h	2006-05-15 20:38:15.000000000 -0700
@@ -97,9 +97,6 @@ extern void __cpu_die(unsigned int cpu);
 
 #ifndef __ASSEMBLY__
 #ifdef CONFIG_X86_LOCAL_APIC
-
-extern u8 bios_cpu_apicid[];
-
 static __inline int logical_smp_processor_id(void)
 {
 	/* we don't want to mark this access volatile - bad code generation */
_

Patches currently in -mm which might be from akpm@xxxxxxxx are

origin.patch
git-acpi.patch
acpi-update-asus_acpi-driver-registration-fix.patch
catch-notification-of-memory-add-event-of-acpi-via-container-driver-register-start-func-for-memory-device.patch
catch-notification-of-memory-add-event-of-acpi-via-container-driveravoid-redundant-call-add_memory.patch
acpi-dock-driver-interface-fixups.patch
remove-for_each_cpu.patch
sony_apci-resume.patch
uninorth-agp-warning-fixes.patch
alpha-agp-warning-fix.patch
powernow-k8-crash-workaround.patch
gregkh-driver-platform_bus-learns-about-modalias-warning-fix.patch
gregkh-driver-warn-when-statically-allocated-kobjects-are-used-fix.patch
s3c24xx-hardware-spi-driver-tidy.patch
git-dvb.patch
scx200_acb-use-pci-i-o-resource-when-appropriate-fix.patch
w1-warning-fix.patch
git-gfs2.patch
git-ieee1394.patch
git-infiniband.patch
via-pmu-add-input-device-tidy.patch
git-klibc.patch
git-klibc-build-hacks.patch
git-hdrcleanup-fixup.patch
git-hdrcleanup-vs-git-klibc-on-ia64.patch
git-hdrcleanup-vs-git-klibc-on-ia64-2.patch
git-hdrinstall-fixup.patch
git-libata-all.patch
sdhci-truncated-pointer-fix.patch
git-mtd.patch
git-mtd-fixup.patch
git-netdev-all.patch
smc911x-Kconfig-fix.patch
pci-error-recovery-e1000-network-device-driver.patch
git-powerpc.patch
powerpc-kbuild-warning-fix.patch
git-rbtree.patch
git-sas.patch
gregkh-pci-pci-64-bit-resources-drivers-others-changes-amba-fix.patch
kconfigurable-resources-core-changes-i386-fix.patch
kconfigurable-resources-core-changes-fix.patch
kconfigurable-resources-arch-dependent-changes-arch-a-i-fix.patch
typesh-sector_t-and-blkcnt_t-arent-for-userspace.patch
qla2xxx-lock-ordering-fix-warning-fix.patch
areca-raid-linux-scsi-driver-update6-for-2617-rc1-mm3-externs-go-in-headers.patch
git-scsi-target-fixup.patch
git-watchdog.patch
revert-x86_64-mm-i386-prefer-tsc.patch
x86_64-mm-remove-un-set_nmi_callback-and-reserve-release_lapic_nmi-functions-x86-fix.patch
x86_64-mm-remove-un-set_nmi_callback-and-reserve-release_lapic_nmi-functions-x86-fix-fix.patch
x86_64-mm-remove-un-set_nmi_callback-and-reserve-release_lapic_nmi-functions-x86_64-fix.patch
xfs-sparc32-build-fix.patch
pg_uncached-is-ia64-only.patch
pgdat-allocation-for-new-node-add-specify-node-id-powerpc-fix.patch
pgdat-allocation-for-new-node-add-specify-node-id-tidy.patch
pgdat-allocation-for-new-node-add-specify-node-id-fix-3.patch
pgdat-allocation-for-new-node-add-get-node-id-by-acpi-tidy.patch
pgdat-allocation-for-new-node-add-generic-alloc-node_data-tidy.patch
pgdat-allocation-for-new-node-add-refresh-node_data-fix.patch
pgdat-allocation-for-new-node-add-export-kswapd-start-func-tidy.patch
catch-valid-mem-range-at-onlining-memory-tidy.patch
catch-valid-mem-range-at-onlining-memory-fix.patch
mm-introduce-remap_vmalloc_range-fix.patch
tracking-dirty-pages-in-shared-mappings-v4-fix2.patch
tracking-dirty-pages-in-shared-mappings-v4-fix3.patch
throttle-writers-of-shared-mappings-tidy.patch
acx1xx-wireless-driver.patch
dont-use-flush_tlb_all-in-suspend-time-tidy.patch
prune_one_dentry-tweaks.patch
mmput-might-sleep.patch
jbd-avoid-kfree-null.patch
ext3_clear_inode-avoid-kfree-null.patch
leds-amstrad-delta-led-support-tidy.patch
percpu-counter-data-type-changes-to-suppport-fix.patch
connector-exports.patch
config_net=n-build-fix.patch
jbd-split-checkpoint-lists-tidy.patch
mark-address_space_operations-const-fix.patch
mark-address_space_operations-const-fix-2.patch
allow-for-per-cpu-data-being-in-tdata-and-tbss-sections-fix.patch
allow-for-per-cpu-data-being-in-tdata-and-tbss-sections-tidy.patch
deprecate-smbfs-in-favour-of-cifs.patch
hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking.patch
hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates.patch
hptiop-highpoint-rocketraid-3xxx-controller-driver-list-locking-updates-updates-2.patch
ufs-right-block-allocation-fixes.patch
sunsu-license-fix.patch
per-task-delay-accounting-proc-export-of-aggregated-block-i-o-delays-warning-fix.patch
hangcheck-remove-monotomic_clock-on-x86.patch
pi-futex-futex-code-cleanups-fix.patch
document-futex-pi-design-fix-fix.patch
mark-address_space_operations-const-vs-ecryptfs-mmap-operations.patch
ecryptfs-alpha-build-fix.patch
reiser4.patch
ide_dma_speed-fixes-warning-fix.patch
ide_dma_speed-fixes-tidy.patch
savagefb-add-state-save-and_restore-hooks-tidy.patch
kgdb-core-lite-add-reboot-command.patch
kgdb-8250-fix.patch
nr_blockdev_pages-in_interrupt-warning.patch
device-suspend-debug.patch
revert-tty-buffering-comment-out-debug-code.patch
slab-leaks3-default-y.patch
x86-kmap_atomic-debugging.patch
profile-likely-unlikely-macros-tidy.patch
profile-likely-unlikely-macros-fix.patch
profile-likely-unlikely-macros-fix-2.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux