Re: [PATCH net,v2] net: sched: tbf: don't call qdisc_put() while holding tree lock

From: shaozhengchao
Date: Tue Sep 06 2022 - 21:25:15 EST




On 2022/9/6 2:13, Cong Wang wrote:
On Fri, Aug 26, 2022 at 09:39:30AM +0800, Zhengchao Shao wrote:
The issue is the same to commit c2999f7fb05b ("net: sched: multiq: don't
call qdisc_put() while holding tree lock"). Qdiscs call qdisc_put() while
holding sch tree spinlock, which results sleeping-while-atomic BUG.


Hm, did you see an actual warning here??

The commit you mentioned above is a classful Qdisc which accepts
user-specified child Qdisc, but TBF technically does not, I don't think
you can change its default fifo.

Thanks.

Hi Wang:
Thank you for your reply. My apologise. I don't see the
warning here. Yes, TBF is classless qdisc, its default fifo is
bfifo and reset or destroy process will not sleep. So, it's not
a issue. Should I revert it, or keep it in this format(qdisc_put
out of holding sch tree spinlock).


Zhengchao Shao