Skip to content

Commit bf57ae2

Browse files
committed
Merge tag 'sched-core-2022-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler updates from Ingo Molnar: - Implement persistent user-requested affinity: introduce affinity_context::user_mask and unconditionally preserve the user-requested CPU affinity masks, for long-lived tasks to better interact with cpusets & CPU hotplug events over longer timespans, without destroying the original affinity intent if the underlying topology changes. - Uclamp updates: fix relationship between uclamp and fits_capacity() - PSI fixes - Misc fixes & updates * tag 'sched-core-2022-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched: Clear ttwu_pending after enqueue_task() sched/psi: Use task->psi_flags to clear in CPU migration sched/psi: Stop relying on timer_pending() for poll_work rescheduling sched/psi: Fix avgs_work re-arm in psi_avgs_work() sched/psi: Fix possible missing or delayed pending event sched: Always clear user_cpus_ptr in do_set_cpus_allowed() sched: Enforce user requested affinity sched: Always preserve the user requested cpumask sched: Introduce affinity_context sched: Add __releases annotations to affine_move_task() sched/fair: Check if prev_cpu has highest spare cap in feec() sched/fair: Consider capacity inversion in util_fits_cpu() sched/fair: Detect capacity inversion sched/uclamp: Cater for uclamp in find_energy_efficient_cpu()'s early exit condition sched/uclamp: Make cpu_overutilized() use util_fits_cpu() sched/uclamp: Make asym_fits_capacity() use util_fits_cpu() sched/uclamp: Make select_idle_capacity() use util_fits_cpu() sched/uclamp: Fix fits_capacity() check in feec() sched/uclamp: Make task_fits_capacity() use util_fits_cpu() sched/uclamp: Fix relationship between uclamp and migration margin
2 parents add7695 + d6962c4 commit bf57ae2

File tree

8 files changed

+607
-183
lines changed

8 files changed

+607
-183
lines changed

include/linux/psi_types.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ enum psi_states {
7272
/* Use one bit in the state mask to track TSK_ONCPU */
7373
#define PSI_ONCPU (1 << NR_PSI_STATES)
7474

75+
/* Flag whether to re-arm avgs_work, see details in get_recent_times() */
76+
#define PSI_STATE_RESCHEDULE (1 << (NR_PSI_STATES + 1))
77+
7578
enum psi_aggregators {
7679
PSI_AVGS = 0,
7780
PSI_POLL,
@@ -177,6 +180,7 @@ struct psi_group {
177180
struct timer_list poll_timer;
178181
wait_queue_head_t poll_wait;
179182
atomic_t poll_wakeup;
183+
atomic_t poll_scheduled;
180184

181185
/* Protects data used by the monitor */
182186
struct mutex trigger_lock;

include/linux/sched.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -888,9 +888,6 @@ struct task_struct {
888888
unsigned sched_reset_on_fork:1;
889889
unsigned sched_contributes_to_load:1;
890890
unsigned sched_migrated:1;
891-
#ifdef CONFIG_PSI
892-
unsigned sched_psi_wake_requeue:1;
893-
#endif
894891

895892
/* Force alignment to the next boundary: */
896893
unsigned :0;

0 commit comments

Comments
 (0)