2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-13 08:04:45 +08:00
linux-next/arch/s390/include/asm
Thomas Richter 2cb549a821 s390/cpum_sf: Support ioctl PERF_EVENT_IOC_PERIOD
A perf_event can be set up to deliver overflow notifications
via SIGIO signal.  The setup of the event is:

 1. create event with perf_event_open()
 2. assign it a signal for I/O notification with fcntl()
 3. Install signal handler and consume samples

The initial setup of perf_event_open() determines the
period/frequency time span needed to elapse before each signal
is delivered to the user process.

While the event is active, system call
ioctl(.., PERF_EVENT_IOC_PERIOD, value) can be used the change
the frequency/period time span of the active event.
The remaining signal handler invocations honour the new value.

This does not work on s390. In fact the time span does not change
regardless of ioctl's third argument 'value'. The call succeeds
but the time span does not change.

Support this behavior and make it common with other platforms.
This is achieved by changing the interval value of the sampling
control block accordingly and feed this new value every time
the event is enabled using pmu_event_enable().

Before this change the interval value was set only once at
pmu_event_add() and never changed.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2019-09-19 12:56:07 +02:00
..
fpu License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
trace License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
airq.h s390/airq: use DMA memory for adapter interrupts 2019-06-15 12:25:05 +02:00
alternative-asm.h s390: add assembler macros for CPU alternatives 2018-03-28 08:38:27 +02:00
alternative.h s390: add a few more SPDX identifiers 2017-12-05 07:51:09 +01:00
ap.h s390/zcrypt: Fix wrong dispatching for control domain CPRBs 2019-05-28 14:49:38 +02:00
appldata.h s390/appldata: pass parameter list pointer to appldata_asm 2018-10-09 11:20:50 +02:00
archrandom.h s390/archrandom: Rework arch random implementation. 2018-05-30 11:18:04 +02:00
asm-prototypes.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atomic_ops.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-11-13 11:47:01 -08:00
atomic.h locking/atomic, s390: Use s64 for atomic64 2019-06-03 12:32:56 +02:00
barrier.h s390: add optimized array_index_mask_nospec 2018-02-05 07:51:41 +01:00
bitops.h s390/kasan: add bitops instrumentation 2019-07-23 10:46:14 +02:00
boot_data.h s390/ipl: read IPL report at early boot 2019-04-26 12:34:05 +02:00
bug.h s390/bug: add entry size to the __bug_table section 2019-05-02 13:54:11 +02:00
bugs.h s390: add a few more SPDX identifiers 2017-12-05 07:51:09 +01:00
cache.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ccwdev.h s390/cio: add basic protected virtualization support 2019-06-15 12:25:00 +02:00
ccwgroup.h s390/ccwgroup: add get_ccwgroupdev_by_busid() 2018-10-08 09:09:59 +02:00
checksum.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
chpid.h s390/cio: rename struct channel_path_desc 2018-03-26 16:13:11 +02:00
cio.h s390/cio: move struct node_descriptor to cio.h 2019-06-19 17:54:27 +02:00
clp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cmb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cmpxchg.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
compat.h asm-generic: Move common compat types to asm-generic/compat.h 2018-08-29 15:42:20 +02:00
cpacf.h s390/crypto: Support for SHA3 via CPACF (MSA6) 2019-09-13 12:18:50 +02:00
cpcmd.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpu_mcf.h s390/cpum_cf_diag: Add support for s390 counter facility diagnostic trace 2019-02-22 09:19:56 +01:00
cpu_mf-insn.h s390/cpu_mf: add store cpu counter multiple instruction support 2019-02-22 09:19:52 +01:00
cpu_mf.h s390/cpu_mf: replace stcctm5() with the stcctm() function 2019-02-22 09:19:53 +01:00
cpu.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpufeature.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cputime.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
crw.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
css_chars.h s390/cio: sanitize css_general_characteristics definition 2018-06-12 15:14:05 +02:00
ctl_reg.h arch: replace _BITUL() in kernel-space headers with BIT() 2019-07-16 19:23:22 -07:00
current.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debug.h docs: s390: unify and update s390dbf kdocs at debug.c 2019-07-05 13:42:22 +02:00
delay.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
diag.h s390/kernel: introduce .dma sections 2019-04-29 10:47:10 +02:00
dis.h s390/tools: generate header files in arch/s390/include/generated/ 2018-01-23 07:36:53 +01:00
dma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dwarf.h s390/vdso: revise CFI annotations of vDSO functions 2017-12-13 10:51:36 +01:00
eadm.h s390/eadm: fix CONFIG_BLOCK include dependency 2018-02-02 10:47:14 +01:00
ebcdic.h s390: fix clang -Wpointer-sign warnigns in boot code 2019-05-03 17:17:58 +02:00
elf.h s390: report new CPU capabilities 2019-04-25 15:34:10 +02:00
exec.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
extable.h s390/kernel: introduce .dma sections 2019-04-29 10:47:10 +02:00
extmem.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
facility.h s390: fix stfle zero padding 2019-06-19 17:54:27 +02:00
fcx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ftrace.h s390/ftrace: use HAVE_FUNCTION_GRAPH_RET_ADDR_PTR 2019-05-02 13:54:11 +02:00
futex.h s390: remove all code using the access register mode 2017-11-14 11:01:47 +01:00
gmap.h s390/mm: use refcount_t for refcount 2019-08-21 12:41:43 +02:00
hardirq.h softirq/s390: Move default mutators of overwritten softirq mask to s390 2018-05-14 11:25:28 +02:00
hugetlb.h hugetlb: allow to free gigantic pages regardless of the configuration 2019-05-14 09:47:47 -07:00
hw_irq.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
idals.h s390/idal: use struct_size() in kmalloc() 2019-06-04 15:03:18 +02:00
idle.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
io.h s390/pci: provide support for MIO instructions 2019-04-29 10:47:01 +02:00
ipl.h s390/kernel: introduce .dma sections 2019-04-29 10:47:10 +02:00
irq.h s390/pci: gather statistics for floating vs directed irqs 2019-04-29 10:47:01 +02:00
irqflags.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
isc.h KVM: s390: add gib_alert_irq_handler() 2019-02-05 14:29:23 +01:00
itcw.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
jump_label.h s390/jump_label: Use "jdd" constraint on gcc9 2019-02-20 09:48:26 +01:00
kasan.h s390/kasan: add option for 4-level paging support 2018-10-09 11:21:29 +02:00
Kbuild Remove Mysterious Macro Intended to Obscure Weird Behaviours (mmiowb()) 2019-05-06 16:57:52 -07:00
kdebug.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kexec.h s390/kernel: build a relocatable kernel 2019-04-29 10:47:10 +02:00
kprobes.h s390/kprobes: Remove jprobe implementation 2018-06-21 12:33:10 +02:00
kvm_host.h ARM: 2019-07-12 15:35:14 -07:00
kvm_para.h KVM: Introduce paravirtualization hints and KVM_HINTS_DEDICATED 2018-03-06 18:40:44 +01:00
linkage.h s390/kernel: introduce .dma sections 2019-04-29 10:47:10 +02:00
livepatch.h livepatch: Remove klp_check_compiler_support() 2019-05-10 17:53:29 -04:00
lowcore.h s390: fix clang -Wpointer-sign warnigns in boot code 2019-05-03 17:17:58 +02:00
mem_detect.h s390/mem_detect: provide single get_mem_detect_end 2019-08-26 12:51:18 +02:00
mem_encrypt.h s390/mm: force swiotlb for protected virtualization 2019-06-15 12:24:51 +02:00
mmu_context.h s390/vdso: correct vdso mapping for compat tasks 2019-01-11 17:12:02 +01:00
mmu.h s390/vdso: avoid 64-bit vdso mapping for compat tasks 2018-09-20 13:20:29 +02:00
mmzone.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
module.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nmi.h arch: replace _BITUL() in kernel-space headers with BIT() 2019-07-16 19:23:22 -07:00
nospec-branch.h s390: correct nospec auto detection init order 2018-04-11 17:46:00 +02:00
nospec-insn.h s390/nospec: rename assembler generated expoline thunks 2019-05-02 13:54:11 +02:00
numa.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
os_info.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
page-states.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
page.h s390/dma: provide proper ARCH_ZONE_DMA_BITS value 2019-07-26 13:36:12 +02:00
pci_clp.h s390/pci: fix struct definition for set PCI function 2019-05-28 14:49:29 +02:00
pci_debug.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-11-13 11:47:01 -08:00
pci_dma.h s390: move s390_pci_dma_ops to asm/pci_dma.h 2018-01-10 16:41:19 +01:00
pci_insn.h s390: fix setting of mio addressing control 2019-07-11 20:40:02 +02:00
pci_io.h s390/pci: move io address mapping code to pci_insn.c 2019-04-29 10:47:01 +02:00
pci.h s390/pci: deal with devices that have no support for MIO instructions 2019-07-04 13:13:57 +02:00
percpu.h s390: enforce CONFIG_SMP 2019-06-07 10:09:37 +02:00
perf_event.h s390/cpum_sf: Support ioctl PERF_EVENT_IOC_PERIOD 2019-09-19 12:56:07 +02:00
pgalloc.h mm: treewide: remove unused address argument from pte_alloc functions 2019-01-04 13:13:47 -08:00
pgtable.h s390: move vmalloc option parsing to startup code 2019-08-21 12:41:43 +02:00
pkey.h s390/pkey: pkey cleanup: narrow in-kernel API, fix some variable types 2019-08-21 12:58:53 +02:00
pnet.h s390/net: move pnet constants 2019-02-07 18:06:18 -08:00
preempt.h preempt: Move PREEMPT_NEED_RESCHED definition into arch code 2018-12-07 12:35:46 +00:00
processor.h s390/base: remove unused s390_base_mcck_handler 2019-09-03 13:53:56 +02:00
ptrace.h arch: replace _BITUL() in kernel-space headers with BIT() 2019-07-16 19:23:22 -07:00
purgatory.h s390/purgatory: Remove duplicate variable definitions 2018-07-06 08:47:51 +02:00
qdio.h s390: clean up qdio.h 2019-07-29 18:05:02 +02:00
runtime_instr.h s390/runtime instrumentation: provide uapi header file 2018-02-02 10:47:15 +01:00
schid.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sclp.h s390/ipl: Fix detection of has_secure attribute 2019-07-11 20:40:02 +02:00
scsw.h s390: fix comment for scsw_cmd_is_valid_sctl 2018-02-22 15:31:24 +01:00
seccomp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sections.h locking/lockdep: check for freed initmem in static_obj() 2019-04-29 10:47:10 +02:00
serial.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
set_memory.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
setup.h s390 updates for the 5.4 merge window 2019-09-17 14:04:43 -07:00
shmparam.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
signal.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sigp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smp.h s390: enforce CONFIG_HOTPLUG_CPU 2019-06-07 10:09:42 +02:00
sparsemem.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
spinlock_types.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-11-13 11:47:01 -08:00
spinlock.h s390: enforce CONFIG_SMP 2019-06-07 10:09:37 +02:00
stacktrace.h s390/unwind: correct stack switching during unwind 2019-06-07 15:20:44 +02:00
stp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
string.h s390/kasan: provide uninstrumented __strlen 2019-08-21 12:58:52 +02:00
switch_to.h s390: always save and restore all registers on context switch 2017-12-05 07:51:08 +01:00
syscall_wrapper.h s390: syscall_wrapper: avoid clang warning 2019-04-11 13:36:51 +02:00
syscall.h audit/stable-5.2 PR 20190507 2019-05-07 19:06:04 -07:00
sysinfo.h s390/sysinfo: add and display licensed internal code identifier 2018-02-02 10:47:15 +01:00
termios.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
thread_info.h arch: replace _BITUL() in kernel-space headers with BIT() 2019-07-16 19:23:22 -07:00
timex.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlb.h s390/tlb: Convert to generic mmu_gather 2019-04-03 10:32:57 +02:00
tlbflush.h s390: enforce CONFIG_SMP 2019-06-07 10:09:37 +02:00
topology.h s390/topology: fix compile error in file arch/s390/kernel/smp.c 2017-11-20 08:51:01 +01:00
uaccess.h s390/kasan: fix strncpy_from_user kasan checks 2019-04-24 13:28:46 +02:00
unistd.h s390: wire up clone3 system call 2019-07-23 10:45:53 +02:00
unwind.h s390/unwind: cleanup unused READ_ONCE_TASK_STACK 2019-07-02 16:00:27 +02:00
uprobes.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
user.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
uv.h s390/uv: introduce guest side ultravisor code 2019-04-10 17:47:21 +02:00
vdso.h s390/vdso: add missing boot_vdso_data declaration 2017-11-14 22:07:49 +01:00
vga.h s390: add a few more SPDX identifiers 2017-12-05 07:51:09 +01:00
vmlinux.lds.h s390: introduce .boot.preserved.data section 2019-04-10 17:47:09 +02:00
vtime.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vtimer.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vx-insn.h s390: add alignment hints to vector load and store 2019-02-07 11:57:10 +01:00
xor.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00