В обработчике сигналов Linux расширенное состояние x86 всегда будет в формате XSAVE или оно также может быть в формате XLinux

Гость
В обработчике сигналов Linux расширенное состояние x86 всегда будет в формате XSAVE или оно также может быть в формате X

Сообщение Гость »

На x86-64, когда происходит сбой программы пользовательского режима Linux, но для этого сбоя имеется обработчик сигнала, всегда ли расширенное состояние AVX сохраняется в стек в формате XSAVE или это может быть в XSAVEC («сжатый») формат?
Мне интересно, чтобы я мог получить доступ к сохраненному контексту AVX в своем обработчике сигналов.
В частности, член ucontext_t fpregs указывает на структуру, содержащую состояние FXSAVE с плавающей запятой + SSE. _libc_fpstate содержит _fpx_sw_bytes, наложенный на &__glibc_reserved1[12]. Он содержит магическое значение FP_XSTATE_MAGIC1, обозначающее наличие контекста XSTATE (AVX и т. д.).
Однако, чтобы добраться до части контекста, содержащей, например, старшие половины регистров ymm, похоже, вам нужно использовать подфункцию CPUID 0x0D, чтобы получить смещение для этой конкретной функции XSTATE. Если ядро ​​Linux записывает кадр сигнала пользовательского режима, используя XSAVEC вместо XSAVE, это будет означать, что алгоритм определения смещения другой.
Do Мне нужна поддержка форматов XSAVE и XSAVEC для поиска контекста AVX в замороженном контексте?

Подробнее здесь: https://stackoverflow.com/questions/782 ... -format-or

Вернуться в «Linux»