очистить кеш Core Duo перед перезагрузкой? - PullRequest
0 голосов
/ 03 декабря 2010

предположим, что я пишу в ОЗУ в системе Core Duo через кэш L1 / L2.

Предположим, я собираюсь написать в постоянное место в ОЗУ и вскоре запаниковать ядру Linux. Расположение является постоянным, что означает, что оно не будет повторно инициировано во время перезагрузки ЦП и будет выбрано после перезагрузки.

Будет ли Linux очищать кэш процессора в процессе перезагрузки / паники?

Будет ли процессор очищать кэш перед перезагрузкой?

Или я должен сделать это вручную? Как?

Обновление: мой кэш не доступен для записи.

Вопрос в том, определяет ли спецификация CPU это поведение?

Ответы [ 3 ]

1 голос
/ 03 декабря 2010

Вероятно, наиболее подходящий способ сделать это - пометить страницу, содержащую постоянные местоположения, как не кэшируемые. Таким образом, запись в постоянное расположение (я) всегда обходило бы кеш (эффективная сквозная запись). Конечно, может случиться так, что ваш кеш в любом случае является сквозным, так что это может быть избыточно - вы должны сначала проверить это.

0 голосов
/ 03 декабря 2010

Полагаю, это может пригодиться :) http://lxr.linux.no/#linux+v2.6.30/arch/x86/kernel/reboot.c

0 голосов
/ 03 декабря 2010

Кэш может не очищаться, потому что пользователю, инженеру системы или специалисту по технической поддержке может потребоваться запуск диагностики системы или отладчика для диагностики и выгрузки состояния компьютера. Кэш может быть очищен при запуске или нет, и это зависит от типа и версии операционной системы, языка программирования и приложения, используемого на мероприятии. Это может быть выбираемый параметр (из любого BIOS) во время запуска, но он, вероятно, будет инициализирован при включении питания, но не обязательно при горячем перезапуске, если он доступен.

...