Summary: | [ath] ath_edma_rxbuf_alloc()/ath_edma_rxfifo_alloc() causes system lockup when RX buffers are exausted | ||
---|---|---|---|
Product: | Base System | Reporter: | Glen Barber <gjb> |
Component: | kern | Assignee: | freebsd-wireless (Nobody) <wireless> |
Status: | New --- | ||
Severity: | Affects Only Me | CC: | adrian |
Priority: | --- | ||
Version: | CURRENT | ||
Hardware: | Any | ||
OS: | Any |
Description
Glen Barber
2015-03-05 02:47:23 UTC
Which laptop hardware is this? I don't know why it's locking up your system - maybe this condition is causing an interrupt storm from ath(4) and I'm not handling it right. The EDMA NICs try to be smart, and I'm tempted to rip out the smart bits and replace it with not-smart bits: * the interrupt handler pulls out completed descriptors, pushes in fresh ones, and puts the completed descriptors into a pending queue * .. and then schedules a taskqueue. * Then when the RX taskqueue runs, it handles RX of each packet and returns now-free descriptors to the hardware. It's possible that something is making that taskqueue not run and the RX path runs out of descriptors. Now, as to why .. hm. I'd like to figure that out. |