Да, при нормальных обстоятельствах страницы ядра (т. Е. Память, находящаяся в ядре для использования в ядре) не подлежат замене. Фактически, после обнаружения (см. Исходный код обработчика подкачки страницы) ядро явно аварийно завершает работу.
См. Это:
http://lxr.free -electrons.com / source / arch / x86 / mm / fault.c
и функция:
1205 /*
1206 * This routine handles page faults. It determines the address,
1207 * and the problem, and then passes it off to one of the appropriate
1208 * routines.
1209 *
1210 * This function must have noinline because both callers
1211 * {,trace_}do_page_fault() have notrace on. Having this an actual function
1212 * guarantees there's a function trace entry.
1213 */
1214 static noinline void
1215 __do_page_fault(struct pt_regs *regs, unsigned long error_code,
1216 unsigned long address)
1217 {
И обнаружение здесь:
1246 *
1247 * This verifies that the fault happens in kernel space
1248 * (error_code & 4) == 0, and that the fault was not a
1249 * protection error (error_code & 9) == 0.
1250 */
1251 if (unlikely(fault_in_kernel_space(address))) {
1252 if (!(error_code & (PF_RSVD | PF_USER | PF_PROT))) {
1253 if (vmalloc_fault(address) >= 0)
1254 return;
1255
1256 if (kmemcheck_fault(regs, address, error_code))
1257 return;
1258 }
Но тот же самый обработчик ошибок страницы - который может обнаружить сбой страницы, возникающий из несуществующей памяти пользовательского режима (все аппаратное обнаружение сбоя страницы всегда выполняется в ядре), будет явноизвлечь данные из пространства подкачки, если они существуют, или запустить процедуру выделения памяти, чтобы дать процессу больше памяти.
Хорошо, сказано, что ядро выменяет структуры ядра / память / списки задач и т. д. во время приостановки и спящего режима программного обеспечения.операция:
https://www.kernel.org/doc/Documentation/power/swsusp.txt
И на этапе возобновления он восстановит память ядра из файла подкачки.