Как выполнить запись грязных строк кэша L1-L2 в ARMv8 - PullRequest
0 голосов
/ 11 сентября 2018

Я ищу способ очистить кэш L1-L2 с помощью модуля ядра. Есть ли способ полностью очистить весь кэш кластера (конфигурация с 4 ядрами) или, что еще лучше, записать грязные строки кэша в основную память?

Ответы [ 3 ]

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

Я думаю, что вы хотите взглянуть на 3.9 из «Понимание менеджера виртуальной памяти Linux» [1] от Mel Gorman. Я думаю, что вы ищете flush_cache_page (...)

[1] https://www.kernel.org/doc/gorman/

0 голосов
/ 27 ноября 2018

Что ж, похоже, что на самом деле процесс кэширования в разных архитектурах отличается. Тем не менее, я не нашел реализацию, которая работает. НО, что я сделал, чтобы найти запись таблицы страниц (PTE) конкретной страницы, которую я хочу очистить, и изменил атрибуты памяти на Non-Cacheable. Затем данные пошли прямо на DRAM. (ARMv8) Приветствия

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

Звучит странно, что вы хотите очистить кеш из модуля ядра.Это должно быть сделано частью core-kernel, и вам, как драйверу, не нужно об этом беспокоиться.

Есть ли какая-то конкретная причина, по которой вам нужно это делать в драйвере?

...