Не делайте этого!
В режиме ядра FPU отключен по нескольким причинам:
- Он позволяет Linux работать в архитектурах, которые не имеют FPU
- Он не позволяет сохранять и восстанавливать весь набор регистров каждый переход ядра / пользователя-пространства (это может удвоить время переключения контекста)
- В основном все функции ядра используют целые числа для представления десятичных чисел -> вам, вероятно, не нужна плавающая точка
- В Linux преемственность отключается, когда пространство ядра работает в режиме FPU
- Число плавающей запятой является злым и могут создавать очень плохое неожиданное поведение
Если вы действительно хотите использовать номера FP (и не должны), вы должны использовать kernel_fpu_begin
и kernel_fpu_end
примитивы, чтобы избежать разбиения регистров пользовательского пространства, и вы должны учитывать все возможные проблемы (включая безопасность) при работе с номерами FP.
задан Vlad Zhbankov 17 January 2019 в 08:11
поделиться