linux/arch/arm/kernel
Viresh Kumar df24014abe cpufreq: Call transition notifier only once for each policy
Currently, the notifiers are called once for each CPU of the policy->cpus
cpumask. It would be more optimal if the notifier can be called only
once and all the relevant information be provided to it. Out of the 23
drivers that register for the transition notifiers today, only 4 of them
do per-cpu updates and the callback for the rest can be called only once
for the policy without any impact.

This would also avoid multiple function calls to the notifier callbacks
and reduce multiple iterations of notifier core's code (which does
locking as well).

This patch adds pointer to the cpufreq policy to the struct
cpufreq_freqs, so the notifier callback has all the information
available to it with a single call. The five drivers which perform
per-cpu updates are updated to use the cpufreq policy. The freqs->cpu
field is redundant now and is removed.

Acked-by: David S. Miller <davem@davemloft.net> (sparc)
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-05-10 12:20:36 +02:00
..
.gitignore
arch_timer.c
armksyms.c ARM: 8788/1: ftrace: remove old mcount support 2018-09-19 10:44:50 +01:00
asm-offsets.c ARM: smp: add support for per-task stack canaries 2018-12-12 13:20:07 -08:00
atags.h
atags_compat.c
atags_parse.c vfs: Suppress MS_* flag defs within the kernel unless explicitly enabled 2018-12-20 16:32:56 +00:00
atags_proc.c
bios32.c
bugs.c ARM: clean up per-processor check_bugs method call 2018-11-12 10:51:01 +00:00
cpuidle.c
crash_dump.c
debug.S ARM: 8844/1: use unified assembler in assembly files 2019-02-26 11:26:07 +00:00
devtree.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
dma-isa.c
dma.c proc: introduce proc_create_single{,_data} 2018-05-16 07:23:35 +02:00
early_printk.c
efi.c
elf.c
entry-armv.S ARM: 8844/1: use unified assembler in assembly files 2019-02-26 11:26:07 +00:00
entry-common.S ARM: 8844/1: use unified assembler in assembly files 2019-02-26 11:26:07 +00:00
entry-ftrace.S ARM: 8788/1: ftrace: remove old mcount support 2018-09-19 10:44:50 +01:00
entry-header.S ARM: 8844/1: use unified assembler in assembly files 2019-02-26 11:26:07 +00:00
entry-v7m.S ARM: 8830/1: NOMMU: Toggle only bits in EXC_RETURN we are really care of 2019-02-01 21:44:19 +00:00
fiq.c
fiqasm.S
ftrace.c ARM: function_graph: Simplify with function_graph_enter() 2018-11-27 20:29:52 -05:00
head-common.S ARM: make lookup_processor_type() non-__init 2018-11-12 10:51:01 +00:00
head-inflate-data.c
head-nommu.S ARM: 8856/1: NOMMU: Fix CCR register faulty initialization when MPU is disabled 2019-04-23 17:28:37 +01:00
head.S ARM: 8811/1: always list both ldrd/strd registers explicitly 2018-11-12 10:51:54 +00:00
hibernate.c
hw_breakpoint.c perf/arch/arm: Implement hw_breakpoint_arch_parse() 2018-06-26 09:07:56 +02:00
hyp-stub.S ARM: 8848/1: virt: Align GIC version check with arm64 counterpart 2019-02-26 11:33:48 +00:00
insn.c
io.c
irq.c ARM: 8824/1: fix a migrating irq bug when hotplug cpu 2019-02-01 21:54:49 +00:00
isa.c
iwmmxt.S
jump_label.c jump_label: move 'asm goto' support test to Kconfig 2019-01-06 09:46:51 +09:00
kgdb.c kgdb/treewide: constify struct kgdb_arch arch_kgdb_ops 2018-12-30 08:33:06 +00:00
machine_kexec.c ARM: avoid Cortex-A9 livelock on tight dmb loops 2019-02-01 22:05:50 +00:00
Makefile ARM: bugs: prepare processor bug infrastructure 2018-05-31 10:39:18 +01:00
module-plts.c
module.c
module.lds
opcodes.c
paravirt.c x86/paravirt: Use a single ops structure 2018-09-03 16:50:35 +02:00
patch.c ARM: 8839/1: kprobe: make patch_lock a raw_spinlock_t 2019-02-26 11:24:50 +00:00
perf_callchain.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
perf_event_v6.c arm_pmu: Tidy up clear_event_idx call backs 2018-07-10 18:19:02 +01:00
perf_event_v7.c arm_pmu: Tidy up clear_event_idx call backs 2018-07-10 18:19:02 +01:00
perf_event_xscale.c arm_pmu: Tidy up clear_event_idx call backs 2018-07-10 18:19:02 +01:00
perf_regs.c
pj4-cp0.c
process.c get rid of legacy 'get_ds()' function 2019-03-04 10:50:14 -08:00
psci_smp.c
ptrace.c signal/arm: Use force_sig_fault where appropriate 2018-09-27 21:57:39 +02:00
reboot.c
reboot.h
relocate_kernel.S
return_address.c
setup.c treewide: add checks for the return value of memblock_alloc*() 2019-03-12 10:04:02 -07:00
signal.c rseq: Clean up comments by reflecting removal of event counter 2019-04-19 12:39:31 +02:00
signal.h
sigreturn_codes.S
sleep.S ARM: 8847/1: pm: fix HYP/SVC mode mismatch when MCPM is used 2019-02-26 11:32:54 +00:00
smccc-call.S
smp.c cpufreq: Call transition notifier only once for each policy 2019-05-10 12:20:36 +02:00
smp_scu.c
smp_tlb.c
smp_twd.c ARM: 8822/1: smp_twd: Remove legacy TWD registration 2019-02-01 21:44:10 +00:00
stacktrace.c arm/stacktrace: Remove the pointless ULONG_MAX marker 2019-04-14 19:58:27 +02:00
suspend.c ARM: bugs: hook processor bug checking into SMP and suspend paths 2018-05-31 10:39:29 +01:00
swp_emulate.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
sys_arm.c mm: add ksys_fadvise64_64() helper; remove in-kernel call to sys_fadvise64_64() 2018-04-02 20:16:10 +02:00
sys_oabi-compat.c y2038: use time32 syscall names on 32-bit 2019-02-07 00:13:28 +01:00
tcm.c
thumbee.c
time.c ARM/time: Remove read_boot_clock64() 2018-07-20 00:02:41 +02:00
topology.c ARM: topology: remove unneeded check for /cpus node 2018-09-28 14:25:58 -05:00
traps.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
unwind.c ARM: 8840/1: use a raw_spinlock_t in unwind 2019-02-26 11:24:51 +00:00
v7m.c
vdso.c ARM: 8748/1: mm: Define vdso_start, vdso_end as array 2018-03-24 14:27:49 +00:00
vmlinux-xip.lds.S vmlinux.lds.h: Move LSM_TABLE into INIT_DATA 2018-10-10 20:40:21 -07:00
vmlinux.lds.h vmlinux.lds.h: Fix incomplete .text.exit discards 2018-10-12 08:54:58 +11:00
vmlinux.lds.S ARM: 8757/1: NOMMU: Support PMSAv8 MPU 2018-05-19 11:53:46 +01:00
xscale-cp0.c