public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] Scheduler changes for v6.5
@ 2023-06-27 10:17 Ingo Molnar
  2023-06-27 22:26 ` pr-tracker-bot
  0 siblings, 1 reply; 2+ messages in thread
From: Ingo Molnar @ 2023-06-27 10:17 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, Peter Zijlstra, Thomas Gleixner, Borislav Petkov,
	Juri Lelli, Vincent Guittot, Dietmar Eggemann, Steven Rostedt,
	Ben Segall, Mel Gorman, Daniel Bristot de Oliveira,
	Valentin Schneider

Linus,

Please pull the latest sched/core git tree from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-core-2023-06-27

   # HEAD: ebb83d84e49b54369b0db67136a5fe1087124dcc sched/core: Avoid multiple calling update_rq_clock() in __cfsb_csd_unthrottle()

NOTE:

  When merging this tree you'll get a new conflict in 
  drivers/clocksource/hyperv_timer.c, due to overlapping changes.

  In case you want to double check your conflict resolution, our -tip CI 
  conflict resolution can be found at the e31a421069a6 merge commit in the 
  core/merge -tip branch:

      git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/merge

Scheduler changes for v6.5:

- Scheduler SMP load-balancer improvements:

    - Avoid unnecessary migrations within SMT domains on hybrid systems.

      Problem:

        On hybrid CPU systems, (processors with a mixture of higher-frequency
	SMT cores and lower-frequency non-SMT cores), under the old code
	lower-priority CPUs pulled tasks from the higher-priority cores if
	more than one SMT sibling was busy - resulting in many unnecessary
	task migrations.

      Solution:

        The new code improves the load balancer to recognize SMT cores with more
        than one busy sibling and allows lower-priority CPUs to pull tasks, which
        avoids superfluous migrations and lets lower-priority cores inspect all SMT
        siblings for the busiest queue.

    - Implement the 'runnable boosting' feature in the EAS balancer: consider CPU
      contention in frequency, EAS max util & load-balance busiest CPU selection.

      This improves CPU utilization for certain workloads, while leaves other key
      workloads unchanged.

- Scheduler infrastructure improvements:

    - Rewrite the scheduler topology setup code by consolidating it
      into the build_sched_topology() helper function and building
      it dynamically on the fly.

    - Resolve the local_clock() vs. noinstr complications by rewriting
      the code: provide separate sched_clock_noinstr() and
      local_clock_noinstr() functions to be used in instrumentation code,
      and make sure it is all instrumentation-safe.

- Fixes:

    - Fix a kthread_park() race with wait_woken()

    - Fix misc wait_task_inactive() bugs unearthed by the -rt merge:
       - Fix UP PREEMPT bug by unifying the SMP and UP implementations.
       - Fix task_struct::saved_state handling.

    - Fix various rq clock update bugs, unearthed by turning on the rq clock
      debugging code.

    - Fix the PSI WINDOW_MIN_US trigger limit, which was easy to trigger by
      creating enough cgroups, by removing the warnign and restricting
      window size triggers to PSI file write-permission or CAP_SYS_RESOURCE.

    - Propagate SMT flags in the topology when removing degenerate domain

    - Fix grub_reclaim() calculation bug in the deadline scheduler code

    - Avoid resetting the min update period when it is unnecessary, in
      psi_trigger_destroy().

    - Don't balance a task to its current running CPU in load_balance(),
      which was possible on certain NUMA topologies with overlapping
      groups.

    - Fix the sched-debug printing of rq->nr_uninterruptible

- Cleanups:

    - Address various -Wmissing-prototype warnings, as a preparation
      to (maybe) enable this warning in the future.

    - Remove unused code

    - Mark more functions __init

    - Fix shadow-variable warnings

Signed-off-by: Ingo Molnar <mingo@kernel.org>
 Thanks,

	Ingo

------------------>
Arnd Bergmann (5):
      sched: Hide unused sched_update_scaling()
      sched: Add schedule_user() declaration
      sched/fair: Hide unused init_cfs_bandwidth() stub
      sched: Make task_vruntime_update() prototype visible
      sched/fair: Move unused stub functions to header

Arve Hjønnevåg (1):
      sched/wait: Fix a kthread_park race with wait_woken()

Chen Yu (1):
      x86/sched: Add the SD_ASYM_PACKING flag to the die domain of hybrid processors

Dietmar Eggemann (2):
      sched/fair: Refactor CPU utilization functions
      sched/fair, cpufreq: Introduce 'runnable boosting'

Hao Jia (3):
      sched/core: Fixed missing rq clock update before calling set_rq_offline()
      sched/core: Avoid double calling update_rq_clock() in __balance_push_cpu_stop()
      sched/core: Avoid multiple calling update_rq_clock() in __cfsb_csd_unthrottle()

Miaohe Lin (2):
      sched/deadline: remove unused dl_bandwidth
      sched/topology: Mark set_sched_topology() __init

Peter Zijlstra (17):
      sched: Unconditionally use full-fat wait_task_inactive()
      sched: Consider task_struct::saved_state in wait_task_inactive()
      x86/sched: Rewrite topology setup
      seqlock/latch: Provide raw_read_seqcount_latch_retry()
      time/sched_clock: Provide sched_clock_noinstr()
      arm64/io: Always inline all of __raw_{read,write}[bwlq]()
      arm64/arch_timer: Provide noinstr sched_clock_read() functions
      loongarch: Provide noinstr sched_clock_read()
      s390/time: Provide sched_clock_noinstr()
      math64: Always inline u128 version of mul_u64_u64_shr()
      x86/vdso: Fix gettimeofday masking
      clocksource: hyper-v: Adjust hv_read_tsc_page_tsc() to avoid special casing U64_MAX
      clocksource: hyper-v: Provide noinstr sched_clock()
      x86/tsc: Provide sched_clock_noinstr()
      sched/clock: Provide local_clock_noinstr()
      cpuidle: Use local_clock_noinstr()
      arm64/arch_timer: Fix MMIO byteswap

Ricardo Neri (11):
      sched/fair: Move is_core_idle() out of CONFIG_NUMA
      sched/fair: Only do asym_packing load balancing from fully idle SMT cores
      sched/fair: Simplify asym_packing logic for SMT cores
      sched/fair: Let low-priority cores help high-priority busy SMT cores
      sched/fair: Keep a fully_busy SMT sched group as busiest
      sched/fair: Use the busiest group to set prefer_sibling
      sched/fair: Do not even the number of busy CPUs via asym_packing
      sched/topology: Check SDF_SHARED_CHILD in highest_flag_domain()
      sched/topology: Remove SHARED_CHILD from ASYM_PACKING
      x86/sched: Remove SD_ASYM_PACKING from the SMT domain flags
      x86/sched/itmt: Give all SMT siblings of a core the same priority

Suren Baghdasaryan (1):
      psi: remove 500ms min window size limitation for triggers

Tim C Chen (1):
      sched/topology: Propagate SMT flags when removing degenerate domain

Tom Rix (1):
      sched/fair: Rename variable cpu_util eff_util

Vineeth Pillai (2):
      sched/deadline: Fix bandwidth reclaim equation in GRUB
      sched/deadline: Update GRUB description in the documentation

Yang Yang (1):
      sched/psi: Avoid resetting the min update period when it is unnecessary

Yicong Yang (1):
      sched/fair: Don't balance task to its current running CPU

晏艳(采苓) (1):
      sched/debug: Correct printing for rq->nr_uninterruptible


 Documentation/scheduler/sched-deadline.rst |   5 +-
 arch/arm64/include/asm/arch_timer.h        |   8 +-
 arch/arm64/include/asm/io.h                |  12 +-
 arch/loongarch/include/asm/loongarch.h     |   2 +-
 arch/loongarch/kernel/time.c               |   6 +-
 arch/s390/include/asm/timex.h              |  13 +-
 arch/s390/kernel/time.c                    |   5 +
 arch/x86/include/asm/mshyperv.h            |   5 +
 arch/x86/include/asm/vdso/gettimeofday.h   |  41 +++-
 arch/x86/kernel/itmt.c                     |  23 +-
 arch/x86/kernel/kvmclock.c                 |   4 +-
 arch/x86/kernel/smpboot.c                  | 102 +++++----
 arch/x86/kernel/tsc.c                      |  38 +++-
 arch/x86/kvm/x86.c                         |   7 +-
 arch/x86/xen/time.c                        |   3 +-
 drivers/clocksource/arm_arch_timer.c       |  54 +++--
 drivers/clocksource/hyperv_timer.c         |  44 ++--
 drivers/cpuidle/cpuidle.c                  |   8 +-
 drivers/cpuidle/poll_state.c               |   4 +-
 include/clocksource/hyperv_timer.h         |  24 +--
 include/linux/kthread.h                    |   1 +
 include/linux/math64.h                     |   2 +-
 include/linux/rbtree_latch.h               |   2 +-
 include/linux/sched.h                      |   7 +-
 include/linux/sched/clock.h                |  17 +-
 include/linux/sched/sd_flags.h             |   5 +-
 include/linux/sched/topology.h             |   2 +-
 include/linux/seqlock.h                    |  15 +-
 kernel/cgroup/cgroup.c                     |  12 ++
 kernel/kthread.c                           |  10 +
 kernel/printk/printk.c                     |   2 +-
 kernel/sched/clock.c                       |  19 +-
 kernel/sched/core.c                        | 278 +++++++++++++-----------
 kernel/sched/cpufreq_schedutil.c           |   3 +-
 kernel/sched/deadline.c                    |  57 ++---
 kernel/sched/debug.c                       |   2 +-
 kernel/sched/fair.c                        | 329 ++++++++++++++++++-----------
 kernel/sched/psi.c                         |  19 +-
 kernel/sched/sched.h                       | 105 +++++----
 kernel/sched/topology.c                    |  15 +-
 kernel/sched/wait.c                        |   7 +-
 kernel/time/sched_clock.c                  |  24 ++-
 kernel/time/timekeeping.c                  |   4 +-
 43 files changed, 777 insertions(+), 568 deletions(-)

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [GIT PULL] Scheduler changes for v6.5
  2023-06-27 10:17 [GIT PULL] Scheduler changes for v6.5 Ingo Molnar
@ 2023-06-27 22:26 ` pr-tracker-bot
  0 siblings, 0 replies; 2+ messages in thread
From: pr-tracker-bot @ 2023-06-27 22:26 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Linus Torvalds, linux-kernel, Peter Zijlstra, Thomas Gleixner,
	Borislav Petkov, Juri Lelli, Vincent Guittot, Dietmar Eggemann,
	Steven Rostedt, Ben Segall, Mel Gorman,
	Daniel Bristot de Oliveira, Valentin Schneider

The pull request you sent on Tue, 27 Jun 2023 12:17:02 +0200:

> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched-core-2023-06-27

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

Thank you!

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-27 22:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-27 10:17 [GIT PULL] Scheduler changes for v6.5 Ingo Molnar
2023-06-27 22:26 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox