Scheduler changes for v5.15 are:

- The biggest change in this cycle is scheduler support for asymmetric
  scheduling affinity, to support the execution of legacy 32-bit tasks on
  AArch32 systems that also have 64-bit-only CPUs.

  Architectures can fill in this functionality by defining their
  own task_cpu_possible_mask(p). When this is done, the scheduler will
  make sure the task will only be scheduled on CPUs that support it.

  (The actual arm64 specific changes are not part of this tree.)

  For other architectures there will be no change in functionality.

- Add cgroup SCHED_IDLE support

- Increase node-distance flexibility & delay determining it until a CPU
  is brought online. (This enables platforms where node distance isn't
  final until the CPU is only.)

- Deadline scheduler enhancements & fixes

- Misc fixes & cleanups.

Signed-off-by: Ingo Molnar <mingo@kernel.org>
eventfd: Make signal recursion protection a task bit

The recursion protection for eventfd_signal() is based on a per CPU
variable and relies on the !RT semantics of spin_lock_irqsave() for
protecting this per CPU variable. On RT kernels spin_lock_irqsave() neither
disables preemption nor interrupts which allows the spin lock held section
to be preempted. If the preempting task invokes eventfd_signal() as well,
then the recursion warning triggers.

Paolo suggested to protect the per CPU variable with a local lock, but
that's heavyweight and actually not necessary. The goal of this protection
is to prevent the task stack from overflowing, which can be achieved with a
per task recursion protection as well.

Replace the per CPU variable with a per task bit similar to other recursion
protection bits like task_struct::in_page_owner. This works on both !RT and
RT kernels and removes as a side effect the extra per CPU storage.

No functional change for !RT kernels.

Reported-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lore.kernel.org/r/87wnp9idso.ffs@tglx

4 files changed