Re: Panic with wifi + usb in latest FreeBSD-current

From: Adrian Chadd <adrian.chadd_at_gmail.com>
Date: Sun, 13 Sep 2020 23:30:37 -0700
On Sun, 13 Sep 2020 at 22:34, Warner Losh <imp_at_bsdimp.com> wrote:

>
>
> On Sun, Sep 13, 2020, 11:29 PM Adrian Chadd <adrian.chadd_at_gmail.com>
> wrote:
>
>> Yeah, this was also reported in #freebsd-wireless today.
>>
>> Is there a lock being held in the rtwn path that shouldn't be?
>>
>
> I'll check in the morning... this was like the 20th thing to go wrong this
> weekend,  so I copied the panic down, send the email and grabbed a beer and
> turned it off...
>

Ok. I checked the driver and the usb stack; nothing in the change lists
obviously stands out to me at 11pm on a Sunday.

Can you see if any locks are held? or an epoch? Something smells fishy.
(defining EPOCH_TRACE will dump the list of epochs, if I'm reading the
subr_sleepqueue.c code correctly.)

Ok, so, since I dug a bit more on a hunch, I bet the NET epoch is being
held - it's grabbed in rtwn_bulk_rx_callback, and rtwn_rx_common is reading
some registers as part of processing the receive queue. I bet that act of
reading registers over blocking USB is causing things to explode.

If it is net epoch then we're going to have to think of a better design
pattern here to migrate all of these here wifi drivers to, because I
guarantee you they're all behaving poorly in this newer world order.



Thanks,


-adrian




>
> panic: sleepq_add: td <hex> to sleep on wchan <hex> with sleeping
>>> prohibited
>>> cpuid = 5
>>> time = 1600057358
>>> KDB: stack backtrace:
>>> ...
>>> panic()
>>> sleepq_add()
>>> _cv_wait()
>>> usbd_do_request_flags
>>> rtwn_do_request
>>> rtwn_usb_read_4
>>> rtwn_rx_common
>>> rtwn_bulk_rx_callback
>>> usbd_callback_wrapper
>>> usb_command_wrapper
>>> usb_callback_proc
>>> usb_process
>>> ...
>>>
>>> I've done a fresh installworld and installkernel, but am running packages
>>> from late may since I've not updated them. I've updated the iichid and
>>> drm-kmod ports and rebuilt them and reinstalled them as well (so I know
>>> they aren't out of date).
>>>
>>> Has anybody else seen this?
>>>
>>> Warner
>>> _______________________________________________
>>> freebsd-current_at_freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>> To unsubscribe, send any mail to "
>>> freebsd-current-unsubscribe_at_freebsd.org"
>>>
>>
Received on Mon Sep 14 2020 - 04:30:52 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:25 UTC