На 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 расширенное состояние x86 всегда будет в формате XSAVE или оно также может быть в формате X ⇐ Linux
1711415162
Гость
На 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 в замороженном контексте?
Подробнее здесь: [url]https://stackoverflow.com/questions/78222450/in-a-linux-signal-handler-will-x86-extended-state-always-be-in-xsave-format-or[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия