Hi Olga, Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Olga-Albisser/sched-add-dualpi2-scheduler-module/20190325-113536 config: x86_64-allmodconfig (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): net//sched/sch_dualpi2.c: In function 'calculate_probability': >> net//sched/sch_dualpi2.c:409:12: error: implicit declaration of function >> 'ktime_get_mono_fast_us'; did you mean 'ktime_get_mono_fast_ns'? >> [-Werror=implicit-function-declaration] u64 now = ktime_get_mono_fast_us(); ^~~~~~~~~~~~~~~~~~~~~~ ktime_get_mono_fast_ns >> net//sched/sch_dualpi2.c:416:21: error: implicit declaration of function >> 'qdelay_in_psched' [-Werror=implicit-function-declaration] q->vars.qdelay_l = qdelay_in_psched(q->l_queue, now); ^~~~~~~~~~~~~~~~ >> net//sched/sch_dualpi2.c:419:6: error: 'qdelay_l' undeclared (first use in >> this function); did you mean 'qdelay'? if (qdelay_l > qdelay) ^~~~~~~~ qdelay net//sched/sch_dualpi2.c:419:6: note: each undeclared identifier is reported only once for each function it appears in cc1: some warnings being treated as errors sparse warnings: (new ones prefixed by >>) net/sched/sch_dualpi2.c:409:19: sparse: undefined identifier 'ktime_get_mono_fast_us' net/sched/sch_dualpi2.c:416:28: sparse: undefined identifier 'qdelay_in_psched' net/sched/sch_dualpi2.c:417:28: sparse: undefined identifier 'qdelay_in_psched' net/sched/sch_dualpi2.c:419:13: sparse: undefined identifier 'qdelay_l' net/sched/sch_dualpi2.c:420:26: sparse: undefined identifier 'qdelay_l' >> net/sched/sch_dualpi2.c:409:41: sparse: call with no type! net/sched/sch_dualpi2.c:416:44: sparse: call with no type! net/sched/sch_dualpi2.c:417:44: sparse: call with no type! vim +409 net//sched/sch_dualpi2.c 405 406 static void calculate_probability(struct Qdisc *sch) 407 { 408 struct dualpi2_sched_data *q = qdisc_priv(sch); > 409 u64 now = ktime_get_mono_fast_us(); 410 psched_time_t qdelay_old; 411 psched_time_t qdelay; 412 u32 oldprob; 413 s64 delta; /* determines the change in probability */ 414 415 qdelay_old = max(q->vars.qdelay_c, q->vars.qdelay_l); > 416 q->vars.qdelay_l = qdelay_in_psched(q->l_queue, now); 417 q->vars.qdelay_c = qdelay_in_psched(sch, now); 418 > 419 if (qdelay_l > qdelay) 420 qdelay = qdelay_l; 421 qdelay = max(q->vars.qdelay_c, q->vars.qdelay_l); 422 423 delta = (s64)((qdelay - q->params.target)) * q->vars.alpha; 424 delta += (s64)((qdelay - qdelay_old)) * q->vars.beta; 425 426 oldprob = q->vars.prob; 427 428 q->vars.prob += delta; 429 430 if (delta > 0) { 431 /* prevent overflow */ 432 if (q->vars.prob < oldprob) 433 q->vars.prob = MAX_PROB; 434 } else { 435 /* prevent underflow */ 436 if (q->vars.prob > oldprob) 437 q->vars.prob = 0; 438 } 439 440 /* if no switchover to drop configured, align maximum drop probability 441 * with 100% L4S marking 442 */ 443 if (!q->params.l_drop && (q->vars.prob > MAX_PROB / q->params.k)) 444 q->vars.prob = MAX_PROB / q->params.k; 445 } 446 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip