Что означает код возврата ядра macOS 27 (KERN_POLICY_LIMIT)?

 
Также может означать:
КонстантаТипОС
ERROR_SECTOR_NOT_FOUNDОшибка WindowsWindows
ippStsOverlongStringСтатус Intel IPPЛюбая
EFBIGerrnoЛюбая
PFN_SHARE_COUNTКод BSODWindows
Предыдущий Следующий
KERN_INVALID_PROCESSOR_SET KERN_INVALID_POLICY

KERN_POLICY_LIMIT

Ограничение допустимого запроса планирования

KERN_POLICY_LIMIT — значение Mach kern_return_t, используемое интерфейсами политик планировщика. Оно означает, что запрошенные атрибуты планирования выходят за пределы, допустимые для целевого потока. Запрос политики может быть структурно правильным, но при этом требовать больше, чем разрешено предоставить данному потоку.

Это особенно актуально для кода, использующего thread_policy_set или связанный интерфейс Mach. Такой вызов задаёт целевой поток, разновидность политики, структуру данных политики и количество, выраженное в единицах integer_t. Например, THREAD_TIME_CONSTRAINT_POLICY передаёт период, время вычисления, ограничение и флаг возможности вытеснения; временные поля задаются значениями абсолютного времени Mach.

Отличия от соседних результатов

СтатусДиагностическое значение
KERN_POLICY_LIMITВыбранные атрибуты превышают применимое ограничение целевого потока.
KERN_INVALID_POLICYЗапрошенная политика не включена или не может использоваться в текущем контексте.
KERN_INVALID_ARGUMENTАргумент, разновидность политики, размер структуры или переданное значение недопустимы для вызова.
KERN_POLICY_STATICПараметры политики целевого потока в этот момент нельзя изменить.

Не сводите этот статус к общей фразе «слишком высокий приоритет». Полезными доказательствами являются полный запрос политики и идентификатор целевого потока, поскольку применимое ограничение относится к конкретному контексту планировщика, а не к одному глобальному числу.

Что записать до изменения запроса

  • Зафиксируйте точную процедуру Mach, разновидность политики, порт целевого потока и каждое поле структуры политики.
  • Для запроса с временными ограничениями сохраняйте period, computation и constraint вместе. Определение XNU требует, чтобы ограничение было не меньше времени вычисления, однако само выполнение этого соотношения ещё не доказывает, что запрос укладывается в разрешённые для потока пределы.
  • Проверьте, не пытается ли код применить политику реального времени там, где предполагается обычный механизм pthread или QoS. Apple документирует вызовы политик Mach для случаев, которым требуется поведение планировщика за пределами стандартного управления приоритетом POSIX.
  • После успешной повторной попытки проверьте фактически действующую политику, а не полагайтесь на предположение, что резервный путь или оболочка сохранили запрошенные атрибуты.

Ссылки


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