Можно ли загрузить данные со страницы, не обновляя флаг «самый последний доступ»? - PullRequest
0 голосов
/ 07 сентября 2018

Я думаю о Минимизация ошибок страниц (и ошибок TLB) при «ходьбе» по большому графику

Это длинный путь, но я хочу иметь возможность загружать данные со страницы в регистр, не обновляя «самый последний флаг доступа», так как я знаю, что данные, загружаемые из моего потока, больше не будут затронуты в течение долгого времени. Поэтому я не хочу откладывать извлечение страницы из памяти, если ОС не хватает оперативной памяти.

1 Ответ

0 голосов
/ 07 сентября 2018

Насколько я понимаю, №

Это не то, что контролируется программным обеспечением, CPU при установке использует бит A структуры страницы.
К этому моменту бит A может даже вытекать из транзакции или прерывать транзакцию (если ЦПУ необходимо перевернуть бит A с 0 на 1).

Я полагаю, что вы переосмыслили это, ОС не будет полагаться только на бит A для реализации политики LRU для страниц.
Вы также можете вручную выделить страницы до запуска критического кода и освободить их после завершения.

На вашем месте я бы сосредоточился на , рассматривая с использованием prefetchnta + load, чтобы избежать слишком сильного загрязнения кэша, поскольку он намного меньше системной памяти.
Посмотрите этот хороший ответ о том, как его использовать и знать его подводные камни (это хрупкая модель).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...