Subject: Re: [PATCH net-next 5/5] Revert: "net: sched: put back q.qlen into a single location"

From: kbuild test robot <[email-masked]>
Date: Tue, 9 Apr 2019 17:51:07 +0800

Hi Paolo,

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/Paolo-Abeni/net-caif-avoid-using-qdisc_qlen/20190409-164620
config: i386-randconfig-x077-201914 (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=i386 

All errors (new ones prefixed by >>):

   In file included from include/linux/filter.h:24:0,
                    from include/net/sock.h:64,
                    from include/net/cls_cgroup.h:19,
                    from net/socket.c:99:
   include/net/sch_generic.h: In function 'qdisc_all_tx_empty':
   include/net/sch_generic.h:748:8: error: implicit declaration of function 'qdisc_is_empty'; did you mean 'ida_is_empty'? [-Werror=implicit-function-declaration]
      if (!qdisc_is_empty(q)) {
           ^~~~~~~~~~~~~~
           ida_is_empty
   include/net/sch_generic.h: At top level:
   include/net/sch_generic.h:823:20: error: conflicting types for 'qdisc_is_empty'
    static inline bool qdisc_is_empty(const struct Qdisc *qdisc)
                       ^~~~~~~~~~~~~~
   include/net/sch_generic.h:748:8: note: previous implicit declaration of 'qdisc_is_empty' was here
      if (!qdisc_is_empty(q)) {
           ^~~~~~~~~~~~~~
   include/net/sch_generic.h: In function 'qdisc_dequeue_peeked':
>> include/net/sch_generic.h:1149:4: error: implicit declaration of function 'qdisc_qstats_atomic_qlen_dec'; did you mean 'qdisc_qstats_cpu_qlen_dec'? [-Werror=implicit-function-declaration]
       qdisc_qstats_atomic_qlen_dec(sch);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
       qdisc_qstats_cpu_qlen_dec
   cc1: some warnings being treated as errors
--
   In file included from include/linux/filter.h:24:0,
                    from include/net/sock.h:64,
                    from include/net/inet_sock.h:26,
                    from include/net/inet_connection_sock.h:24,
                    from include/linux/dccp.h:13,
                    from net//dccp/proto.c:12:
   include/net/sch_generic.h: In function 'qdisc_all_tx_empty':
   include/net/sch_generic.h:748:8: error: implicit declaration of function 'qdisc_is_empty'; did you mean 'ida_is_empty'? [-Werror=implicit-function-declaration]
      if (!qdisc_is_empty(q)) {
           ^~~~~~~~~~~~~~
           ida_is_empty
   include/net/sch_generic.h: At top level:
   include/net/sch_generic.h:823:20: error: conflicting types for 'qdisc_is_empty'
    static inline bool qdisc_is_empty(const struct Qdisc *qdisc)
                       ^~~~~~~~~~~~~~
   include/net/sch_generic.h:748:8: note: previous implicit declaration of 'qdisc_is_empty' was here
      if (!qdisc_is_empty(q)) {
           ^~~~~~~~~~~~~~
   include/net/sch_generic.h: In function 'qdisc_dequeue_peeked':
>> include/net/sch_generic.h:1149:4: error: implicit declaration of function 'qdisc_qstats_atomic_qlen_dec'; did you mean 'qdisc_qstats_cpu_qlen_dec'? [-Werror=implicit-function-declaration]
       qdisc_qstats_atomic_qlen_dec(sch);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
       qdisc_qstats_cpu_qlen_dec
   In file included from net//dccp/trace.h:84:0,
                    from net//dccp/proto.c:42:
   include/trace/define_trace.h: At top level:
   include/trace/define_trace.h:89:42: fatal error: ./trace.h: No such file or directory
    #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
                                             ^
   cc1: some warnings being treated as errors
   compilation terminated.

vim +1149 include/net/sch_generic.h

fa70e3d2 Paolo Abeni     2019-04-08  1139  
77be155c Jarek Poplawski 2008-10-31  1140  /* use instead of qdisc->dequeue() for all qdiscs queried with ->peek() */
77be155c Jarek Poplawski 2008-10-31  1141  static inline struct sk_buff *qdisc_dequeue_peeked(struct Qdisc *sch)
77be155c Jarek Poplawski 2008-10-31  1142  {
a53851e2 John Fastabend  2017-12-07  1143  	struct sk_buff *skb = skb_peek(&sch->gso_skb);
77be155c Jarek Poplawski 2008-10-31  1144  
61c9eaf9 Jarek Poplawski 2008-11-05  1145  	if (skb) {
a53851e2 John Fastabend  2017-12-07  1146  		skb = __skb_dequeue(&sch->gso_skb);
9cda4ff7 Paolo Abeni     2019-04-08  1147  		if (qdisc_is_percpu_stats(sch)) {
9cda4ff7 Paolo Abeni     2019-04-08  1148  			qdisc_qstats_cpu_backlog_dec(sch, skb);
9cda4ff7 Paolo Abeni     2019-04-08 @1149  			qdisc_qstats_atomic_qlen_dec(sch);
9cda4ff7 Paolo Abeni     2019-04-08  1150  		} else {
a27758ff WANG Cong       2016-06-03  1151  			qdisc_qstats_backlog_dec(sch, skb);
61c9eaf9 Jarek Poplawski 2008-11-05  1152  			sch->q.qlen--;
9cda4ff7 Paolo Abeni     2019-04-08  1153  		}
61c9eaf9 Jarek Poplawski 2008-11-05  1154  	} else {
77be155c Jarek Poplawski 2008-10-31  1155  		skb = sch->dequeue(sch);
61c9eaf9 Jarek Poplawski 2008-11-05  1156  	}
77be155c Jarek Poplawski 2008-10-31  1157  
77be155c Jarek Poplawski 2008-10-31  1158  	return skb;
77be155c Jarek Poplawski 2008-10-31  1159  }
77be155c Jarek Poplawski 2008-10-31  1160  

:::::: The code at line 1149 was first introduced by commit
:::::: 9cda4ff7ed51bb469cb19e03c9fe4972408edb63 net: sched: always do stats accounting according to TCQ_F_CPUSTATS

:::::: TO: Paolo Abeni <[email-masked]>
:::::: CC: 0day robot <[email-masked]>

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