The patch titled revert x86_64-mm-i386-prefer-tsc has been removed from the -mm tree. Its filename is revert-x86_64-mm-i386-prefer-tsc.patch This patch was probably dropped from -mm because it has now been merged into a subsystem tree or into Linus's tree, or because it was folded into its parent patch in the -mm tree. ------------------------------------------------------ Subject: revert x86_64-mm-i386-prefer-tsc 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 x86_64-dont-warn-for-overflow-in-nommu-case-when-dma_mask-is-32bit-fix.patch binfmt_flat-dont-check-for-emfile.patch s3c24xx-hardware-spi-driver-tidy.patch revert-forcedeth-fix-multi-irq-issues.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 git-dvb.patch scx200_acb-use-pci-i-o-resource-when-appropriate-fix.patch w1-warning-fix.patch git-gfs2.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 libata-reduce-timeouts.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 kconfigurable-resources-mtd-fixes.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 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 page-migration-simplify-migrate_pages-tweaks.patch acx1xx-wireless-driver.patch x86-kernel-irq-balancer-fix-tidy.patch move-vsyscall-page-out-of-fixmap-into-normal-vma-as-per-mmap-tidy.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 ufs-change-block-number-on-the-fly-tweaks.patch sunsu-license-fix.patch msnd-section-fix.patch openpromfs-factorize-out-tidy.patch add-driver-for-arm-amba-pl031-rtc-tidy.patch add-export_unused_symbol-and-export_unused_symbol_gpl-default.patch kernel-sysc-cleanups-fix.patch add-a-sysfs-file-to-determine-if-a-kexec-kernel-is-loaded-tidy.patch per-task-delay-accounting-proc-export-of-aggregated-block-i-o-delays-warning-fix.patch add-via-hw-rng-driver-fix.patch hangcheck-remove-monotomic_clock-on-x86.patch swap-prefetch-fix-lru_cache_add_tail-tidy.patch pi-futex-futex-code-cleanups-fix.patch document-futex-pi-design-fix-fix.patch ecryptfs-vs-streamline-generic_file_-interfaces-and-filemap.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 hpt3xx-rework-rate-filtering-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 git-viro-bird-volatile-fixup.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