История изменений
Исправление
ckotinko,
(текущая версия)
:
а вот теперь понятно что там такое произошло. спалил линус всю контору одним предложением.
A *competent* CPU engineer would fix this by making sure speculation
doesn't happen across protection domains. Maybe even a L1 I$ that is keyed by CPL.
линус в процах не понимает, но спалил знатно. а я то думал, зачем они анмапают таблицы для MMU. это же никак не связано.
короче, смотрите что происходит.
у вас есть инструкция, которую вы хотите выполнить в режиме ядра. но не можете. но вы можете сделать так, что она встанет в очередь за рядом каких нибудь долгих инструкций, а вы в это время быстро сделаете syscall. инструкция syscall изменит состояние проца, подняв CPL, а ваша инструкция еще ожидает операндов. но совсем скоро она их получит и выполнится уже с новым CPL.
Исходная версия
ckotinko,
:
а вот теперь понятно что там такое произошло. спалил линус всю контору одним предложением.
A *competent* CPU engineer would fix this by making sure speculation
doesn't happen across protection domains. Maybe even a L1 I$ that is keyed by CPL.
линус в процах не понимает, но спалил знатно. а я то думал, зачем они анмапают таблицы для MMU. это же никак не связано.
короче, смотрите что происходит.
у вас есть инструкция, которую вы хотите выполнить в режиме ядра. но не можете. но вы можете сделать так, что она встанет в очередь за рядом каких нибудь долгих инструкций, а вы в это время быстро сделаете syscall. инструкция syscall изменит состояние проца, подняв CPL, а ваша инструкция еще ожидает операндов. но совсем скоро она их получит и выполнится уже с новым CPL.