Dlaczego kolejki DMA dla TX nie można opróżnić?

1

Po prostu się zastanawiałem, od czasu do czasu otrzymuję ostrzeżenie od mojego strażnika wlan, dotyczące niektórych problemów z kolejką DMA TX

[  710.984380] ieee80211 phy0: rt2x00usb_watchdog_tx_dma: Warning - TX queue 2 DMA timed out, invoke forced forced reset
[  711.996050] ieee80211 phy0: rt2x00usb_watchdog_tx_dma: Warning - TX queue 2 DMA timed out, invoke forced forced reset

Do tej pory nie wydaje się, aby powodował jakikolwiek problem, ale jak rozumiem:

DMA oznacza bezpośredni dostęp do pamięci, więc karta musi zapisywać w pamięci kolejkę z informacjami, które mają zostać przesłane.

To ostrzeżenie mówi mi, że w pewnym momencie system musiał odrzucić tę kolejkę, aby utworzyć nową, ale nie mógł. Stąd wymuszony reset

Jak myślisz, dlaczego tak może być? Chodzi mi o to, że jeśli jest to pamięć bezpośrednia, jedynym powodem, dla którego nie mogłem jej zwolnić, jest to, że jakiś inny proces albo czytał albo zapisywał na ten sam adres.

Czy istnieje proces odczytywania tego, co mam wysłać? dlaczego? Który?

Luis Esparza LeedMx
źródło

Odpowiedzi:

0

Ostrzeżenie opisuje symptom (sterownik wykrył stan przekroczenia limitu czasu, który nie powinien się wydarzyć), ale przyczyną jest pewien błąd w zachowaniu sterownika / sprzętu i / lub interakcji czasowej, prawdopodobnie z resztą systemu operacyjnego. Musisz przeczytać kod sterownika, szczegółowo zrozumieć sprzęt i przeprowadzić poważne debugowanie, aby dowiedzieć się, co się właściwie dzieje. (Gdybyś mógł to zrobić, nie zadałbyś tego pytania).

Najlepsze, co możesz zrobić, to zgłosić błąd programistom sterowników, ale jest to prawdopodobnie trudny problem.

Warstwy sieciowe ponownie zażądają odrzucenia pakietów, więc jest mało prawdopodobne, że ten błąd coś zepsuje.

reż
źródło
Dzięki, tak, nie jestem jeszcze w stanie go rozwiązać, tylko zastanawiam się, co to znaczy i mam nadzieję, że nauczę się czegoś takiego.
Luis Esparza LeedMx