From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753410AbdBHQIt (ORCPT ); Wed, 8 Feb 2017 11:08:49 -0500 Received: from mga09.intel.com ([134.134.136.24]:46467 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753221AbdBHQIq (ORCPT ); Wed, 8 Feb 2017 11:08:46 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,348,1477983600"; d="gz'50?scan'50,208,50";a="1123822764" Date: Thu, 9 Feb 2017 00:07:54 +0800 From: kbuild test robot To: Matt Fleming Cc: kbuild-all@01.org, Peter Zijlstra , Ingo Molnar , linux-kernel@vger.kernel.org, Matt Fleming , Mike Galbraith , Morten Rasmussen , stable@vger.kernel.org, Vincent Guittot Subject: Re: [PATCH] sched/loadavg: Avoid loadavg spikes caused by delayed NO_HZ accounting Message-ID: <201702090015.H7koUGgw%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="X1bOJ3K7DJ5YkBrT" Content-Disposition: inline In-Reply-To: <20170208132924.3038-1-matt@codeblueprint.co.uk> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: fengguang.wu@intel.com X-SA-Exim-Scanned: No (on bee); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --X1bOJ3K7DJ5YkBrT Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Matt, [auto build test ERROR on tip/sched/core] [also build test ERROR on v4.10-rc7 next-20170208] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Matt-Fleming/sched-loadavg-Avoid-loadavg-spikes-caused-by-delayed-NO_HZ-accounting/20170208-224135 config: i386-randconfig-x003-201706 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): kernel/sched/loadavg.c: In function 'calc_load_exit_idle': >> kernel/sched/loadavg.c:404:0: error: unterminated argument list invoking macro "if" } >> kernel/sched/loadavg.c:220:2: error: expected '(' at end of input if (time_in_range_open(jiffies, next_window, next_window + 10) ^~ >> kernel/sched/loadavg.c:220:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation] kernel/sched/loadavg.c:404:0: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if' } >> kernel/sched/loadavg.c:220:2: error: expected declaration or statement at end of input if (time_in_range_open(jiffies, next_window, next_window + 10) ^~ At top level: kernel/sched/loadavg.c:100:1: warning: 'calc_load' defined but not used [-Wunused-function] calc_load(unsigned long load, unsigned long exp, unsigned long active) ^~~~~~~~~ vim +/if +404 kernel/sched/loadavg.c 5ee9e5df kernel/sched/loadavg.c Matt Fleming 2017-02-08 214 * 5ee9e5df kernel/sched/loadavg.c Matt Fleming 2017-02-08 215 * The next window is 'calc_load_update' if we haven't reached it yet, 5ee9e5df kernel/sched/loadavg.c Matt Fleming 2017-02-08 216 * and 'calc_load_update + 10' if we're inside the current window. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 217 */ 5ee9e5df kernel/sched/loadavg.c Matt Fleming 2017-02-08 218 next_window = calc_load_update; 5ee9e5df kernel/sched/loadavg.c Matt Fleming 2017-02-08 219 5ee9e5df kernel/sched/loadavg.c Matt Fleming 2017-02-08 @220 if (time_in_range_open(jiffies, next_window, next_window + 10) 5ee9e5df kernel/sched/loadavg.c Matt Fleming 2017-02-08 221 next_window += LOAD_FREQ; 5ee9e5df kernel/sched/loadavg.c Matt Fleming 2017-02-08 222 5ee9e5df kernel/sched/loadavg.c Matt Fleming 2017-02-08 223 this_rq->calc_load_update = next_window; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 224 } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 225 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 226 static long calc_load_fold_idle(void) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 227 { 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 228 int idx = calc_load_read_idx(); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 229 long delta = 0; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 230 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 231 if (atomic_long_read(&calc_load_idle[idx])) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 232 delta = atomic_long_xchg(&calc_load_idle[idx], 0); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 233 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 234 return delta; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 235 } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 236 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 237 /** 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 238 * fixed_power_int - compute: x^n, in O(log n) time 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 239 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 240 * @x: base of the power 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 241 * @frac_bits: fractional bits of @x 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 242 * @n: power to raise @x to. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 243 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 244 * By exploiting the relation between the definition of the natural power 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 245 * function: x^n := x*x*...*x (x multiplied by itself for n times), and 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 246 * the binary encoding of numbers used by computers: n := \Sum n_i * 2^i, 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 247 * (where: n_i \elem {0, 1}, the binary vector representing n), 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 248 * we find: x^n := x^(\Sum n_i * 2^i) := \Prod x^(n_i * 2^i), which is 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 249 * of course trivially computable in O(log_2 n), the length of our binary 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 250 * vector. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 251 */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 252 static unsigned long 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 253 fixed_power_int(unsigned long x, unsigned int frac_bits, unsigned int n) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 254 { 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 255 unsigned long result = 1UL << frac_bits; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 256 3289bdb4 kernel/sched/loadavg.c Peter Zijlstra 2015-04-14 257 if (n) { 3289bdb4 kernel/sched/loadavg.c Peter Zijlstra 2015-04-14 258 for (;;) { 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 259 if (n & 1) { 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 260 result *= x; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 261 result += 1UL << (frac_bits - 1); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 262 result >>= frac_bits; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 263 } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 264 n >>= 1; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 265 if (!n) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 266 break; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 267 x *= x; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 268 x += 1UL << (frac_bits - 1); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 269 x >>= frac_bits; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 270 } 3289bdb4 kernel/sched/loadavg.c Peter Zijlstra 2015-04-14 271 } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 272 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 273 return result; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 274 } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 275 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 276 /* 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 277 * a1 = a0 * e + a * (1 - e) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 278 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 279 * a2 = a1 * e + a * (1 - e) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 280 * = (a0 * e + a * (1 - e)) * e + a * (1 - e) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 281 * = a0 * e^2 + a * (1 - e) * (1 + e) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 282 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 283 * a3 = a2 * e + a * (1 - e) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 284 * = (a0 * e^2 + a * (1 - e) * (1 + e)) * e + a * (1 - e) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 285 * = a0 * e^3 + a * (1 - e) * (1 + e + e^2) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 286 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 287 * ... 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 288 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 289 * an = a0 * e^n + a * (1 - e) * (1 + e + ... + e^n-1) [1] 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 290 * = a0 * e^n + a * (1 - e) * (1 - e^n)/(1 - e) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 291 * = a0 * e^n + a * (1 - e^n) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 292 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 293 * [1] application of the geometric series: 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 294 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 295 * n 1 - x^(n+1) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 296 * S_n := \Sum x^i = ------------- 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 297 * i=0 1 - x 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 298 */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 299 static unsigned long 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 300 calc_load_n(unsigned long load, unsigned long exp, 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 301 unsigned long active, unsigned int n) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 302 { 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 303 return calc_load(load, fixed_power_int(exp, FSHIFT, n), active); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 304 } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 305 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 306 /* 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 307 * NO_HZ can leave us missing all per-cpu ticks calling 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 308 * calc_load_account_active(), but since an idle CPU folds its delta into 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 309 * calc_load_tasks_idle per calc_load_account_idle(), all we need to do is fold 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 310 * in the pending idle delta if our idle period crossed a load cycle boundary. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 311 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 312 * Once we've updated the global active value, we need to apply the exponential 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 313 * weights adjusted to the number of cycles missed. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 314 */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 315 static void calc_global_nohz(void) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 316 { 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 317 long delta, active, n; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 318 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 319 if (!time_before(jiffies, calc_load_update + 10)) { 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 320 /* 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 321 * Catch-up, fold however many we are behind still 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 322 */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 323 delta = jiffies - calc_load_update - 10; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 324 n = 1 + (delta / LOAD_FREQ); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 325 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 326 active = atomic_long_read(&calc_load_tasks); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 327 active = active > 0 ? active * FIXED_1 : 0; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 328 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 329 avenrun[0] = calc_load_n(avenrun[0], EXP_1, active, n); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 330 avenrun[1] = calc_load_n(avenrun[1], EXP_5, active, n); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 331 avenrun[2] = calc_load_n(avenrun[2], EXP_15, active, n); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 332 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 333 calc_load_update += n * LOAD_FREQ; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 334 } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 335 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 336 /* 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 337 * Flip the idle index... 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 338 * 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 339 * Make sure we first write the new time then flip the index, so that 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 340 * calc_load_write_idx() will see the new time when it reads the new 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 341 * index, this avoids a double flip messing things up. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 342 */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 343 smp_wmb(); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 344 calc_load_idx++; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 345 } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 346 #else /* !CONFIG_NO_HZ_COMMON */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 347 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 348 static inline long calc_load_fold_idle(void) { return 0; } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 349 static inline void calc_global_nohz(void) { } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 350 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 351 #endif /* CONFIG_NO_HZ_COMMON */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 352 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 353 /* 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 354 * calc_load - update the avenrun load estimates 10 ticks after the 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 355 * CPUs have updated calc_load_tasks. 3289bdb4 kernel/sched/loadavg.c Peter Zijlstra 2015-04-14 356 * 3289bdb4 kernel/sched/loadavg.c Peter Zijlstra 2015-04-14 357 * Called from the global timer code. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 358 */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 359 void calc_global_load(unsigned long ticks) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 360 { 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 361 long active, delta; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 362 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 363 if (time_before(jiffies, calc_load_update + 10)) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 364 return; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 365 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 366 /* 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 367 * Fold the 'old' idle-delta to include all NO_HZ cpus. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 368 */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 369 delta = calc_load_fold_idle(); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 370 if (delta) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 371 atomic_long_add(delta, &calc_load_tasks); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 372 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 373 active = atomic_long_read(&calc_load_tasks); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 374 active = active > 0 ? active * FIXED_1 : 0; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 375 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 376 avenrun[0] = calc_load(avenrun[0], EXP_1, active); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 377 avenrun[1] = calc_load(avenrun[1], EXP_5, active); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 378 avenrun[2] = calc_load(avenrun[2], EXP_15, active); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 379 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 380 calc_load_update += LOAD_FREQ; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 381 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 382 /* 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 383 * In case we idled for multiple LOAD_FREQ intervals, catch up in bulk. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 384 */ 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 385 calc_global_nohz(); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 386 } 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 387 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 388 /* 3289bdb4 kernel/sched/loadavg.c Peter Zijlstra 2015-04-14 389 * Called from scheduler_tick() to periodically update this CPU's 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 390 * active count. 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 391 */ 3289bdb4 kernel/sched/loadavg.c Peter Zijlstra 2015-04-14 392 void calc_global_load_tick(struct rq *this_rq) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 393 { 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 394 long delta; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 395 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 396 if (time_before(jiffies, this_rq->calc_load_update)) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 397 return; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 398 d60585c5 kernel/sched/loadavg.c Thomas Gleixner 2016-07-12 399 delta = calc_load_fold_active(this_rq, 0); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 400 if (delta) 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 401 atomic_long_add(delta, &calc_load_tasks); 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 402 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 403 this_rq->calc_load_update += LOAD_FREQ; 45ceebf7 kernel/sched/proc.c Paul Gortmaker 2013-04-19 @404 } :::::: The code at line 404 was first introduced by commit :::::: 45ceebf77653975815d82fcf7cec0a164215ae11 sched: Factor out load calculation code from sched/core.c --> sched/proc.c :::::: TO: Paul Gortmaker :::::: CC: Ingo Molnar --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --X1bOJ3K7DJ5YkBrT Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --X1bOJ3K7DJ5YkBrT--