Что означает код возврата ядра macOS 0xE000800F (kIOFireWireOutOfTLabels)?

 
Предыдущий Следующий
kIOFireWireInsufficientPower kIOFireWireBusReset

kIOFireWireOutOfTLabels

Исчерпаны идентификаторы сопоставления асинхронных запросов

kIOFireWireOutOfTLabels сообщает об исчерпании меток транзакций FireWire. Они используются для сопоставления незавершённых асинхронных запросов и ответов; это предел параллелизма запросов, а не ошибка выделения изохронного канала или полосы пропускания.

Вероятная причина — незавершённая работа, которая не была снята с учёта: задержанный ответ устройства, сброс шины, сделавший путь операции недействительным, отмена, не освободившая состояние, либо неограниченная отправка запросов вызывающей стороной. Восстановление следует начинать с поиска самых старых активных транзакций и их состояния завершения.

Измеряйте незавершённую работу

  • Отслеживайте каждый асинхронный запрос по метке транзакции, целевому узлу, поколению шины, tcode, времени отправки и состоянию завершения.
  • После сброса признавайте работу недействительной или отправляйте её повторно только по правилам восстановления API; не оставляйте потерянные метки в учёте приложения.
  • Ограничивайте окно запросов на узел или контроллер и освобождайте ёмкость только после реального завершения или подтверждённой отмены.
  • Не исправляйте это изменением распределения изохронных каналов: метки транзакций относятся к другому механизму FireWire.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.