tree:
https://github.com/0day-ci/linux/commits/UPDATE-20210315-111255/Yunsheng-...
head: 17026ba24c376b0b696df0a97b38f7b0462bc486
commit: 17026ba24c376b0b696df0a97b38f7b0462bc486 net: sched: implement TCQ_F_CAN_BYPASS
for lockless qdisc
date: 2 hours ago
config: x86_64-randconfig-s022-20210315 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-262-g5e674421-dirty
#
https://github.com/0day-ci/linux/commit/17026ba24c376b0b696df0a97b38f7b04...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
UPDATE-20210315-111255/Yunsheng-Lin/net-sched-implement-TCQ_F_CAN_BYPASS-for-lockless-qdisc/20210313-104858
git checkout 17026ba24c376b0b696df0a97b38f7b0462bc486
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
"sparse warnings: (new ones prefixed by >>)"
net/sched/sch_generic.c:195:9: sparse: sparse: context imbalance in
'try_bulk_dequeue_skb_slow' - different lock contexts for basic block
net/sched/sch_generic.c:272:28: sparse: sparse: context imbalance in
'dequeue_skb' - different lock contexts for basic block
> net/sched/sch_generic.c:149:9: sparse: sparse: context imbalance
in 'sch_may_need_requeuing' - different lock contexts for basic block
net/sched/sch_generic.c:311:28: sparse: sparse: context imbalance in
'sch_direct_xmit' - unexpected unlock
net/sched/sch_generic.c:1170:13: sparse: sparse: context imbalance in
'dev_reset_queue' - different lock contexts for basic block
vim +/sch_may_need_requeuing +149 net/sched/sch_generic.c
70e57d5e3f8ec7 John Fastabend 2017-12-07 119
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 120 static inline void dev_requeue_skb(struct
sk_buff *skb, struct Qdisc *q)
c716a81ab946c6 Jamal Hadi Salim 2007-06-10 121 {
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 122 spinlock_t *lock = NULL;
6252352d16f7b4 Jarek Poplawski 2008-10-06 123
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 124 if (q->flags & TCQ_F_NOLOCK) {
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 125 lock = qdisc_lock(q);
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 126 spin_lock(lock);
c716a81ab946c6 Jamal Hadi Salim 2007-06-10 127 }
c716a81ab946c6 Jamal Hadi Salim 2007-06-10 128
9540d977618c31 Wei Yongjun 2017-12-27 129 while (skb) {
9540d977618c31 Wei Yongjun 2017-12-27 130 struct sk_buff *next = skb->next;
9540d977618c31 Wei Yongjun 2017-12-27 131
a53851e2c3218a John Fastabend 2017-12-07 132 __skb_queue_tail(&q->gso_skb,
skb);
a53851e2c3218a John Fastabend 2017-12-07 133
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 134 /* it's still part of the queue */
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 135 if (qdisc_is_percpu_stats(q)) {
a53851e2c3218a John Fastabend 2017-12-07 136 qdisc_qstats_cpu_requeues_inc(q);
a53851e2c3218a John Fastabend 2017-12-07 137 qdisc_qstats_cpu_backlog_inc(q, skb);
73eb628ddfd388 Paolo Abeni 2019-04-10 138 qdisc_qstats_cpu_qlen_inc(q);
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 139 } else {
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 140 q->qstats.requeues++;
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 141 qdisc_qstats_backlog_inc(q, skb);
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 142 q->q.qlen++;
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 143 }
9540d977618c31 Wei Yongjun 2017-12-27 144
9540d977618c31 Wei Yongjun 2017-12-27 145 skb = next;
9540d977618c31 Wei Yongjun 2017-12-27 146 }
9c01c9f1f2a3dd Paolo Abeni 2019-04-10 147 if (lock)
9540d977618c31 Wei Yongjun 2017-12-27 148 spin_unlock(lock);
a53851e2c3218a John Fastabend 2017-12-07 @149 __netif_schedule(q);
a53851e2c3218a John Fastabend 2017-12-07 150 }
a53851e2c3218a John Fastabend 2017-12-07 151
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org