Changes between Initial Version and Version 1 of Ticket #264, comment 5


Ignore:
Timestamp:
May 4, 2018, 11:27:35 AM (7 years ago)
Author:
alx

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #264, comment 5

    initial v1  
    33Видимо, пакеты в очередь помещались чаще, чем MSP их из очереди забирал и обрабатывал, что привело к исчерпанию пула дескрипторов. Почему это произошло, непонятно: либо CSP почему-то начал передавать очень много пакетов (чему я не вижу причин), и MSP в них "захлебнулся", либо MSP по неизвестным причинам перестал (или сильно замедлил темп) получения и обработки пакетов из очереди...
    44
    5 Далее, при невозможности поместить пакет в очередь драйвер останавливает передачу пакетов (вызывая `netif_stop_queue()`) и запускает таймер на 10 мс. По истечении таймера снова проверяется, стали ли ресурсы доступны. Если да, передача возобновляется, если нет - таймер запускается еще на 10 мс, и все повторяется. Судя по наличию множества сообщений `scheduling TX queue timer` и отсутствию сообщений `waking TX queue`, возобновление передачи пакетов не наступает никогда. Косвенно это является (как мне кажется) свидетельством того, что MSP просто прекратил брать пакеты из очереди, в результате чего очередь переполнилась и передача пакетов полностью остановилась.
     5Далее, при невозможности поместить пакет в очередь драйвер останавливает передачу пакетов (вызывая `netif_stop_queue()`) и запускает таймер на 10 мс. По истечении таймера снова проверяется, стали ли ресурсы доступны. Если да, передача возобновляется, если нет - таймер запускается еще на 10 мс, и все повторяется. Судя по наличию множества сообщений `scheduling TX queue timer` и отсутствию сообщений `waking TX queue`, возобновление передачи пакетов не наступает никогда. Косвенно это является (как мне кажется) свидетельством того, что MSP просто прекратил брать пакеты из очереди, в результате чего очередь переполнилась, и передача пакетов полностью остановилась.