Hello Paolo, On 2/6/20 2:21 PM, Paolo Abeni wrote: > On Tue, 2020-02-04 at 17:25 +0100, Ahmad Fatoum wrote: >> Hello Paolo, >> >> On 1/20/20 5:06 PM, Ahmad Fatoum wrote: >>> Hello Paolo, >>> >>> On 1/16/20 1:40 PM, Paolo Abeni wrote: >>>> I'm sorry for this trial & error experience. I tried to reproduce the >>>> issue on top of the vcan virtual device, but it looks like it requires >>>> the timing imposed by a real device, and it's missing here (TL;DR: I >>>> can't reproduce the issue locally). >>> >>> No worries. I don't mind testing. >>> >>>> Code wise, the 2nd patch closed a possible race, but it dumbly re- >>>> opened the one addressed by the first attempt - the 'empty' field must >>>> be cleared prior to the trylock operation, or we may end-up with such >>>> field set and the queue not empty. >>>> >>>> So, could you please try the following code? >>> >>> Unfortunately, I still see observe reodering. >> >> Any news? > > I'm unable to find any better solution than a revert. That will cost > some small performace regression, so I'm a bit reluctant to go ahead. > If there is agreement I can post the revert. Could you draft the revert? d518d2ed864 ("net/sched: fix race between deactivation and dequeue for NOLOCK qdisc") looks applicable even with the revert, so I don't want to inadvertently cause a regression by wrongly reverting. Cheers Ahmad > > Cheers, > > Paolo > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |