linux/kernel
Qais Yousef b38208f02b FROMGIT: sched/rt: cpupri_find: Trigger a full search as fallback
If we failed to find a fitting CPU, in cpupri_find(), we only fallback
to the level we found a hit at.

But Steve suggested to fallback to a second full scan instead as this
could be a better effort.

	https://lore.kernel.org/lkml/20200304135404.146c56eb@gandalf.local.home/

We trigger the 2nd search unconditionally since the argument about
triggering a full search is that the recorded fall back level might have
become empty by then. Which means storing any data about what happened
would be meaningless and stale.

I had a humble try at timing it and it seemed okay for the small 6 CPUs
system I was running on

	https://lore.kernel.org/lkml/20200305124324.42x6ehjxbnjkklnh@e107158-lin.cambridge.arm.com/

On large system this second full scan could be expensive. But there are
no users outside capacity awareness for this fitness function at the
moment. Heterogeneous systems tend to be small with 8cores in total.

Bug: 120440300
Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Link: https://lkml.kernel.org/r/20200310142219.syxzn5ljpdxqtbgx@e107158-lin.cambridge.arm.com
(cherry picked from commit e94f80f6c4
 https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core)
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Change-Id: Ib20d400be47cd913a43a5c71fafee6a7fffb78aa
2020-03-26 12:04:38 +00:00
..
bpf UPSTREAM: bpf: Explicitly memset some bpf info structures declared on the stack 2020-03-23 16:40:45 +01:00
cgroup This is the 4.19.111 stable release 2020-03-18 08:19:47 +01:00
configs
debug This is the 4.19.99 stable release 2020-01-27 15:55:44 +01:00
dma ANDROID: GKI: drivers: Add dma removed ops 2020-03-16 18:10:36 +00:00
events This is the 4.19.103 stable release 2020-02-11 15:05:03 -08:00
gcov
irq ANDROID: GKI: genirq: Export symbols to compile irqchip drivers as modules 2020-03-09 11:32:04 -07:00
livepatch
locking locking/spinlock/debug: Fix various data races 2020-01-12 12:17:05 +01:00
power This is the 4.19.94 stable release 2020-01-09 16:14:43 +01:00
printk printk: fix exclusive_console replaying 2020-02-11 04:33:51 -08:00
rcu rcu: Avoid data-race in rcu_gp_fqs_check_wake() 2020-02-11 04:33:55 -08:00
sched FROMGIT: sched/rt: cpupri_find: Trigger a full search as fallback 2020-03-26 12:04:38 +00:00
time ANDROID: GKI: kernel: tick-sched: Add API to get the next wakeup for a CPU 2020-03-23 12:21:04 -07:00
trace This is the 4.19.108 stable release 2020-03-05 17:40:55 +01:00
.gitignore
acct.c
async.c
audit_fsnotify.c
audit_tree.c
audit_watch.c
audit.c audit: always check the netlink payload length in audit_receive_msg() 2020-03-05 16:42:23 +01:00
audit.h
auditfilter.c audit: fix error handling in audit_data_to_entry() 2020-03-05 16:42:17 +01:00
auditsc.c
backtracetest.c
bounds.c
capability.c LSM: generalize flag passing to security_capable 2020-01-23 08:21:29 +01:00
cfi.c
compat.c
configs.c
context_tracking.c
cpu_pm.c
cpu.c This is the 4.19.106 stable release 2020-02-24 09:13:25 +01:00
crash_core.c
crash_dump.c
cred.c memcg: account security cred as well to kmemcg 2020-01-09 10:19:00 +01:00
delayacct.c
dma.c
elfcore.c
exec_domain.c
exit.c exit: panic before exit_mm() on global init exit 2020-01-09 10:19:02 +01:00
extable.c
fail_function.c
fork.c This is the 4.19.99 stable release 2020-01-27 15:55:44 +01:00
freezer.c
futex.c futex: Unbreak futex hashing 2020-03-25 08:06:14 +01:00
gen_kheaders.sh
groups.c
hung_task.c
iomem.c
irq_work.c
jump_label.c
kallsyms.c FROMGIT: kallsyms: unexport kallsyms_lookup_name() and kallsyms_on_each_symbol() 2020-03-12 11:18:50 +00:00
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c UPSTREAM: kcov: remote coverage support 2020-01-15 14:51:23 +00:00
kexec_core.c
kexec_file.c
kexec_internal.h
kexec.c
kheaders.c
kmod.c
kprobes.c kprobes: Fix optimize_kprobe()/unoptimize_kprobe() cancellation logic 2020-03-11 14:14:47 +01:00
ksysfs.c
kthread.c
latencytop.c
Makefile
memremap.c mm/memory_hotplug: shrink zones when offlining memory 2020-01-29 16:43:27 +01:00
module_signing.c
module-internal.h
module.c This is the 4.19.106 stable release 2020-02-24 09:13:25 +01:00
notifier.c x86/mm: split vmalloc_sync_all() 2020-03-25 08:06:13 +01:00
nsproxy.c
padata.c padata: fix null pointer deref of pd->pinst 2020-02-14 16:33:28 -05:00
panic.c
params.c
pid_namespace.c
pid.c
profile.c
ptrace.c ptrace: reintroduce usage of subjective credentials in ptrace_has_cap() 2020-01-23 08:21:29 +01:00
range.c
reboot.c
relay.c
resource.c
rseq.c
scs.c
seccomp.c LSM: generalize flag passing to security_capable 2020-01-23 08:21:29 +01:00
signal.c This is the 4.19.112 stable release 2020-03-21 08:37:27 +01:00
smp.c
smpboot.c
smpboot.h
softirq.c
stacktrace.c
stop_machine.c
sys_ni.c
sys.c
sysctl_binary.c
sysctl.c BACKPORT: mm: reclaim small amounts of memory when an external fragmentation event occurs 2020-03-04 12:01:17 -08:00
task_work.c
taskstats.c taskstats: fix data-race 2020-01-09 10:18:59 +01:00
test_kprobes.c
torture.c
tracepoint.c
tsacct.c
ucount.c
uid16.c
uid16.h
umh.c
up.c
user_namespace.c
user-return-notifier.c
user.c
utsname_sysctl.c
utsname.c
watchdog_hld.c
watchdog.c watchdog/softlockup: Enforce that timestamp is valid on boot 2020-02-24 08:34:49 +01:00
workqueue_internal.h
workqueue.c This is the 4.19.111 stable release 2020-03-18 08:19:47 +01:00