2022-03-21 20:09:00

by Ingo Molnar

[permalink] [raw]
Subject: [GIT PULL] 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-21

# HEAD: 3387ce4d8a5f2956fab827edf499fe6780e83faa headers/prep: Fix header to build standalone: <linux/psi.h>

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

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

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/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 +-
134 files changed, 2344 insertions(+), 1307 deletions(-)
create mode 100644 Documentation/scheduler/sched-debug.rst
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


2022-03-21 21:53:33

by Qian Cai

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18

On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
> 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

Linus, I don't think you want to merge this as-is. This will introduce a
kernel crash on arm64 NUMA as mentioned in this thread,

https://lore.kernel.org/lkml/Yh6H8SPSqpjv1dl7@qian

Ying sent an updated patch to fix the crash but is missing from this pull
request for some reasons.

https://lore.kernel.org/lkml/[email protected]/

2022-03-21 22:42:13

by Nathan Chancellor

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18

Hi Ingo,

On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
> 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>

This series regresses ARCH=arm allmodconfig:

$ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mrproper allmodconfig kernel/sched/
In file included from kernel/sched/fair.c:52:
kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
87 | # include <asm/paravirt_api_clock.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [scripts/Makefile.build:288: kernel/sched/fair.o] Error 1
In file included from kernel/sched/core.c:81:
kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
87 | # include <asm/paravirt_api_clock.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [scripts/Makefile.build:288: kernel/sched/core.o] Error 1
In file included from kernel/sched/build_policy.c:33:
kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
87 | # include <asm/paravirt_api_clock.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [scripts/Makefile.build:288: kernel/sched/build_policy.o] Error 1
In file included from kernel/sched/build_utility.c:52:
kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
87 | # include <asm/paravirt_api_clock.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [scripts/Makefile.build:288: kernel/sched/build_utility.o] Error 1
make[3]: Target '__build' not remade because of errors.
make[2]: *** [scripts/Makefile.build:550: kernel/sched] Error 2

Randy Dunlap has sent a patch that fixes it, which I just reviewed:

https://lore.kernel.org/r/[email protected]/

It would be nice if this could be taken with the pull (or submitted with
the pull in a v2 as I see Qian's comment) to avoid regressing the build.

Cheers,
Nathan

2022-03-22 00:40:59

by Huang, Ying

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18

Qian Cai <[email protected]> writes:

> On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
>> 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

These 2 patches are good.

>> sched/numa: Avoid migrating task to CPU-less node

As Qian pointed out, this needs to be updated.

> Linus, I don't think you want to merge this as-is. This will introduce a
> kernel crash on arm64 NUMA as mentioned in this thread,
>
> https://lore.kernel.org/lkml/Yh6H8SPSqpjv1dl7@qian
>
> Ying sent an updated patch to fix the crash but is missing from this pull
> request for some reasons.
>
> https://lore.kernel.org/lkml/[email protected]/

This is sent as an UPDATE patch. Hi, Peter, do you need a new version
of patchset when some patches needs to be updated in general?

Best Regards,
Huang, Ying

2022-03-22 00:50:49

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18

On Mon, Mar 21, 2022 at 6:13 AM Qian Cai <[email protected]> wrote:
>
> On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
> > 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
>
> Linus, I don't think you want to merge this as-is. This will introduce a
> kernel crash on arm64 NUMA as mentioned in this thread,

Ok, dropped from my queue. Thanks,

Linus

2022-03-22 01:20:53

by Huang, Ying

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18

Hi, Linus,

Linus Torvalds <[email protected]> writes:

> On Mon, Mar 21, 2022 at 6:13 AM Qian Cai <[email protected]> wrote:
>>
>> On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
>> > 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
>>
>> Linus, I don't think you want to merge this as-is. This will introduce a
>> kernel crash on arm64 NUMA as mentioned in this thread,
>
> Ok, dropped from my queue. Thanks,

Can you just drop the last one, that is,

sched/numa: Avoid migrating task to CPU-less node

That is the patch that has the bug reported by Qian. The other 2 are
good.

I will work with Peter and Ingo to update the buggy patch.

Best Regards,
Huang, Ying

2022-03-22 01:34:08

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18

On Mon, Mar 21, 2022 at 5:54 PM Huang, Ying <[email protected]> wrote:
>
> >
> > Ok, dropped from my queue. Thanks,
>
> Can you just drop the last one, that is,
>
> sched/numa: Avoid migrating task to CPU-less node

I will need a new pull request - that commit isn't actually the last
in there, so it's not just a "do a pull but don't take the last
commit" (which I've done once or twice, but it also loses the tag
signature in the process).

Linus

2022-03-22 07:47:46

by Ingo Molnar

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18


* Linus Torvalds <[email protected]> wrote:

> On Mon, Mar 21, 2022 at 6:13 AM Qian Cai <[email protected]> wrote:
> >
> > On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
> > > 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
> >
> > Linus, I don't think you want to merge this as-is. This will introduce a
> > kernel crash on arm64 NUMA as mentioned in this thread,
>
> Ok, dropped from my queue. Thanks,

I've reverted the broken commit & will send another pull request after some
testing. Sorry about that!

Thanks,

Ingo

2022-03-22 07:54:33

by Ingo Molnar

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18


* Ingo Molnar <[email protected]> wrote:

>
> * Linus Torvalds <[email protected]> wrote:
>
> > On Mon, Mar 21, 2022 at 6:13 AM Qian Cai <[email protected]> wrote:
> > >
> > > On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
> > > > 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
> > >
> > > Linus, I don't think you want to merge this as-is. This will introduce a
> > > kernel crash on arm64 NUMA as mentioned in this thread,
> >
> > Ok, dropped from my queue. Thanks,
>
> I've reverted the broken commit & will send another pull request after
> some testing. Sorry about that!

Ended up using the fix below instead - it's tested already on the affected
system.

Thanks,

Ingo

=================>
From: "Huang, Ying" <[email protected]>
Date: Tue, 22 Mar 2022 08:39:22 +0100
Subject: [PATCH] sched/numa: Fix boot crash on arm64 systems

Qian Cai reported a boot crash on arm64 systems, caused by:

0fb3978b0aac ("sched/numa: Fix NUMA topology for systems with CPU-less nodes")

The bug is that node_state() must be supplied a valid node_states[] array index,
but in task_numa_placement() the max_nid search can fail with NUMA_NO_NODE,
which is not a valid index.

Fix it by checking that max_nid is a valid index.

[ mingo: Added changelog. ]

Fixes: 0fb3978b0aac ("sched/numa: Fix NUMA topology for systems with CPU-less nodes")
Reported-by: Qian Cai <[email protected]>
Tested-by: Qian Cai <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
---
kernel/sched/fair.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 89d21fda106c..ee0664c9d291 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -2437,7 +2437,7 @@ static void task_numa_placement(struct task_struct *p)
}

/* Cannot migrate task to CPU-less node */
- if (!node_state(max_nid, N_CPU)) {
+ if (max_nid != NUMA_NO_NODE && !node_state(max_nid, N_CPU)) {
int near_nid = max_nid;
int distance, near_distance = INT_MAX;


2022-03-22 08:23:17

by Ingo Molnar

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18


* Nathan Chancellor <[email protected]> wrote:

> Hi Ingo,
>
> On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
> > 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>
>
> This series regresses ARCH=arm allmodconfig:
>
> $ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mrproper allmodconfig kernel/sched/
> In file included from kernel/sched/fair.c:52:
> kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
> 87 | # include <asm/paravirt_api_clock.h>
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> make[3]: *** [scripts/Makefile.build:288: kernel/sched/fair.o] Error 1
> In file included from kernel/sched/core.c:81:
> kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
> 87 | # include <asm/paravirt_api_clock.h>
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> make[3]: *** [scripts/Makefile.build:288: kernel/sched/core.o] Error 1
> In file included from kernel/sched/build_policy.c:33:
> kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
> 87 | # include <asm/paravirt_api_clock.h>
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> make[3]: *** [scripts/Makefile.build:288: kernel/sched/build_policy.o] Error 1
> In file included from kernel/sched/build_utility.c:52:
> kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
> 87 | # include <asm/paravirt_api_clock.h>
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> make[3]: *** [scripts/Makefile.build:288: kernel/sched/build_utility.o] Error 1
> make[3]: Target '__build' not remade because of errors.
> make[2]: *** [scripts/Makefile.build:550: kernel/sched] Error 2
>
> Randy Dunlap has sent a patch that fixes it, which I just reviewed:
>
> https://lore.kernel.org/r/[email protected]/

Applied, thanks Nathan!

> It would be nice if this could be taken with the pull (or submitted with
> the pull in a v2 as I see Qian's comment) to avoid regressing the build.

Will do.

Thanks,

Ingo

2022-03-22 08:53:44

by Huang, Ying

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18

Hi, Ingo,

Ingo Molnar <[email protected]> writes:

> * Ingo Molnar <[email protected]> wrote:
>
>>
>> * Linus Torvalds <[email protected]> wrote:
>>
>> > On Mon, Mar 21, 2022 at 6:13 AM Qian Cai <[email protected]> wrote:
>> > >
>> > > On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
>> > > > 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
>> > >
>> > > Linus, I don't think you want to merge this as-is. This will introduce a
>> > > kernel crash on arm64 NUMA as mentioned in this thread,
>> >
>> > Ok, dropped from my queue. Thanks,
>>
>> I've reverted the broken commit & will send another pull request after
>> some testing. Sorry about that!
>
> Ended up using the fix below instead - it's tested already on the affected
> system.
>

Thanks a lot for your help!

Is it a general rule to send a fixing patch for the bug of a patch
merged by tip tree? Or a new version of the patch is acceptable too?

Best Regards,
Huang, Ying

2022-03-22 14:42:31

by Ingo Molnar

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18


* Huang, Ying <[email protected]> wrote:

> Hi, Ingo,
>
> Ingo Molnar <[email protected]> writes:
>
> > * Ingo Molnar <[email protected]> wrote:
> >
> >>
> >> * Linus Torvalds <[email protected]> wrote:
> >>
> >> > On Mon, Mar 21, 2022 at 6:13 AM Qian Cai <[email protected]> wrote:
> >> > >
> >> > > On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
> >> > > > 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
> >> > >
> >> > > Linus, I don't think you want to merge this as-is. This will introduce a
> >> > > kernel crash on arm64 NUMA as mentioned in this thread,
> >> >
> >> > Ok, dropped from my queue. Thanks,
> >>
> >> I've reverted the broken commit & will send another pull request after
> >> some testing. Sorry about that!
> >
> > Ended up using the fix below instead - it's tested already on the affected
> > system.
> >
>
> Thanks a lot for your help!
>
> Is it a general rule to send a fixing patch for the bug of a patch
> merged by tip tree? Or a new version of the patch is acceptable too?

Depends on how recently it got merged. This one was merged a few weeks ago,
and the fix patch is simple enough, so I went for that approach.

Thanks,

Ingo

2022-03-22 18:30:10

by Ingo Molnar

[permalink] [raw]
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

2022-03-22 18:43:09

by Nathan Chancellor

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18

On Tue, Mar 22, 2022 at 08:54:53AM +0100, Ingo Molnar wrote:
>
> * Nathan Chancellor <[email protected]> wrote:
>
> > Hi Ingo,
> >
> > On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
> > > 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>
> >
> > This series regresses ARCH=arm allmodconfig:
> >
> > $ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mrproper allmodconfig kernel/sched/
> > In file included from kernel/sched/fair.c:52:
> > kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
> > 87 | # include <asm/paravirt_api_clock.h>
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > compilation terminated.
> > make[3]: *** [scripts/Makefile.build:288: kernel/sched/fair.o] Error 1
> > In file included from kernel/sched/core.c:81:
> > kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
> > 87 | # include <asm/paravirt_api_clock.h>
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > compilation terminated.
> > make[3]: *** [scripts/Makefile.build:288: kernel/sched/core.o] Error 1
> > In file included from kernel/sched/build_policy.c:33:
> > kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
> > 87 | # include <asm/paravirt_api_clock.h>
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > compilation terminated.
> > make[3]: *** [scripts/Makefile.build:288: kernel/sched/build_policy.o] Error 1
> > In file included from kernel/sched/build_utility.c:52:
> > kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
> > 87 | # include <asm/paravirt_api_clock.h>
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> > compilation terminated.
> > make[3]: *** [scripts/Makefile.build:288: kernel/sched/build_utility.o] Error 1
> > make[3]: Target '__build' not remade because of errors.
> > make[2]: *** [scripts/Makefile.build:550: kernel/sched] Error 2
> >
> > Randy Dunlap has sent a patch that fixes it, which I just reviewed:
> >
> > https://lore.kernel.org/r/[email protected]/
>
> Applied, thanks Nathan!
>
> > It would be nice if this could be taken with the pull (or submitted with
> > the pull in a v2 as I see Qian's comment) to avoid regressing the build.
>
> Will do.

Thank you a lot for the quick response and fix, I appreciate it!

Cheers,
Nathan

2022-03-23 08:27:47

by pr-tracker-bot

[permalink] [raw]
Subject: Re: [GIT PULL -v2] scheduler updates for v5.18

The pull request you sent on Tue, 22 Mar 2022 12:10:13 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-core-2022-03-22

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/3fe2f7446f1e029b220f7f650df6d138f91651f2

Thank you!

--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

2022-03-23 13:32:27

by pr-tracker-bot

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18

The pull request you sent on Mon, 21 Mar 2022 11:54:09 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-core-2022-03-21

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/ab31c7fd2d37bc3580d9d712d5f2dfb69901fca9

Thank you!

--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

2022-03-23 14:08:16

by Randy Dunlap

[permalink] [raw]
Subject: Re: [GIT PULL] scheduler updates for v5.18



On 3/22/22 08:32, Nathan Chancellor wrote:
> On Tue, Mar 22, 2022 at 08:54:53AM +0100, Ingo Molnar wrote:
>>
>> * Nathan Chancellor <[email protected]> wrote:
>>
>>> Hi Ingo,
>>>
>>> On Mon, Mar 21, 2022 at 11:54:09AM +0100, Ingo Molnar wrote:
>>>> 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>
>>>
>>> This series regresses ARCH=arm allmodconfig:
>>>
>>> $ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mrproper allmodconfig kernel/sched/
>>> In file included from kernel/sched/fair.c:52:
>>> kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
>>> 87 | # include <asm/paravirt_api_clock.h>
>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>> compilation terminated.
>>> make[3]: *** [scripts/Makefile.build:288: kernel/sched/fair.o] Error 1
>>> In file included from kernel/sched/core.c:81:
>>> kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
>>> 87 | # include <asm/paravirt_api_clock.h>
>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>> compilation terminated.
>>> make[3]: *** [scripts/Makefile.build:288: kernel/sched/core.o] Error 1
>>> In file included from kernel/sched/build_policy.c:33:
>>> kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
>>> 87 | # include <asm/paravirt_api_clock.h>
>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>> compilation terminated.
>>> make[3]: *** [scripts/Makefile.build:288: kernel/sched/build_policy.o] Error 1
>>> In file included from kernel/sched/build_utility.c:52:
>>> kernel/sched/sched.h:87:11: fatal error: asm/paravirt_api_clock.h: No such file or directory
>>> 87 | # include <asm/paravirt_api_clock.h>
>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>> compilation terminated.
>>> make[3]: *** [scripts/Makefile.build:288: kernel/sched/build_utility.o] Error 1
>>> make[3]: Target '__build' not remade because of errors.
>>> make[2]: *** [scripts/Makefile.build:550: kernel/sched] Error 2
>>>
>>> Randy Dunlap has sent a patch that fixes it, which I just reviewed:
>>>
>>> https://lore.kernel.org/r/[email protected]/
>>
>> Applied, thanks Nathan!
>>
>>> It would be nice if this could be taken with the pull (or submitted with
>>> the pull in a v2 as I see Qian's comment) to avoid regressing the build.
>>
>> Will do.
>
> Thank you a lot for the quick response and fix, I appreciate it!

and my thanks to both of you for taking care of that.

--
~Randy