Re: [PATCH v2 net] net: sch_generic: aviod concurrent reset and enqueue op for lockless qdisc

From: Vishwanath Pai
Date: Wed Oct 28 2020 - 22:00:30 EST


On 10/28/20 1:47 PM, Cong Wang wrote:
> On Wed, Oct 28, 2020 at 8:37 AM Pai, Vishwanath <vpai@xxxxxxxxxx> wrote:
>> Hi,
>>
>> We noticed some problems when testing the latest 5.4 LTS kernel and traced it
>> back to this commit using git bisect. When running our tests the machine stops
>> responding to all traffic and the only way to recover is a reboot. I do not see
>> a stack trace on the console.
>
> Do you mean the machine is still running fine just the network is down?
>
> If so, can you dump your tc config with stats when the problem is happening?
> (You can use `tc -s -d qd show ...`.)
>
>>
>> This can be reproduced using the packetdrill test below, it should be run a
>> few times or in a loop. You should hit this issue within a few tries but
>> sometimes might take up to 15-20 tries.
> ...
>> I can reproduce the issue easily on v5.4.68, and after reverting this commit it
>> does not happen anymore.
>
> This is odd. The patch in this thread touches netdev reset path, if packetdrill
> is the only thing you use to trigger the bug (that is netdev is always active),
> I can not connect them.
>
> Thanks.

Hi Cong,

> Do you mean the machine is still running fine just the network is down?

I was able to access the machine via serial console, it looks like it is
up and running, just that networking is down.

> If so, can you dump your tc config with stats when the problem is happening?
> (You can use `tc -s -d qd show ...`.)

If I try running tc when the machine is in this state the command never
returns. It doesn't print anything but doesn't exit either.

> This is odd. The patch in this thread touches netdev reset path, if packetdrill
> is the only thing you use to trigger the bug (that is netdev is always active),
> I can not connect them.

I think packetdrill creates a tun0 interface when it starts the
test and tears it down at the end, so it might be hitting this code path
during teardown.

P.S: My mail server is having connectivity issues with vger.kernel.org
so messages aren't getting delivered to netdev. It'll hopefully get
resolved soon.

Thanks,
Vishwanath