android_kernel_oneplus_msm8998/arch/x86/include/asm
Borislav Petkov 93789b32db x86, hotplug: Fix powersavings with offlined cores on AMD
ea53069231 made a CPU use monitor/mwait
when offline. This is not the optimal choice for AMD wrt to powersavings
and we'd prefer our cores to halt (i.e. enter C1) instead. For this, the
same selection whether to use monitor/mwait has to be used as when we
select the idle routine for the machine.

With this patch, offlining cores 1-5 on a X6 machine allows core0 to
boost again.

[ hpa: putting this in urgent since it is a (power) regression fix ]

Reported-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Cc: stable@kernel.org # 37.x
Cc: H. Peter Anvin <hpa@linux.intel.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Len Brown <lenb@kernel.org>
Cc: Venkatesh Pallipadi <venki@google.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.hl>
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
LKML-Reference: <1295534572-10730-1-git-send-email-bp@amd64.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2011-01-21 18:14:54 -08:00
..
uv x86, UV, BAU: Extend for more than 16 cpus per socket 2011-01-03 20:35:03 +01:00
visws
xen Merge branch 'stable/gntdev' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2011-01-13 18:46:48 -08:00
a.out-core.h
a.out.h
acpi.h x86, numa: Fix cpu to node mapping for sparse node ids 2010-12-23 15:27:16 -08:00
aes.h
agp.h
alternative-asm.h
alternative.h Merge branches 'x86-alternatives-for-linus', 'x86-fpu-for-linus', 'x86-hwmon-for-linus', 'x86-paravirt-for-linus', 'core-locking-for-linus' and 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-01-06 11:11:50 -08:00
amd_iommu.h Merge branch 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:23:48 -07:00
amd_iommu_proto.h x86/amd-iommu: Update copyright headers 2010-10-13 11:13:21 +02:00
amd_iommu_types.h x86/amd-iommu: Update copyright headers 2010-10-13 11:13:21 +02:00
amd_nb.h x86: Use PCI method for enabling AMD extended config space before MSR method 2011-01-11 12:43:41 +01:00
apb_timer.h x86, cleanup: Remove obsolete boot_cpu_id variable 2010-08-12 14:01:38 -07:00
apic.h Merge commit 'v2.6.37-rc8' into x86/apic 2011-01-04 09:43:42 +01:00
apicdef.h x86, acpi: Add MAX_LOCAL_APIC for 32bit 2010-12-23 13:15:53 -08:00
apm.h
arch_hweight.h
asm-offsets.h
asm.h
atomic.h
atomic64_32.h
atomic64_64.h
auxvec.h
bios_ebda.h
bitops.h bitops: make asm-generic/bitops/find.h more generic 2010-10-09 21:51:44 +02:00
bitsperlong.h
boot.h x86: support XZ-compressed kernel 2011-01-13 08:03:25 -08:00
bootparam.h x86: Add CE4100 platform support 2010-11-12 00:45:41 +01:00
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h x86: Use asm-generic/cacheflush.h 2011-01-21 14:11:12 +01:00
calgary.h x86, iommu: Make all IOMMU's detection routines return a value. 2010-08-26 15:13:13 -07:00
calling.h x86, asm: Fix CFI macro invocations to deal with shortcomings in gas 2010-10-19 14:28:02 -07:00
checksum.h
checksum_32.h
checksum_64.h
cmpxchg.h
cmpxchg_32.h x86, asm: Merge cmpxchg_486_u64() and cmpxchg8b_emu() 2010-07-28 17:05:11 -07:00
cmpxchg_64.h x86, asm: Clean up and simplify <asm/cmpxchg.h> 2010-07-28 15:24:09 -07:00
compat.h compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-14 16:08:45 -07:00
cpu.h x86, hotplug: Fix powersavings with offlined cores on AMD 2011-01-21 18:14:54 -08:00
cpufeature.h Merge branch 'x86-amd-nb-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 13:01:08 -07:00
cpumask.h
cputime.h
current.h
debugreg.h x86: Use this_cpu_ops to optimize code 2010-12-30 12:20:28 +01:00
delay.h
desc.h
desc_defs.h
device.h
div64.h
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma.h
dmi.h
dwarf2.h x86: Use {push,pop}{l,q}_cfi in more places 2010-09-03 08:14:11 +02:00
e820.h x86: avoid high BIOS area when allocating address space 2010-12-17 10:01:30 -08:00
edac.h
efi.h x86, memblock: Replace e820_/_early string with memblock_ 2010-08-27 11:13:47 -07:00
elf.h
emergency-restart.h
entry_arch.h Merge branches 'softirq-for-linus', 'x86-debug-for-linus', 'x86-numa-for-linus', 'x86-quirks-for-linus', 'x86-setup-for-linus', 'x86-uv-for-linus' and 'x86-vm86-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-23 08:25:36 -07:00
errno.h
fb.h
fcntl.h
fixmap.h x86: Fix Moorestown VRTC fixmap placement 2011-01-11 12:46:16 +01:00
floppy.h
frame.h
ftrace.h
futex.h
gart.h Merge branch 'x86-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:23:48 -07:00
genapic.h
geode.h
gpio.h x86/gpio: Implement x86 gpio_to_irq convert function 2011-01-11 12:46:15 +01:00
hardirq.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
highmem.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
hpet.h x86: ioapic/hpet: Convert to new chip functions 2010-10-12 16:53:37 +02:00
hugetlb.h
hw_breakpoint.h x86: Fix instruction breakpoint encoding 2010-09-17 03:24:13 +02:00
hw_irq.h Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 14:11:46 -07:00
hypertransport.h
hyperv.h
hypervisor.h xen: HVM X2APIC support 2011-01-07 10:03:50 -05:00
i387.h x86-64, asm: Use fxsaveq/fxrestorq in more places 2010-10-22 15:33:38 -07:00
i8253.h
i8259.h x86: i8259: Convert to new irq_chip functions 2010-10-12 16:53:36 +02:00
ia32.h
ia32_unistd.h
idle.h
inat.h
inat_types.h
init.h
insn.h
inst.h
intel_scu_ipc.h Remove indirect read write api support. 2010-08-03 09:50:30 -04:00
io.h Merge branch 'stable/xen-pcifront-0.8.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2010-10-28 17:11:17 -07:00
io_apic.h Merge commit 'v2.6.37-rc8' into x86/apic 2011-01-04 09:43:42 +01:00
ioctl.h
ioctls.h
iomap.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
iommu.h
iommu_table.h x86, iommu: Update header comments with appropriate naming 2010-10-08 13:11:21 -07:00
ipcbuf.h
ipi.h
irq.h Merge branch 'x86-olpc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-01-13 10:15:12 -08:00
irq_regs.h
irq_remapping.h x86: Speed up the irq_remapped check in hot pathes 2010-10-12 16:53:42 +02:00
irq_vectors.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
irqflags.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
ist.h
jump_label.h jump label: Remove duplicate structure for x86 2010-09-22 17:37:43 -04:00
Kbuild archs: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
kdebug.h x86, NMI: Remove DIE_NMI_IPI 2011-01-07 15:08:53 +01:00
kexec.h
kgdb.h kgdb,x86: Individual register get/set for x86 2010-08-05 09:22:20 -05:00
kmap_types.h
kmemcheck.h
kprobes.h
kvm.h KVM: x86: XSAVE/XRSTOR live migration support 2010-08-01 10:46:37 +03:00
kvm_emulate.h KVM: SVM: copy instruction bytes from VMCB 2011-01-12 11:31:07 +02:00
kvm_host.h thp: mmu_notifier_test_young 2011-01-13 17:32:46 -08:00
kvm_para.h KVM: x86: Add missing inline tag to kvm_read_and_reset_pf_reason 2011-01-12 11:23:27 +02:00
ldt.h
lguest.h
lguest_hcall.h
linkage.h
local.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
mach_timer.h
mach_traps.h x86, NMI: Add NMI symbol constants and rename memory parity to PCI SERR 2011-01-07 15:08:51 +01:00
math_emu.h
mc146818rtc.h
mca.h
mca_dma.h
mce.h x86, hwmon: Add core threshold notification to therm_throt.c 2011-01-03 08:30:30 -08:00
memblock.h x86-32, memblock: Make add_highpages honor early reserved ranges 2010-10-05 21:44:35 -07:00
microcode.h x86, microcode, AMD: Cleanup code a bit 2010-11-10 14:54:54 +01:00
mman.h
mmconfig.h
mmu.h
mmu_context.h
mmx.h
mmzone.h
mmzone_32.h
mmzone_64.h
module.h x86: Remove CONFIG_4KSTACKS 2010-06-29 12:12:59 +02:00
mpspec.h x86: Fix APIC ID sizing bug on larger systems, clean up MAX_APICS confusion 2011-01-05 14:09:23 +01:00
mpspec_def.h x86: Fix APIC ID sizing bug on larger systems, clean up MAX_APICS confusion 2011-01-05 14:09:23 +01:00
mrst-vrtc.h x86: mrst: Add vrtc driver which serves as a wall clock device 2010-11-11 11:34:27 +01:00
mrst.h x86: mrst: Add vrtc driver which serves as a wall clock device 2010-11-11 11:34:27 +01:00
msgbuf.h
mshyperv.h
msidef.h
msr-index.h Merge branches 'x86-alternatives-for-linus', 'x86-fpu-for-linus', 'x86-hwmon-for-linus', 'x86-paravirt-for-linus', 'core-locking-for-linus' and 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-01-06 11:11:50 -08:00
msr.h x86, gcc-4.6: Avoid unused by set variables in rdmsr 2010-07-20 15:38:18 -07:00
mtrr.h
mutex.h
mutex_32.h
mutex_64.h
mwait.h x86, mwait: Move mwait constants to a common header file 2010-09-17 15:36:40 -07:00
nmi.h x86, NMI: Add priorities to handlers 2011-01-07 15:08:52 +01:00
nops.h
numa.h
numa_32.h x86: Unify "numa=" command line option handling 2011-01-19 10:25:18 +01:00
numa_64.h x86: Unify "numa=" command line option handling 2011-01-19 10:25:18 +01:00
numaq.h
olpc.h drivers/staging/olpc_dcon: convert to new cs5535 gpio API 2011-01-13 08:03:13 -08:00
olpc_ofw.h x86, olpc: Add OLPC device-tree support 2010-12-15 17:11:30 -08:00
page.h x86: Document __phys_reloc_hide() usage in __pa_symbol() 2010-08-11 08:43:49 +02:00
page_32.h
page_32_types.h x86: Remove CONFIG_4KSTACKS 2010-06-29 12:12:59 +02:00
page_64.h
page_64_types.h
page_types.h x86-32: Fix sparse warning for the __PHYSICAL_MASK calculation 2010-10-07 16:36:17 -07:00
param.h
paravirt.h thp: add pmd paravirt ops 2011-01-13 17:32:39 -08:00
paravirt_types.h thp: add pmd paravirt ops 2011-01-13 17:32:39 -08:00
parport.h
pat.h
pci-direct.h
pci-functions.h
pci.h x86: Add NX protection for kernel data 2010-11-18 12:52:04 +01:00
pci_64.h
pci_x86.h x86/PCI: Clean up pci_cache_line_size 2010-10-18 10:49:30 -04:00
percpu.h cpuops: Use cmpxchg for xchg to avoid lock semantics 2010-12-18 15:54:04 +01:00
perf_event.h perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
perf_event_p4.h perf, x86: P4 PMU - Fix unflagged overflows handling 2011-01-09 10:40:52 +01:00
pgalloc.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
pgtable-2level.h thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
pgtable-2level_types.h
pgtable-3level.h thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
pgtable-3level_types.h
pgtable.h thp: don't allow transparent hugepage support without PSE 2011-01-13 17:32:45 -08:00
pgtable_32.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
pgtable_32_types.h x86: use __ASSEMBLY__ rather than __ASSEMBLER__ 2010-06-07 17:27:11 -07:00
pgtable_64.h thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
pgtable_64_types.h
pgtable_types.h thp: add pmd_modify 2011-01-13 17:32:44 -08:00
poll.h
posix_types.h
posix_types_32.h
posix_types_64.h
prctl.h
processor-cyrix.h
processor-flags.h
processor.h Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2011-01-13 20:15:18 -08:00
prom.h x86, olpc: Add OLPC device-tree support 2010-12-15 17:11:30 -08:00
proto.h
ptrace-abi.h
ptrace.h
pvclock-abi.h
pvclock.h x86/pvclock: Zero last_value on resume 2010-11-28 09:33:20 +01:00
reboot.h
reboot_fixups.h
required-features.h x86, cpu: Support the features flags in new CPUID leaf 7 2010-07-07 17:29:18 -07:00
resource.h
resume-trace.h
rio.h
rtc.h
rwlock.h
rwsem.h x86, rwsem: Minor cleanups 2010-07-20 17:41:14 -07:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h
seccomp_32.h
seccomp_64.h
sections.h
segment.h x86, asm: Fix CFI macro invocations to deal with shortcomings in gas 2010-10-19 14:28:02 -07:00
sembuf.h
serial.h
setup.h x86: Add CE4100 platform support 2010-11-12 00:45:41 +01:00
setup_arch.h
shmbuf.h
shmparam.h
sigcontext.h
sigcontext32.h
sigframe.h
siginfo.h
signal.h
smp.h x86, kexec: Make sure to stop all CPUs before exiting the kernel 2010-10-21 13:30:44 -07:00
smpboot_hooks.h x86, nmi_watchdog: Remove all stub function calls from old nmi_watchdog 2010-11-18 09:08:23 +01:00
socket.h
sockios.h
sparsemem.h
spinlock.h
spinlock_types.h
srat.h
stackprotector.h
stacktrace.h x86: Eliminate bp argument from the stack tracing routines 2010-11-18 14:37:34 +01:00
stat.h
statfs.h
string.h
string_32.h
string_64.h
suspend.h
suspend_32.h PM / x86: Save/restore MISC_ENABLE register 2010-06-08 00:32:49 +02:00
suspend_64.h PM / x86: Save/restore MISC_ENABLE register 2010-06-08 00:32:49 +02:00
svm.h KVM: SVM: copy instruction bytes from VMCB 2011-01-12 11:31:07 +02:00
swab.h
swiotlb.h x86, swiotlb: Simplify SWIOTLB pci_swiotlb_detect routine. 2010-08-26 15:13:29 -07:00
sync_bitops.h
sys_ia32.h Mark arguments to certain syscalls as being const 2010-08-13 16:53:13 -07:00
syscall.h
syscalls.h Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
system.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-08-04 11:47:58 -07:00
system_64.h
tce.h
termbits.h
termios.h
thread_info.h Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2010-05-28 16:14:17 -07:00
time.h
timer.h x86, nmi_watchdog: Remove all stub function calls from old nmi_watchdog 2010-11-18 09:08:23 +01:00
timex.h
tlb.h
tlbflush.h x86-32, mm: Add an initial page table for core bootstrapping 2010-10-20 14:23:55 -07:00
topology.h numa: x86_64: use generic percpu var numa_node_id() implementation 2010-05-27 09:12:57 -07:00
trampoline.h x86-32, mm: Add an initial page table for core bootstrapping 2010-10-20 14:23:55 -07:00
traps.h KVM: Handle async PF in a guest. 2011-01-12 11:23:16 +02:00
tsc.h x86, tsc, sched: Recompute cyc2ns_offset's during resume from sleep states 2010-08-20 14:59:02 +02:00
types.h
uaccess.h
uaccess_32.h
uaccess_64.h
ucontext.h
unaligned.h
unistd.h
unistd_32.h Merge branch 'writable_limits' of git://decibel.fi.muni.cz/~xslaby/linux 2010-08-10 12:07:51 -07:00
unistd_64.h Merge branch 'writable_limits' of git://decibel.fi.muni.cz/~xslaby/linux 2010-08-10 12:07:51 -07:00
user.h
user32.h
user_32.h
user_64.h
vdso.h
vga.h
vgtod.h
virtext.h
vm86.h
vmx.h KVM: VMX: Add definitions for more vm entry/exit control bits 2011-01-12 11:31:08 +02:00
vsyscall.h
x86_init.h x86: Introduce x86_msi_ops 2010-10-18 10:49:34 -04:00
xcr.h
xor.h
xor_32.h
xor_64.h
xsave.h Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:25:13 -07:00