tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: f066d3699b4816fda2b6f452885b51bd22199c43 commit: 2e1dfc02d115143587ccfee1815ad295763050f2 [1812/3958] sched: Adjust wakeup cpu range according CPU util dynamicly config: x86_64-randconfig-123-20240313 (https://download.01.org/0day-ci/archive/20240313/202403132127.OaVz6UjY-lkp@i...) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240313/202403132127.OaVz6UjY-lkp@i...)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot lkp@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202403132127.OaVz6UjY-lkp@intel.com/
sparse warnings: (new ones prefixed by >>) kernel/sched/fair.c:143:14: sparse: sparse: symbol 'sysctl_overload_detect_period' was not declared. Should it be static? kernel/sched/fair.c:144:14: sparse: sparse: symbol 'sysctl_offline_wait_interval' was not declared. Should it be static?
kernel/sched/fair.c:175:5: sparse: sparse: symbol 'sysctl_sched_util_low_pct' was not declared. Should it be static?
kernel/sched/fair.c:1256:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@ kernel/sched/fair.c:1256:34: sparse: expected struct sched_entity const *se kernel/sched/fair.c:1256:34: sparse: got struct sched_entity [noderef] __rcu * kernel/sched/fair.c:3039:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu * @@ kernel/sched/fair.c:3039:13: sparse: expected struct task_struct *tsk kernel/sched/fair.c:3039:13: sparse: got struct task_struct [noderef] __rcu * kernel/sched/fair.c:12740:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:12740:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:12740:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:5891:22: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:5891:22: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:5891:22: sparse: struct task_struct * kernel/sched/fair.c:6633:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:6633:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:6633:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:7964:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:7964:20: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:7964:20: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:8258:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:8258:9: sparse: expected struct sched_domain *[assigned] tmp kernel/sched/fair.c:8258:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:8367:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:8367:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:8367:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:8587:22: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:8587:22: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:8587:22: sparse: struct task_struct * kernel/sched/fair.c:8941:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:8941:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:8941:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:9934:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@ kernel/sched/fair.c:9934:40: sparse: expected struct sched_domain *child kernel/sched/fair.c:9934:40: sparse: got struct sched_domain [noderef] __rcu *child kernel/sched/fair.c:10571:22: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:10571:22: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:10571:22: sparse: struct task_struct * kernel/sched/fair.c:12012:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:12012:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:12012:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:11669:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:11669:44: sparse: expected struct sched_domain *sd_parent kernel/sched/fair.c:11669:44: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:12108:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:12108:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:12108:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:2985:9: sparse: sparse: context imbalance in 'task_numa_placement' - different lock contexts for basic block kernel/sched/fair.c: note: in included file: kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2145:25: sparse: struct task_struct * kernel/sched/sched.h:2309:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2309:9: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2309:9: sparse: struct task_struct * kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2145:25: sparse: struct task_struct * kernel/sched/sched.h:2145:25: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:2145:25: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:2145:25: sparse: struct task_struct *
vim +/sysctl_sched_util_low_pct +175 kernel/sched/fair.c
64 65 /* 66 * The initial- and re-scaling of tunables is configurable 67 * 68 * Options are: 69 * 70 * SCHED_TUNABLESCALING_NONE - unscaled, always *1 71 * SCHED_TUNABLESCALING_LOG - scaled logarithmical, *1+ilog(ncpus) 72 * SCHED_TUNABLESCALING_LINEAR - scaled linear, *ncpus 73 * 74 * (default SCHED_TUNABLESCALING_LOG = *(1+ilog(ncpus)) 75 */
76 unsigned int sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_LOG;
77 78 /* 79 * Minimal preemption granularity for CPU-bound tasks: 80 * 81 * (default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds) 82 */ 83 unsigned int sysctl_sched_base_slice = 750000ULL; 84 static unsigned int normalized_sysctl_sched_base_slice = 750000ULL; 85 86 /* 87 * After fork, child runs first. If set to 0 (default) then 88 * parent will (try to) run first. 89 */ 90 unsigned int sysctl_sched_child_runs_first __read_mostly; 91 92 const_debug unsigned int sysctl_sched_migration_cost = 500000UL; 93 94 int sched_thermal_decay_shift; 95 static int __init setup_sched_thermal_decay_shift(char *str) 96 { 97 int _shift = 0; 98 99 if (kstrtoint(str, 0, &_shift)) 100 pr_warn("Unable to set scheduler thermal pressure decay shift parameter\n"); 101 102 sched_thermal_decay_shift = clamp(_shift, 0, 10); 103 return 1; 104 } 105 __setup("sched_thermal_decay_shift=", setup_sched_thermal_decay_shift); 106 107 #ifdef CONFIG_SMP 108 /* 109 * For asym packing, by default the lower numbered CPU has higher priority. 110 */ 111 int __weak arch_asym_cpu_priority(int cpu) 112 { 113 return -cpu; 114 } 115 116 /* 117 * The margin used when comparing utilization with CPU capacity. 118 * 119 * (default: ~20%) 120 */ 121 #define fits_capacity(cap, max) ((cap) * 1280 < (max) * 1024) 122 123 /* 124 * The margin used when comparing CPU capacities. 125 * is 'cap1' noticeably greater than 'cap2' 126 * 127 * (default: ~5%) 128 */ 129 #define capacity_greater(cap1, cap2) ((cap1) * 1024 > (cap2) * 1078) 130 #endif 131 132 #ifdef CONFIG_QOS_SCHED 133 134 /* 135 * To distinguish cfs bw, use QOS_THROTTLED mark cfs_rq->throttled 136 * when qos throttled(and cfs bw throttle mark cfs_rq->throttled as 1). 137 */ 138 #define QOS_THROTTLED 2 139 140 static DEFINE_PER_CPU_SHARED_ALIGNED(struct list_head, qos_throttled_cfs_rq); 141 static DEFINE_PER_CPU_SHARED_ALIGNED(struct hrtimer, qos_overload_timer); 142 static DEFINE_PER_CPU(int, qos_cpu_overload); 143 unsigned int sysctl_overload_detect_period = 5000; /* in ms */ 144 unsigned int sysctl_offline_wait_interval = 100; /* in ms */ 145 static int one_thousand = 1000; 146 static int hundred_thousand = 100000; 147 static int unthrottle_qos_cfs_rqs(int cpu); 148 #endif 149 150 #ifdef CONFIG_CFS_BANDWIDTH 151 /* 152 * Amount of runtime to allocate from global (tg) to local (per-cfs_rq) pool 153 * each time a cfs_rq requests quota. 154 * 155 * Note: in the case that the slice exceeds the runtime remaining (either due 156 * to consumption or the quota being specified to be smaller than the slice) 157 * we will always only issue the remaining available time. 158 * 159 * (default: 5 msec, units: microseconds) 160 */ 161 static unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL; 162 #endif 163 164 #ifdef CONFIG_NUMA_BALANCING 165 /* Restrict the NUMA promotion throughput (MB/s) for each target node. */ 166 static unsigned int sysctl_numa_balancing_promote_rate_limit = 65536; 167 #endif 168 169 #ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY 170 /* 171 * Low utilization threshold for CPU 172 * 173 * (default: 85%), units: percentage of CPU utilization) 174 */
175 int sysctl_sched_util_low_pct = 85;
176 #endif 177