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

 
Также может означать:
КонстантаТипОС
ERROR_PATH_NOT_FOUNDОшибка WindowsWindows
STATUS_WAIT_3NTSTATUSWindows
ippStsSqrtNegArgСтатус Intel IPPЛюбая
ESRCHerrnoЛюбая
INVALID_AFFINITY_SETКод BSODWindows
Предыдущий Следующий
KERN_PROTECTION_FAILURE KERN_INVALID_ARGUMENT

KERN_NO_SPACE

KERN_NO_SPACE является результатом выделения виртуального адресного пространства Mach. XNU определяет его для уже занятого диапазона или запроса, для которого не удаётся найти требуемый непрерывный диапазон. Это не обязательно означает исчерпание физической оперативной памяти.

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

Что проверить

  • Требует ли вызов конкретного адреса или позволяет Mach выбрать подходящее расположение.
  • Запрошенный размер, выравнивание и необходимость размещения в одном непрерывном диапазоне.
  • Существующие отображения в целевой задаче, включая области, созданные распределителями, общими библиотеками, JIT-компиляторами и файлами, отображёнными в память.
  • Не следует ли запросить другое размещение вместо повтора того же фиксированного запроса.

Для фактической невозможности получить ресурс ядра XNU использует отдельный результат KERN_RESOURCE_SHORTAGE. Разделение этих двух случаев делает журналы значительно полезнее.

Ссылки


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