linux_dsm_epyc7002/arch/powerpc/include/asm
Shreyas B. Prabhu 5703d2f4a1 powerpc/powernv: Introduce sysfs control for fastsleep workaround behavior
Fastsleep is one of the idle state which cpuidle subsystem currently
uses on power8 machines. In this state L2 cache is brought down to a
threshold voltage. Therefore when the core is in fastsleep, the
communication between L2 and L3 needs to be fenced. But there is a bug
in the current power8 chips surrounding this fencing.

OPAL provides a workaround which precludes the possibility of hitting
this bug. But running with this workaround applied causes checkstop
if any correctable error in L2 cache directory is detected. Hence OPAL
also provides a way to undo the workaround.

In the existing implementation, workaround is applied by the last thread
of the core entering fastsleep and undone by the first thread waking up.
But this has a performance cost. These OPAL calls account for roughly
4000 cycles everytime the core has to enter or wakeup from fastsleep.

This patch introduces a sysfs attribute (fastsleep_workaround_applyonce)
to choose the behavior of this workaround.

By default, fastsleep_workaround_applyonce = 0. In this case, workaround
is applied/undone everytime the core enters/exits fastsleep.

fastsleep_workaround_applyonce = 1. In this case the workaround is
applied once on all the cores and never undone. This can be triggered by
echo 1 > /sys/devices/system/cpu/fastsleep_workaround_applyonce

For simplicity this attribute can be modified only once. Implying, once
fastsleep_workaround_applyonce is changed to 1, it cannot be reverted
to the default state.

Signed-off-by: Shreyas B. Prabhu <shreyas@linux.vnet.ibm.com>
Reviewed-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-05-22 15:12:30 +10:00
..
8xx_immap.h
agp.h
archrandom.h KVM: PPC: Book3S HV: Add fast real-mode H_RANDOM implementation. 2015-04-21 15:21:29 +02:00
asm-compat.h ppc: bpf: add required compatibility macros for jit 2015-02-20 15:19:43 -05:00
asm-offsets.h
async_tx.h
atomic.h locking,arch,powerpc: Fold atomic_ops 2014-08-14 12:48:11 +02:00
backlight.h
barrier.h arch: Add lightweight memory barriers dma_rmb() and dma_wmb() 2014-12-11 21:15:06 -05:00
bitops.h powerpc: Fix comment typos in arch/powerpc/include/asm/bitops.h 2014-11-12 16:31:46 +11:00
bootx.h
btext.h
bug.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
bugs.h
cache.h powerpc: Remove duplicate cacheable_memcpy/memzero functions 2015-03-17 11:25:50 +11:00
cacheflush.h mm/debug_pagealloc: fix build failure on ppc and some other archs 2015-02-05 13:35:30 -08:00
cell-pmu.h
cell-regs.h
checksum.h
cmpxchg.h
code-patching.h
compat.h
context_tracking.h
copro.h powerpc/cell: Make spu_flush_all_slbs() generic 2014-10-08 20:15:37 +11:00
cpm1.h
cpm2.h
cpm.h
cpuidle.h powernv/cpuidle: Redesign idle states management 2014-12-15 10:46:40 +11:00
cputable.h powerpc/book3s: Fix flush_tlb cpu_spec hook to take a generic argument. 2015-03-17 07:52:48 +11:00
cputhreads.h powerpc: Fix cpu_online_cores_map to return only online threads mask 2015-05-22 15:12:30 +10:00
cputime.h Merge branch 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-10-15 07:48:18 +02:00
current.h
dbdma.h powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
dbell.h
dcr-generic.h
dcr-mmio.h
dcr-native.h powerpc: Use bool function return values of true/false not 1/0 2015-03-31 14:19:47 +11:00
dcr-regs.h
dcr.h
debug.h
delay.h
device.h powerpc/pci: Refactor pci_dn 2015-03-24 13:15:49 +11:00
disassemble.h
dma-mapping.h powerpc: Use bool function return values of true/false not 1/0 2015-03-31 14:19:47 +11:00
dma.h
edac.h
eeh_event.h
eeh.h powerpc/eeh: Introduce eeh_pe_inject_err() 2015-05-12 20:33:35 +10:00
ehv_pic.h
elf.h mm: fold arch_randomize_brk into ARCH_HAS_ELF_RANDOMIZE 2015-04-14 16:49:05 -07:00
emergency-restart.h
emulated_ops.h
epapr_hcalls.h
exception-64e.h
exception-64s.h
exec.h
fadump.h powerpc/fadump: Fix endianess issues in firmware assisted dump handling 2014-10-30 16:52:46 +11:00
fb.h
feature-fixups.h
firmware.h powerpc: Remove the celleb support 2015-04-07 17:15:13 +10:00
fixmap.h
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_guts.h powerpc/fsl: Added rcw registers to global utility registers 2014-11-07 18:10:47 -06:00
fsl_hcalls.h
fsl_lbc.h uio: uio_fsl_elbc_gpcm: new driver 2015-01-12 05:04:13 -08:00
fsl_pamu_stash.h iommu/fsl: Various cleanups 2015-02-03 18:47:18 +01:00
ftrace.h
futex.h
gpio.h
grackle.h
hardirq.h powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
heathrow.h
highmem.h
hugetlb.h powerpc/mm: Switch to generic RCU get_user_pages_fast 2014-11-14 17:24:21 +11:00
hvcall.h
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h
hw_irq.h
hydra.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
i8259.h
ibmebus.h
ide.h
immap_cpm2.h
immap_qe.h
io_event_irq.h
io-defs.h
io-workarounds.h
io.h powerpc updates for 3.19 2014-12-11 17:48:14 -08:00
iommu.h Merge branch 'next-sriov' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc into next 2015-04-14 09:29:23 +10:00
ipic.h
irq_work.h powerpc: Re-enable dynticks 2015-02-23 14:52:04 +11:00
irq.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
irqflags.h
jump_label.h
Kbuild powerpc: use kbuild generic-y where possible 2015-03-23 15:09:44 +11:00
kdebug.h
kdump.h
kexec.h powerpc/kdump: Ignore failure in enabling big endian exception during crash 2014-12-29 15:44:53 +11:00
keylargo.h
kgdb.h
kmap_types.h
kprobes.h powerpc/kprobes: Fix kallsyms lookup across powerpc ABIv1 and ABIv2 2015-01-23 14:02:51 +11:00
kvm_asm.h KVM: PPC: Remove shared defines for SPE and AltiVec interrupts 2014-09-22 10:11:34 +02:00
kvm_book3s_32.h
kvm_book3s_64.h powerpc fixes for 4.1 2015-04-26 13:23:15 -07:00
kvm_book3s_asm.h
kvm_book3s.h This mostly includes the PPC changes for 4.1, which this time cover 2015-04-26 13:06:22 -07:00
kvm_booke_hv_asm.h
kvm_booke.h powerpc/kvm: common sw breakpoint instr across ppc 2014-09-22 10:11:36 +02:00
kvm_fpu.h
kvm_host.h This mostly includes the PPC changes for 4.1, which this time cover 2015-04-26 13:06:22 -07:00
kvm_para.h
kvm_ppc.h KVM: PPC: Book3S HV: Add fast real-mode H_RANDOM implementation. 2015-04-21 15:21:29 +02:00
libata-portmap.h
linkage.h
local.h
lppaca.h
lv1call.h
machdep.h Merge branch 'next-sriov' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc into next 2015-04-14 09:29:23 +10:00
macio.h
mc146818rtc.h
mce.h
mediabay.h
mman.h
mmu_context.h
mmu-8xx.h powerpc/8xx: Implement 16k pages 2014-11-07 18:10:42 -06:00
mmu-40x.h
mmu-44x.h
mmu-book3e.h
mmu-hash32.h
mmu-hash64.h powerpc/book3s: Fix flush_tlb cpu_spec hook to take a generic argument. 2015-03-17 07:52:48 +11:00
mmu.h
mmzone.h
module.h
mpc5xxx.h
mpc6xx.h
mpc52xx_psc.h
mpc52xx.h
mpc85xx.h powerpc/fsl-booke: Add T4080 SVR value 2015-03-31 22:23:17 -05:00
mpc5121.h
mpc8260.h
mpic_msgr.h
mpic_timer.h
mpic.h powerpc/mpic: Add get_version API both for internal and external use 2015-03-23 19:51:17 -05:00
msi_bitmap.h Revert "powerpc/fsl_msi: spread msi ints across different MSIRs" 2014-09-19 15:20:42 -05:00
mutex.h
nmi.h powerpc: Add ppc64 hard lockup detector support 2015-04-11 20:49:27 +10:00
nvram.h powerpc/nvram: Move generic code for nvram and pstore 2015-03-23 14:05:49 +11:00
ohare.h
opal-api.h powerpc/powernv: Introduce sysfs control for fastsleep workaround behavior 2015-05-22 15:12:30 +10:00
opal.h powerpc/powernv: Introduce sysfs control for fastsleep workaround behavior 2015-05-22 15:12:30 +10:00
oprofile_impl.h
paca.h powerpc: book3e_64: fix the align size for paca_struct 2015-03-31 22:23:17 -05:00
page_32.h
page_64.h powerpc: Speed up clear_page by unrolling it 2014-10-02 16:04:21 +10:00
page.h powerpc: Make STRICT_MM_TYPECHECKS a config option 2015-05-11 19:53:59 +10:00
parport.h
pasemi_dma.h
pci-bridge.h Merge branch 'next-sriov' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc into next 2015-04-14 09:29:23 +10:00
pci.h powerpc: Remove shims for pci_controller_ops operations 2015-04-11 20:49:18 +10:00
percpu.h
perf_event_fsl_emb.h
perf_event_server.h
perf_event.h powerpc: Rename __get_SP() to current_stack_pointer() 2014-10-15 11:23:20 +11:00
pgalloc-32.h
pgalloc-64.h
pgalloc.h mmu_gather: move minimal range calculations into generic code 2014-11-17 10:12:42 +00:00
pgtable-ppc32.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pgtable-ppc64-4k.h powerpc/mm: Add missing pmd accessors 2014-11-14 17:24:21 +11:00
pgtable-ppc64-64k.h powerpc/mm: Add missing pmd accessors 2014-11-14 17:24:21 +11:00
pgtable-ppc64.h powerpc: Make STRICT_MM_TYPECHECKS a config option 2015-05-11 19:53:59 +10:00
pgtable.h powerpc/mm/thp: Make page table walk safe against thp split/collapse 2015-04-17 11:23:39 +10:00
plpar_wrappers.h powerpc/pseries: Use new defines when calling H_SET_MODE 2014-10-07 22:01:56 +11:00
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
pnv-pci.h cxl: Fix device_node reference counting 2015-02-02 14:51:31 +11:00
ppc4xx_ocm.h
ppc4xx.h
ppc_asm.h powerpc: Change vsrX register defines to vsX to match gcc and glibc 2015-03-16 18:32:11 +11:00
ppc-opcode.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-02 16:16:53 -04:00
ppc-pci.h powerpc: move find_and_init_phbs() to pSeries specific code 2015-04-11 20:49:09 +10:00
probes.h
processor.h powernv/powerpc: Add winkle support for offline cpus 2014-12-15 10:46:41 +11:00
prom.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
ps3.h
ps3av.h
ps3gpu.h
ps3stor.h
pte-8xx.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-40x.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-44x.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-book3e.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-common.h mm: remove remaining references to NUMA hinting bits and helpers 2015-02-12 18:54:08 -08:00
pte-fsl-booke.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-hash32.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
pte-hash64-4k.h
pte-hash64-64k.h powerpc/mm: Use read barrier when creating real_pte 2014-08-13 18:20:41 +10:00
pte-hash64.h powerpc: drop _PAGE_FILE and pte_file()-related helpers 2015-02-16 17:56:05 -08:00
ptrace.h powerpc/perf: Fix ABIv2 kernel backtraces 2014-09-09 19:02:45 +10:00
qe_ic.h
qe.h
reg_8xx.h
reg_a2.h
reg_booke.h KVM: PPC: BOOKE: Emulate debug registers and exception 2014-09-22 10:11:33 +02:00
reg_fsl_emb.h
reg.h powerpc/powernv: Fixes for hypervisor doorbell handling 2015-03-20 14:51:53 +11:00
rheap.h
rio.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
rtas.h Merge branch 'next-dlpar' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc into next 2015-04-13 15:30:21 +10:00
rtc.h
runlatch.h
scom.h
seccomp.h powerpc: switch to using asm-generic for seccomp.h 2015-04-17 09:04:10 -04:00
sections.h
serial.h
setjmp.h
setup.h powerpc: Replace mem_init_done with slab_is_available() 2015-04-10 20:02:48 +10:00
sfp-machine.h
shmparam.h
signal.h
smp.h powerpc: Drop return value of smp_ops->probe() 2015-04-10 20:02:49 +10:00
smu.h powerpc: Fix comment in smu.h 2015-03-06 23:21:07 +01:00
sparsemem.h
spinlock_types.h
spinlock.h powerpc: Add smp_mb() to arch_spin_is_locked() 2014-08-13 15:13:26 +10:00
spu_csa.h
spu_info.h
spu_priv1.h
spu.h powerpc/cell: Move spu_handle_mm_fault() out of cell platform 2014-10-08 20:14:54 +11:00
sstep.h powerpc: Emulate icbi, mcrf and conditional-trap instructions 2014-09-25 23:14:51 +10:00
string.h
swab.h powerpc: Remove unused st_le*() and ld_le* functions 2015-03-24 13:33:52 +11:00
swiotlb.h
switch_to.h
synch.h
syscall.h powerpc: add little endian flag to syscall_get_arch() 2014-12-12 20:14:08 +11:00
syscalls.h
systbl.h powerpc: Enable sys_kcmp() for CRIU 2015-05-20 10:42:05 +10:00
tce.h
termios.h
thread_info.h arch: Remove exec_domain from remaining archs 2015-04-12 21:03:30 +02:00
time.h KVM: PPC: Book3S HV: Accumulate timing information for real-mode code 2015-04-21 15:21:31 +02:00
timex.h
tlb.h mmu_gather: move minimal range calculations into generic code 2014-11-17 10:12:42 +00:00
tlbflush.h powerpc/mm: don't do tlbie for updatepp request with NO HPTE fault 2014-12-05 16:26:15 +11:00
tm.h
topology.h
trace.h
tsi108_irq.h
tsi108_pci.h
tsi108.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
types.h
uaccess.h powerpc/uaccess: Allow get_user() with bitwise types 2014-12-18 19:11:09 +11:00
ucc_fast.h
ucc_slow.h powerpc/qe: drop unused ucc_slow_poll_transmitter_now 2015-03-16 18:50:17 +11:00
ucc.h
udbg.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
uic.h
unaligned.h
uninorth.h
unistd.h powerpc: Add a proper syscall for switching endianness 2015-03-28 22:03:40 +11:00
uprobes.h
user.h
vdso_datapage.h
vdso.h
vga.h powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
vio.h
word-at-a-time.h powerpc: ppc64le optimised word at a time 2014-09-30 14:59:13 +10:00
xics.h powerpc: Drop return value of smp_ops->probe() 2015-04-10 20:02:49 +10:00
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h