Hi Benjamin,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on tip/perf/core]
[also build test ERROR on v4.20-rc6 next-20181214]
[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/Benjamin-Bouvier/sched-debug-Add-tracepoint-for-RT-throttling/20181216-050740
config: x86_64-randconfig-x001-201850 (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 >>):

   In file included from include/linux/kernel.h:14:0,
                    from arch/x86/include/asm/percpu.h:45,
                    from arch/x86/include/asm/current.h:6,
                    from include/linux/sched.h:12,
                    from kernel//sched/sched.h:5,
                    from kernel//sched/rt.c:6:
   kernel//sched/rt.c: In function 'sched_rt_runtime_exceeded':
>> kernel//sched/rt.c:934:59: error: 'struct rq' has no member named 'cpu'
        rt_rq->rq->curr->pid, rt_rq->rq->curr->comm, rt_rq->rq->cpu);
                                                              ^
   include/linux/printk.h:372:26: note: in definition of macro 
'printk_deferred_once'
      printk_deferred(fmt, ##__VA_ARGS__);  \
                             ^~~~~~~~~~~
   kernel//sched/rt.c:935:56: error: 'struct rq' has no member named 'cpu'
       trace_sched_rt_throttling(rt_rq->rq->curr, rt_rq->rq->cpu);
                                                           ^~

vim +934 kernel//sched/rt.c

   907  
   908  static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)
   909  {
   910          u64 runtime = sched_rt_runtime(rt_rq);
   911  
   912          if (rt_rq->rt_throttled)
   913                  return rt_rq_throttled(rt_rq);
   914  
   915          if (runtime >= sched_rt_period(rt_rq))
   916                  return 0;
   917  
   918          balance_runtime(rt_rq);
   919          runtime = sched_rt_runtime(rt_rq);
   920          if (runtime == RUNTIME_INF)
   921                  return 0;
   922  
   923          if (rt_rq->rt_time > runtime) {
   924                  struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq);
   925  
   926                  /*
   927                   * Don't actually throttle groups that have no runtime 
assigned
   928                   * but accrue some time due to boosting.
   929                   */
   930                  if (likely(rt_b->rt_runtime)) {
   931                          rt_rq->rt_throttled = 1;
   932                          printk_deferred_once(
   933                                  "sched: RT throttling activated for 
task pid %d (%s) on cpu:%d\n",
 > 934                                  rt_rq->rq->curr->pid, 
 > rt_rq->rq->curr->comm, rt_rq->rq->cpu);
   935                          trace_sched_rt_throttling(rt_rq->rq->curr, 
rt_rq->rq->cpu);
   936                  } else {
   937                          /*
   938                           * In case we did anyway, make it go away,
   939                           * replenishment is a joke, since it will 
replenish us
   940                           * with exactly 0 ns.
   941                           */
   942                          rt_rq->rt_time = 0;
   943                  }
   944  
   945                  if (rt_rq_throttled(rt_rq)) {
   946                          sched_rt_rq_dequeue(rt_rq);
   947                          return 1;
   948                  }
   949          }
   950  
   951          return 0;
   952  }
   953  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to