The patch titled revert "x86: fix call to set_cyc2ns_scale() from time_cpufreq_notifier()" has been added to the -mm tree. Its filename is revert-x86-fix-call-to-set_cyc2ns_scale-from-time_cpufreq_notifier.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: revert "x86: fix call to set_cyc2ns_scale() from time_cpufreq_notifier()" From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Revert commit 4f41c94d5c24e3b3453e9df03c0a80ca1acf00d2 Author: Karsten Wiese <fzu@xxxxxxxxxxxxxxxxxxxxx> Date: Mon Apr 7 12:14:45 2008 +0200 x86: fix call to set_cyc2ns_scale() from time_cpufreq_notifier() In time_cpufreq_notifier() the cpu id to act upon is held in freq->cpu. Use it instead of smp_processor_id() in the call to set_cyc2ns_scale(). This makes the preempt_*able() unnecessary and lets set_cyc2ns_scale() update the intended cpu's cyc2ns. Related mail/thread: http://lkml.org/lkml/2007/12/7/130 Signed-off-by: Karsten Wiese <fzu@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Ingo Molnar <mingo@xxxxxxx> Andi says: As pointed out earlier in review http://article.gmane.org/gmane.linux.kernel/662781 4f41c94d5c24e3b3453e9df03c0a80ca1acf00d2 is completely wrong because set_cyc2ns_scale() really needs to be executed on the to be updated CPU because it runs RDTSC. The original code it changes was also not quite correct on preemptible kernels, but this patch made it even worse. I would recommend to revert it. Cc: Andi Kleen <ak@xxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Cc: Karsten Wiese <fzu@xxxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/x86/kernel/tsc_32.c | 4 +++- arch/x86/kernel/tsc_64.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff -puN arch/x86/kernel/tsc_32.c~revert-x86-fix-call-to-set_cyc2ns_scale-from-time_cpufreq_notifier arch/x86/kernel/tsc_32.c --- a/arch/x86/kernel/tsc_32.c~revert-x86-fix-call-to-set_cyc2ns_scale-from-time_cpufreq_notifier +++ a/arch/x86/kernel/tsc_32.c @@ -256,7 +256,9 @@ time_cpufreq_notifier(struct notifier_bl ref_freq, freq->new); if (!(freq->flags & CPUFREQ_CONST_LOOPS)) { tsc_khz = cpu_khz; - set_cyc2ns_scale(cpu_khz, freq->cpu); + preempt_disable(); + set_cyc2ns_scale(cpu_khz, smp_processor_id()); + preempt_enable(); /* * TSC based sched_clock turns * to junk w/ cpufreq diff -puN arch/x86/kernel/tsc_64.c~revert-x86-fix-call-to-set_cyc2ns_scale-from-time_cpufreq_notifier arch/x86/kernel/tsc_64.c --- a/arch/x86/kernel/tsc_64.c~revert-x86-fix-call-to-set_cyc2ns_scale-from-time_cpufreq_notifier +++ a/arch/x86/kernel/tsc_64.c @@ -148,7 +148,9 @@ static int time_cpufreq_notifier(struct mark_tsc_unstable("cpufreq changes"); } - set_cyc2ns_scale(tsc_khz_ref, freq->cpu); + preempt_disable(); + set_cyc2ns_scale(tsc_khz_ref, smp_processor_id()); + preempt_enable(); return 0; } _ Patches currently in -mm which might be from akpm@xxxxxxxxxxxxxxxxxxxx are origin.patch es1968-fix-sleep-while-holding-lock-bug.patch revert-x86-fix-call-to-set_cyc2ns_scale-from-time_cpufreq_notifier.patch revert-set-relay-file-can-not-be-read-by-pread2.patch git-acpi.patch git-acpi-revert-suspend-wakeup-code-in-c.patch acpi-enable-c3-power-state-on-dell-inspiron-8200.patch git-x86.patch arch-x86-mm-ioremapc-fix-printk-warnings.patch git-x86-fix-warning-in-arch-x86-kernel-vsmp_64c.patch git-x86-fix-build-in-arch-x86-kernel-vm86_32c.patch git-x86-i386-build-fix.patch git-x86-include-asm-ptraceh-needs-processor-flagsh.patch git-kgdb-light.patch git-x86-hack-around-to-make-git-kgdb-build.patch git-alsa-tiwai.patch es1968-fix-jitter-on-some-maestro-cards-checkpatch-fixes.patch git-agpgart-export-agp_generic_alloc_pages.patch git-agpgart-fix-type-confusion.patch git-agpgart-drivers-char-agp-i460-agpc-hacks.patch cifs-suppress-warning.patch git-powerpc.patch fix-gregkh-driver-kobject-replace-list_for_each-with-list_for_each_entry.patch pm-remove-destroy_suspended_device.patch scsi-add-iscsi-ibft-support.patch git-dvb.patch git-hwmon.patch git-gfs2-nmw.patch git-dlm-vs-git-gfs2-nwm.patch git-hid.patch git-hrt.patch time-close-small-window-for-vsyscall-time-inconsistencies-checkpatch-fixes.patch arch-ia64-kernel-use-time_-macros.patch git-ieee1394.patch git-infiniband.patch git-infiniband-vs-gregkh-driver-ib-convert-struct-class_device-to-struct-device.patch gregkh-driver-ib-convert-struct-class_device-to-struct-device-vs-git-infiniband.patch maple-add-driver-for-sega-dreamcast-controller.patch touch-screen-driver-for-the-superh-migor-board-checkpatch-fixes.patch git-leds.patch git-libata-all.patch drivers-ata-sata_fslc-fix-warnings-small-memory-leak.patch git-async-tx.patch git-mips.patch git-net.patch drivers-atm-firestreamc-suppress-uninitialized-var-warning.patch drivers-net-bonding-bond_sysfsc-suppress-uninitialized-var-warning.patch ehea-fix-dlpar-memory-add-support-fix.patch sundance-set-carrier-status-on-link-change-events-checkpatch-fixes.patch update-smc91x-driver-with-arm-versatile-board-info.patch fs-nfs-callback_xdrc-suppress-uninitialiized-variable-warnings.patch git-nfsd.patch git-ocfs2.patch arch-parisc-kernel-unalignedc-use-time_-macros.patch drivers-pcmcia-soc_commonc-convert-soc_pcmcia_sockets_lock-into-a-mutex-and-make-it-static.patch git-selinux.patch revert-gregkh-pci-pci-arm-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-cris-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-frv-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-mips-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-mn10300-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-parisc-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-ppc-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-sh-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-sparc64-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-v850-use-generic-pci_enable_resources.patch revert-gregkh-pci-pci-xtensa-use-generic-pci_enable_resources.patch pci-hotplug-introduce-pci_slot-fix.patch pci-hotplug-introduce-pci_slot-fix-fix.patch pci-hotplug-introduce-pci_slot-fix-2.patch pci-hotplug-introduce-pci_slot-fix-99.patch pci-hotplug-acpi-pci-slot-detection-driver-fix.patch drivers-acpi-pci_slotc-fix-build-with-config_dmi=n.patch git-sched.patch git-sh.patch git-scsi-misc.patch git-scsi-misc-vs-gregkh-driver-driver-core-remove-no-longer-used-struct-class_device.patch git-scsi-misc-vs-gregkh-driver-driver-core-remove-no-longer-used-struct-class_device-fix.patch scsi-fix-section-mismatch-in-aic94xx.patch drivers-scsi-mvsasc-fix-build-warnings.patch git-block-git-rejects.patch git-unionfs.patch fix-gregkh-usb-usb-ohci-port-reset-paranoia-timeout.patch git-v9fs.patch git-vfs.patch git-watchdog.patch git-watchdog-git-rejects.patch xfs-suppress-uninitialized-var-warnings.patch git-cryptodev-misplaced-hunk.patch git-cryptodev-fixup.patch git-xtensa.patch make-module_sect_attrs-private-to-kernel-modulec-checkpatch-fixes.patch git-semaphore-vs-git-x86.patch git-semaphore-git-rejects.patch smc91x-driver-fix-bug-print-warning-only-in-interrupt-mode.patch remove-sparse-warning-for-mmzoneh-checkpatch-fixes.patch fix-invalidate_inode_pages2_range-to-not-clear-ret-checkpatch-fixes.patch mm-make-reserve_bootmem-can-crossed-the-nodes-checkpatch-fixes.patch mm-make-early_pfn_to_nid-a-c-function.patch vmalloc-show-vmalloced-areas-via-proc-vmallocinfo-checkpatch-fixes.patch vmalloc-show-vmalloced-areas-via-proc-vmallocinfo-fix-2.patch vmallocinfo-add-caller-information-checkpatch-fixes.patch page_mapping-add-ifdef-around-reference-to-swapper_space.patch smaps-account-swap-entries-sneak-in-a-coding-style-fix.patch mm-introduce-pte_special-pte-bit-fix.patch hugetlb-vmstat-events-for-huge-page-allocations-cleanup.patch mempolicy-use-struct-mempolicy-pointer-in-shmem_sb_info-fix.patch mempolicy-use-struct-mempolicy-pointer-in-shmem_sb_info-fix-fix.patch mempolicy-use-struct-mempolicy-pointer-in-shmem_sb_info-fix-fix-fix.patch vmscan-give-referenced-active-and-unmapped-pages-a-second-trip-around-the-lru.patch vm-dont-run-touch_buffer-during-buffercache-lookups.patch capabilities-implement-per-process-securebits-warning-fix.patch lsm-introduce-inode_getsecid-and-ipc_getsecid-hooks-checkpatch-fixes.patch lsm-audit-introduce-generic-audit-lsm-hooks-checkpatch-fixes.patch selinux-use-new-audit-hooks-remove-redundant-exports-checkpatch-fixes.patch audit-final-renamings-and-cleanup-checkpatch-fixes.patch arch-alpha-kernel-trapsc-use-time_-macros-fix.patch alpha-teach-the-compiler-that-bug-doesnt-return.patch make-dev-kmem-a-config-option-fix.patch misc-phantom-add-compat-ioctl-checkpatch-fixes.patch sysrq-add-show-backtrace-on-all-cpus-function-checkpatch-fixes.patch sysrq-add-show-backtrace-on-all-cpus-function-checkpatch-fixes-cleanup.patch codafs-fix-build-warning.patch lists-add-const-qualifier-to-first-arg-of-list_splice-operations-checkpatch-fixes.patch lib-swiotlbc-cleanups.patch fs-inodec-use-hlist_for_each_entry-checkpatch-fixes.patch add-rcu_assign_index-if-ever-needed-fix.patch add-warn_on_secs-macro-simplification-fix.patch add-warn_on_secs-macro-simplification-fix-fix.patch uart_get_baud_rate-stop-mangling-termios-fix.patch drivers-acpi-thermalc-fix-build-with-config_dmi=n.patch oprofile-change-cpu_buffer-from-array-to-per_cpu-variable-checkpatch-fixes.patch vt-notifier-extension-for-accessibility-checkpatch-fixes.patch kprobes-prevent-probing-of-preempt_schedule-fix.patch kprobes-prevent-probing-of-preempt_schedule-checkpatch-fixes.patch quota-various-style-cleanups-checkpatch-fixes.patch quota-quota-core-changes-for-quotaon-on-remount-quota-ext3-make-ext3-handle-quotaon-on-remount-checkpatch-fixes.patch quota-quota-core-changes-for-quotaon-on-remount-quota-ext4-make-ext4-handle-quotaon-on-remount-checkpatch-fixes.patch quota-convert-stub-functions-from-macros-into-inlines.patch rtc-isl1208-new-style-conversion-and-minor-bug-fixes-checkpatch-fixes.patch rtc-pcf8563-new-style-conversion-checkpatch-fixes.patch rtc-pcf8563-new-style-conversion-checkpatch-fixes-fix.patch rtc-x1205-new-style-conversion-checkpatch-fixes.patch gpiochip_reserve-fix.patch fb-add-support-for-foreign-endianness-force-it-on.patch fbcon-replace-mono_col-macro-with-static-inline-fix.patch pm-gxfb-add-hook-to-pm-console-layer-that-allows-disabling-of-suspend-vt-switch-fix.patch lxfb-add-power-management-functionality-fix.patch pnp-use-dev_printk-for-quirk-messages-fix.patch fat_valid_media-remove-pointless-test.patch documentation-build-source-files-in-documentation-sub-dir-disable.patch cgroup-api-files-update-cpusets-to-use-cgroup-structured-file-api-fix.patch cgroups-implement-device-whitelist-v6-checkpatch-fixes.patch cgroups-implement-device-whitelist-v6-cleanups.patch cgroups-implement-device-whitelist-v6-fix.patch add-a-document-describing-the-resource-counter-abstraction-v2-fix.patch memcgroup-implement-failcounter-reset-checkpatch-fixes.patch workqueues-shrink-cpu_populated_map-when-cpu-dies-fix.patch ipc-use-ipc_buildid-directly-from-ipc_addid-cleanup.patch ipc-add-definitions-of-ushort_max-and-others-checkpatch-fixes.patch ipmi-run-to-completion-fixes-checkpatch-fixes.patch ipmi-style-fixes-in-the-system-interface-code-checkpatch-fixes.patch sxc-fix-printk-warnings-on-sparc32.patch elf-fix-shadowed-variables-in-fs-binfmt_elfc.patch sgi-altix-mmtimer-allow-larger-number-of-timers-per-node-fix.patch sgi-altix-mmtimer-allow-larger-number-of-timers-per-node-fix-2.patch epcac-static-functions-and-integer-as-null-pointer-fixes-checkpatch-fixes.patch keys-add-keyctl-function-to-get-a-security-label-fix.patch procfs-task-exe-symlink-fix.patch proc-switch-to-proc_create.patch edd-add-default-mode-config_edd_off=n-override-with-edd=onoff-fix.patch mm-bdi-export-bdi-attributes-in-sysfs-ia64-fix.patch basic-braille-screen-reader-support-ppc-fix.patch hfs-fix-warning-with-64k-page_size.patch hfsplus-fix-warning-with-64k-page_size.patch alloc_uid-cleanup.patch add-macros-similar-to-min-max-min_t-max_t.patch rename-div64_64-to-div64_u64-fix.patch idr-create-idr_layer_cache-at-boot-time-fix.patch idr-create-idr_layer_cache-at-boot-time-fix-fix.patch edac-add-e752x-parameter-for-sysbus_parity-selection-checkpatch-fixes.patch reiser4.patch jens-broke-reiser4patch-added-to-mm-tree.patch page-owner-tracking-leak-detector.patch nr_blockdev_pages-in_interrupt-warning.patch slab-leaks3-default-y.patch put_bh-debug.patch shrink_slab-handle-bad-shrinkers.patch getblk-handle-2tb-devices.patch getblk-handle-2tb-devices-fix.patch undeprecate-pci_find_device.patch notify_change-callers-must-hold-i_mutex.patch profile-likely-unlikely-macros.patch profile-likely-unlikely-macros-fix.patch w1-build-fix.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