все. Я застрял в следующем вопросе.Напишите кэшированную страницу, прежде чем она будет исправлена
Я работаю над гибридной системой хранения, которая использует SSD в качестве уровня кэша для жесткого диска. С этой целью данные, считываемые с жесткого диска, должны быть записаны в ssd для ускорения последующих чтений этих данных. Поскольку Linux кэширует данные, считываемые с диска в кеше страницы, запись данных в ssd может быть отложена; однако страницы, кэширующие данные, могут быть освобождены, а доступ к освобожденным страницам не рекомендуется. Вот вопрос: у меня есть указатели «struct page», указывающие на страницы, которые будут записаны в ssd. Есть ли способ определить, является ли страница, представленная указателем, действительной или нет (допустимо я имею в виду, что кэшированная страница может быть безопасно записана в ssd? Что произойдет, если доступ к свободной странице осуществляется с помощью указателя? освобожденная страница тот же, что перед освобождением?
Большое спасибо за ваш ответ. В действительности моя реализация основана на flashcache, который служит аналогичной цели для Bcache. Ниже приводится более конкретное выражение моего вопроса: – user2813839
Для написания каждой чистой страницы есть соответствующая структура BIO. Тем не менее, я хочу отложить представление BIO, ожидая его в очереди. Мои вопросы: 1) Может ли страница быть изменена и, таким образом, загрязниться, когда BIO находится в очереди? 2) Записывает ли запись только измененную часть страницы на диск или всю страницу? 3) Если страница чиста во время ее нахождения в очереди, можно ли освободить страницу? @lsk – user2813839