On 2019-08-21 10:47, Stanislaw Gruszka wrote:
> On Tue, Aug 20, 2019 at 01:24:39PM +0200, Stanislaw Gruszka wrote:
>> > Can you test if disabling hw encryption only for shared or only for
>> > pairwise keys makes any difference?
>> 
>> Disabling only pairwise keys helps. Disabling only shared keys does
>> not help.
>> 
>> Not sure if this will be helpful information or make things more
>> confusing, but seems the difference between mt76_txq_schedule()
>> and tasklet_schedule() in mt76_wake_tx_queue() is that on 
>> mt76_txq_schedule() some tx packets are serialized by dev->rx_lock
>> (because some ARP and TCP packets are sent via network stack as response
>> of incoming packet within ieee80211_rx_napi() call). Removing
>> spin_lock(&dev->rx_lock) in mt76_rx_complete() make the problem
>> reproducible again with mt76_txq_schedule() & HW encryption.
> 
> So, I think this is FW/HW issue related with encryption and ordering
> and we should apply patch originally posted in this thread that
> disable HW encryption for MT7630E.
> 
> I do not think we should disable HW encryption only for pairwise keys,
> because FW/HW can have the same bug for shared keys, but is not
> triggered in my test, as we do not sent lot of group frames.
I'm still not convinced that this is just the hardware implementation of
hw crypto being faulty. I think it's more likely that there's a bug in
the tx path somewhere, which causes hangs on MT7630E but remains hidden
(or at least recoverable) on other devices.
I'm currently reviewing key handling in the mac80211 fast-xmit codepath
and get the feeling that something might be racy there.
I will let you know when I make some progress with that review.
If we can't find the bug soon, then I'm fine with merging this patch.
Right now, I would like to see first if we can fix it properly.

- Felix

Reply via email to