linux-stable/include/linux/sched
Peter Zijlstra fb7d4948c4 sched/clock: Provide local_clock_noinstr()
Now that all ARCH_WANTS_NO_INSTR architectures (arm64, loongarch,
s390, x86) provide sched_clock_noinstr(), use this to provide
local_clock_noinstr().

This local_clock_noinstr() will be safe to use from noinstr code with
the assumption that any such noinstr code is non-preemptible (it had
better be, entry code will have IRQs disabled while __cpuidle must
have preemption disabled).

Specifically, preempt_enable_notrace(), a common part of many a
sched_clock() implementation calls out to schedule() -- even though,
per the above, it will never trigger -- which frustrates noinstr
validation.

  vmlinux.o: warning: objtool: local_clock+0xb5: call to preempt_schedule_notrace_thunk() leaves .noinstr.text section

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Michael Kelley <mikelley@microsoft.com>  # Hyper-V
Link: https://lore.kernel.org/r/20230519102715.978624636@infradead.org
2023-06-05 21:11:09 +02:00
..
affinity.h
autogroup.h
clock.h sched/clock: Provide local_clock_noinstr() 2023-06-05 21:11:09 +02:00
cond_resched.h
coredump.h mm: add new api to enable ksm per process 2023-04-21 14:52:03 -07:00
cpufreq.h
cputime.h
deadline.h
debug.h
hotplug.h
idle.h
init.h
isolation.h sched/isolation: add cpu_is_isolated() API 2023-04-18 16:29:43 -07:00
jobctl.h
loadavg.h
mm.h IOMMU Updates for Linux 6.4 2023-04-30 13:00:38 -07:00
nohz.h
numa_balancing.h
posix-timers.h
prio.h
rseq_api.h
rt.h
sd_flags.h sched/topology: Remove SHARED_CHILD from ASYM_PACKING 2023-05-08 10:58:37 +02:00
signal.h
smt.h
stat.h
sysctl.h
task.h fork: allow kernel code to call copy_process 2023-03-12 10:54:43 +01:00
task_flags.h
task_stack.h sched: Fix KCSAN noinstr violation 2023-04-14 16:08:26 +02:00
thread_info_api.h
topology.h
types.h
user.h
vhost_task.h vhost_task: Allow vhost layer to use copy_process 2023-03-23 12:45:36 +01:00
wake_q.h
xacct.h