[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YjmulZMqswiXsuki@gmail.com>
Date: Tue, 22 Mar 2022 12:10:13 +0100
From: Ingo Molnar <mingo@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org,
Peter Zijlstra <peterz@...radead.org>,
Juri Lelli <juri.lelli@...hat.com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Steven Rostedt <rostedt@...dmis.org>,
Ben Segall <bsegall@...gle.com>, Mel Gorman <mgorman@...e.de>,
Daniel Bristot de Oliveira <bristot@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Borislav Petkov <bp@...en8.de>,
Thomas Gleixner <tglx@...utronix.de>
Subject: [GIT PULL -v2] scheduler updates for v5.18
Linus,
Please pull the latest sched/core git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-core-2022-03-22
# HEAD: ffea9fb319360b9ead8befac6bb2db2b54fd53e6 sched/headers: ARM needs asm/paravirt_api_clock.h too
This second pull request also fixes two regressions that were reported.
Changes in this cycle were:
- Cleanups for SCHED_DEADLINE
- Tracing updates/fixes
- CPU Accounting fixes
- First wave of changes to optimize the overhead of the scheduler build,
from the fast-headers tree - including placeholder *_api.h headers for
later header split-ups.
- Preempt-dynamic using static_branch() for ARM64
- Isolation housekeeping mask rework; preperatory for further changes
- NUMA-balancing: deal with CPU-less nodes
- NUMA-balancing: tune systems that have multiple LLC cache domains per node (eg. AMD)
- Updates to RSEQ UAPI in preparation for glibc usage
- Lots of RSEQ/selftests, for same
- Add Suren as PSI co-maintainer
Thanks,
Ingo
------------------>
Bharata B Rao (1):
sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
Chengming Zhou (4):
sched/cpuacct: Fix charge percpu cpuusage
sched/cpuacct: Optimize away RCU read lock
sched/cpuacct: Remove redundant RCU read lock
cgroup: Fix suspicious rcu_dereference_check() usage warning
Dietmar Eggemann (6):
sched/deadline: Remove unused def_dl_bandwidth
sched/deadline: Move bandwidth mgmt and reclaim functions into sched class source file
sched/deadline: Merge dl_task_can_attach() and dl_cpu_busy()
sched/deadline: Use __node_2_[pdl|dle]() and rb_first_cached() consistently
sched/deadline,rt: Remove unused functions for !CONFIG_SMP
sched/deadline,rt: Remove unused parameter from pick_next_[rt|dl]_entity()
Frederic Weisbecker (9):
pci: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch
workqueue: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch
net: Decouple HK_FLAG_WQ and HK_FLAG_DOMAIN cpumask fetch
sched/isolation: Use single feature type while referring to housekeeping cpumask
sched/isolation: Consolidate check for housekeeping minimum service
sched/isolation: Consolidate error handling
sched/isolation: Fix housekeeping_mask memory leak
sched/isolation: Split housekeeping cpumask per isolation features
sched/preempt: Tell about PREEMPT_DYNAMIC on kernel headers
Honglei Wang (1):
sched/numa: initialize numa statistics when forking new task
Huang Ying (3):
sched/numa-balancing: Move some document to make it consistent with the code
sched/numa: Fix NUMA topology for systems with CPU-less nodes
sched/numa: Avoid migrating task to CPU-less node
Huang, Ying (1):
sched/numa: Fix boot crash on arm64 systems
Ingo Molnar (17):
sched/headers: Fix header to build standalone: <linux/sched_clock.h>
sched/headers: Add header guard to kernel/sched/sched.h
sched/headers: Add header guard to kernel/sched/stats.h and kernel/sched/autogroup.h
sched/headers: sched/clock: Mark all functions 'notrace', remove CC_FLAGS_FTRACE build asymmetry
sched/headers: Add initial new headers as identity mappings
sched/headers: Fix comment typo in kernel/sched/cpudeadline.c
sched/headers: Make the <linux/sched/deadline.h> header build standalone
sched/headers: Introduce kernel/sched/build_utility.c and build multiple .c files there
sched/headers: Introduce kernel/sched/build_policy.c and build multiple .c files there
sched/headers: Standardize kernel/sched/sched.h header dependencies
sched/headers: Reorganize, clean up and optimize kernel/sched/core.c dependencies
sched/headers: Reorganize, clean up and optimize kernel/sched/fair.c dependencies
sched/headers: Reorganize, clean up and optimize kernel/sched/build_policy.c dependencies
sched/headers: Reorganize, clean up and optimize kernel/sched/build_utility.c dependencies
sched/headers: Reorganize, clean up and optimize kernel/sched/sched.h dependencies
sched/headers: Only include <linux/entry-common.h> when CONFIG_GENERIC_ENTRY=y
headers/prep: Fix header to build standalone: <linux/psi.h>
Johannes Weiner (1):
MAINTAINERS: add Suren as psi co-maintainer
K Prateek Nayak (1):
sched/topology: Remove redundant variable and fix incorrect type in build_sched_domains
Mark Rutland (7):
sched/preempt: Move PREEMPT_DYNAMIC logic later
sched/preempt: Refactor sched_dynamic_update()
sched/preempt: Simplify irqentry_exit_cond_resched() callers
sched/preempt: Decouple HAVE_PREEMPT_DYNAMIC from GENERIC_ENTRY
sched/preempt: Add PREEMPT_DYNAMIC using static keys
arm64: entry: Centralize preemption decision
arm64: Support PREEMPT_DYNAMIC
Mathieu Desnoyers (16):
selftests/rseq: introduce own copy of rseq uapi header
rseq: Remove broken uapi field layout on 32-bit little endian
selftests/rseq: Remove useless assignment to cpu variable
selftests/rseq: Remove volatile from __rseq_abi
selftests/rseq: Introduce rseq_get_abi() helper
selftests/rseq: Introduce thread pointer getters
selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35
selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big endian
selftests/rseq: Fix ppc32 missing instruction selection "u" and "x" for load/store
selftests/rseq: Fix ppc32 offsets by using long rather than off_t
selftests/rseq: Fix warnings about #if checks of undefined tokens
selftests/rseq: Remove arm/mips asm goto compiler work-around
selftests/rseq: Fix: work-around asm goto compiler bugs
selftests/rseq: x86-64: use %fs segment selector for accessing rseq thread area
selftests/rseq: x86-32: use %gs segment selector for accessing rseq thread area
selftests/rseq: Change type of rseq_offset to ptrdiff_t
Mel Gorman (2):
sched/fair: Improve consistency of allowed NUMA balance calculations
sched/fair: Adjust the allowed NUMA imbalance when SD_NUMA spans multiple LLCs
Qais Yousef (3):
sched/core: Export pelt_thermal_tp
sched/sugov: Ignore 'busy' filter when rq is capped by uclamp_max
sched/uclamp: Fix iowait boost escaping uclamp restriction
Randy Dunlap (1):
sched/headers: ARM needs asm/paravirt_api_clock.h too
Suren Baghdasaryan (2):
psi: Fix "defined but not used" warnings when CONFIG_PROC_FS=n
psi: Fix "no previous prototype" warnings when CONFIG_CGROUPS=n
Valentin Schneider (3):
sched/rt: Plug rt_mutex_setprio() vs push_rt_task() race
sched/tracing: Don't re-read p->state when emitting sched_switch event
sched/tracing: Report TASK_RTLOCK_WAIT tasks as TASK_UNINTERRUPTIBLE
Yury Norov (1):
sched: replace cpumask_weight with cpumask_empty where appropriate
Zhaoyang Huang (1):
psi: fix possible trigger missing in the window
Zhen Ni (1):
sched: move autogroup sysctls into its own file
Documentation/admin-guide/sysctl/kernel.rst | 46 +-
Documentation/scheduler/index.rst | 1 +
Documentation/scheduler/sched-debug.rst | 54 +++
MAINTAINERS | 1 +
arch/Kconfig | 37 +-
arch/arm/include/asm/paravirt_api_clock.h | 1 +
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/paravirt_api_clock.h | 1 +
arch/arm64/include/asm/preempt.h | 19 +-
arch/arm64/kernel/entry-common.c | 28 +-
arch/x86/Kconfig | 2 +-
arch/x86/include/asm/paravirt_api_clock.h | 1 +
arch/x86/include/asm/preempt.h | 10 +-
arch/x86/kernel/cpu/aperfmperf.c | 6 +-
arch/x86/kvm/x86.c | 2 +-
drivers/base/cpu.c | 2 +-
drivers/pci/pci-driver.c | 21 +-
include/linux/cgroup.h | 5 +-
include/linux/cgroup_api.h | 1 +
include/linux/cpumask_api.h | 1 +
include/linux/entry-common.h | 15 +-
include/linux/fs_api.h | 1 +
include/linux/gfp_api.h | 1 +
include/linux/hashtable_api.h | 1 +
include/linux/hrtimer_api.h | 1 +
include/linux/kernel.h | 7 +-
include/linux/kobject_api.h | 1 +
include/linux/kref_api.h | 1 +
include/linux/ktime_api.h | 1 +
include/linux/llist_api.h | 1 +
include/linux/lockdep_api.h | 1 +
include/linux/mm_api.h | 1 +
include/linux/mutex_api.h | 1 +
include/linux/perf_event_api.h | 1 +
include/linux/pgtable_api.h | 1 +
include/linux/psi.h | 1 +
include/linux/psi_types.h | 3 +
include/linux/ptrace_api.h | 1 +
include/linux/rcuwait_api.h | 1 +
include/linux/refcount_api.h | 1 +
include/linux/sched.h | 29 +-
include/linux/sched/affinity.h | 1 +
include/linux/sched/cond_resched.h | 1 +
include/linux/sched/deadline.h | 2 +
include/linux/sched/isolation.h | 43 +-
include/linux/sched/posix-timers.h | 1 +
include/linux/sched/rseq_api.h | 1 +
include/linux/sched/sysctl.h | 4 -
include/linux/sched/task_flags.h | 1 +
include/linux/sched/thread_info_api.h | 1 +
include/linux/sched/topology.h | 1 +
include/linux/sched_clock.h | 2 +
include/linux/seqlock_api.h | 1 +
include/linux/softirq.h | 1 +
include/linux/spinlock_api.h | 1 +
include/linux/swait_api.h | 1 +
include/linux/syscalls_api.h | 1 +
include/linux/u64_stats_sync_api.h | 1 +
include/linux/wait_api.h | 1 +
include/linux/workqueue_api.h | 1 +
include/trace/events/sched.h | 11 +-
include/uapi/linux/rseq.h | 20 +-
init/Makefile | 3 +-
kernel/Kconfig.preempt | 3 +-
kernel/cgroup/cpuset.c | 6 +-
kernel/cpu.c | 4 +-
kernel/entry/common.c | 23 +-
kernel/irq/cpuhotplug.c | 4 +-
kernel/irq/manage.c | 4 +-
kernel/kthread.c | 4 +-
kernel/rcu/tasks.h | 2 +-
kernel/rcu/tree_plugin.h | 6 +-
kernel/rseq.c | 8 +-
kernel/sched/Makefile | 28 +-
kernel/sched/autogroup.c | 26 +-
kernel/sched/autogroup.h | 6 +
kernel/sched/build_policy.c | 52 +++
kernel/sched/build_utility.c | 109 +++++
kernel/sched/clock.c | 44 +-
kernel/sched/completion.c | 2 +-
kernel/sched/core.c | 466 +++++++++++++--------
kernel/sched/core_sched.c | 3 -
kernel/sched/cpuacct.c | 12 +-
kernel/sched/cpudeadline.c | 3 +-
kernel/sched/cpufreq.c | 3 -
kernel/sched/cpufreq_schedutil.c | 18 +-
kernel/sched/cpupri.c | 1 -
kernel/sched/cputime.c | 1 -
kernel/sched/deadline.c | 155 +++----
kernel/sched/debug.c | 11 -
kernel/sched/fair.c | 113 +++--
kernel/sched/idle.c | 3 -
kernel/sched/isolation.c | 163 ++++---
kernel/sched/loadavg.c | 1 -
kernel/sched/membarrier.c | 1 -
kernel/sched/pelt.c | 4 -
kernel/sched/psi.c | 61 ++-
kernel/sched/rt.c | 51 ++-
kernel/sched/sched.h | 354 ++++++++--------
kernel/sched/stats.c | 1 -
kernel/sched/stats.h | 4 +
kernel/sched/stop_task.c | 1 -
kernel/sched/swait.c | 1 -
kernel/sched/topology.c | 268 ++++++++----
kernel/sched/wait.c | 1 -
kernel/sched/wait_bit.c | 2 +-
kernel/sysctl.c | 11 -
kernel/trace/fgraph.c | 4 +-
kernel/trace/ftrace.c | 4 +-
kernel/trace/trace_events.c | 8 +-
kernel/trace/trace_osnoise.c | 4 +-
kernel/trace/trace_sched_switch.c | 1 +
kernel/trace/trace_sched_wakeup.c | 1 +
kernel/watchdog.c | 2 +-
kernel/workqueue.c | 4 +-
net/core/net-sysfs.c | 6 +-
scripts/mkcompile_h | 17 +-
tools/testing/selftests/rseq/Makefile | 2 +-
.../testing/selftests/rseq/basic_percpu_ops_test.c | 2 +-
tools/testing/selftests/rseq/compiler.h | 30 ++
tools/testing/selftests/rseq/param_test.c | 8 +-
tools/testing/selftests/rseq/rseq-abi.h | 151 +++++++
tools/testing/selftests/rseq/rseq-arm.h | 110 ++---
tools/testing/selftests/rseq/rseq-arm64.h | 79 +++-
.../selftests/rseq/rseq-generic-thread-pointer.h | 25 ++
tools/testing/selftests/rseq/rseq-mips.h | 71 +---
.../selftests/rseq/rseq-ppc-thread-pointer.h | 30 ++
tools/testing/selftests/rseq/rseq-ppc.h | 128 ++++--
tools/testing/selftests/rseq/rseq-s390.h | 55 ++-
tools/testing/selftests/rseq/rseq-skip.h | 2 +-
tools/testing/selftests/rseq/rseq-thread-pointer.h | 19 +
.../selftests/rseq/rseq-x86-thread-pointer.h | 40 ++
tools/testing/selftests/rseq/rseq-x86.h | 200 ++++++---
tools/testing/selftests/rseq/rseq.c | 164 ++++----
tools/testing/selftests/rseq/rseq.h | 30 +-
135 files changed, 2345 insertions(+), 1307 deletions(-)
create mode 100644 Documentation/scheduler/sched-debug.rst
create mode 100644 arch/arm/include/asm/paravirt_api_clock.h
create mode 100644 arch/arm64/include/asm/paravirt_api_clock.h
create mode 100644 arch/x86/include/asm/paravirt_api_clock.h
create mode 100644 include/linux/cgroup_api.h
create mode 100644 include/linux/cpumask_api.h
create mode 100644 include/linux/fs_api.h
create mode 100644 include/linux/gfp_api.h
create mode 100644 include/linux/hashtable_api.h
create mode 100644 include/linux/hrtimer_api.h
create mode 100644 include/linux/kobject_api.h
create mode 100644 include/linux/kref_api.h
create mode 100644 include/linux/ktime_api.h
create mode 100644 include/linux/llist_api.h
create mode 100644 include/linux/lockdep_api.h
create mode 100644 include/linux/mm_api.h
create mode 100644 include/linux/mutex_api.h
create mode 100644 include/linux/perf_event_api.h
create mode 100644 include/linux/pgtable_api.h
create mode 100644 include/linux/ptrace_api.h
create mode 100644 include/linux/rcuwait_api.h
create mode 100644 include/linux/refcount_api.h
create mode 100644 include/linux/sched/affinity.h
create mode 100644 include/linux/sched/cond_resched.h
create mode 100644 include/linux/sched/posix-timers.h
create mode 100644 include/linux/sched/rseq_api.h
create mode 100644 include/linux/sched/task_flags.h
create mode 100644 include/linux/sched/thread_info_api.h
create mode 100644 include/linux/seqlock_api.h
create mode 100644 include/linux/softirq.h
create mode 100644 include/linux/spinlock_api.h
create mode 100644 include/linux/swait_api.h
create mode 100644 include/linux/syscalls_api.h
create mode 100644 include/linux/u64_stats_sync_api.h
create mode 100644 include/linux/wait_api.h
create mode 100644 include/linux/workqueue_api.h
create mode 100644 kernel/sched/build_policy.c
create mode 100644 kernel/sched/build_utility.c
create mode 100644 tools/testing/selftests/rseq/compiler.h
create mode 100644 tools/testing/selftests/rseq/rseq-abi.h
create mode 100644 tools/testing/selftests/rseq/rseq-generic-thread-pointer.h
create mode 100644 tools/testing/selftests/rseq/rseq-ppc-thread-pointer.h
create mode 100644 tools/testing/selftests/rseq/rseq-thread-pointer.h
create mode 100644 tools/testing/selftests/rseq/rseq-x86-thread-pointer.h
Powered by blists - more mailing lists