android_kernel_samsung_a7y1.../include
Sultan Alsawaf a1ede341b3 kernel: Add API to mark IRQs and kthreads as performance critical
On devices with a CPU that contains heterogeneous cores (e.g.,
big.LITTLE), it can be beneficial to place some performance-critical
IRQs and kthreads onto the performance CPU cluster in order to improve
performance.

This commit adds the following APIs:
-kthread_run_perf_critical() to create and start a perf-critical kthread
-irq_set_perf_affinity() to mark an active IRQ as perf-critical
-IRQF_PERF_CRITICAL to schedule an IRQ and any threads it may have onto
 performance CPUs
-PF_PERF_CRITICAL to mark a process (mainly a kthread) as performance
 critical (this is used by kthread_run_perf_critical())

In order to accommodate this new API, the following changes are made:
-Performance-critical IRQs are distributed evenly among online CPUs
 available in cpu_perf_mask
-Performance-critical IRQs have their affinities reaffined upon exit
 from suspend (since the affinities are broken when non-boot CPUs are
 disabled)
-Performance-critical IRQs and their threads have their affinities reset
 upon entering suspend, so that upon immediate suspend exit (when only
 the boot CPU is online), interrupts can be processed and interrupt
 threads can be scheduled onto an online CPU (otherwise we'd hit a
 kernel BUG)
-__set_cpus_allowed_ptr() is modified to enforce a performance-critical
 kthread's affinity
-Perf-critical IRQs are marked with IRQD_AFFINITY_MANAGED so userspace
 can't mess with their affinity

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
2020-08-18 23:10:22 +05:30
..
acpi A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
asm-generic rtc: cmos: ignore bogus century byte 2020-04-07 13:40:13 +02:00
clocksource A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
crypto A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
drm drm: mst: Fix query_payload ack reply struct 2020-04-07 13:20:02 +02:00
dt-bindings A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
keys A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
kvm A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
linux kernel: Add API to mark IRQs and kthreads as performance critical 2020-08-18 23:10:22 +05:30
math-emu math-emu/soft-fp.h: (_FP_ROUND_ZERO) cast 0 to void to fix warning 2020-04-07 12:44:41 +02:00
media media: davinci/vpbe: array underflow in vpbe_enum_outputs() 2020-04-07 13:41:48 +02:00
memory A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
misc A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
net fib: add missing attribute validation for tun_id 2020-04-07 14:11:02 +02:00
pcmcia A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ras A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rdma A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
rxrpc A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
scsc A750FNPUU4CTE3 2020-08-18 17:44:51 +05:30
scsi scsi: Revert "target: iscsi: Wait for all commands to finish before freeing a session" 2020-04-07 14:03:54 +02:00
sdp A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
soc A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sound ALSA: rawmidi: Avoid bit fields for state flags 2020-04-07 14:03:58 +02:00
target A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
trace tracing: xen: Ordered comparison of function pointers 2020-04-07 13:45:00 +02:00
uapi A750FNPUU4CTE3 2020-08-18 17:44:51 +05:30
video fbdev: Remove unused SH-Mobile HDMI driver 2020-04-07 12:31:27 +02:00
xen A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Kbuild A750FXXU4CTBC 2020-03-27 21:51:54 +05:30