Когда пользовательский процесс заменяет страницу, находится ли виртуальный адрес страницы в пространстве пользователя илLinux

Ответить
Anonymous
 Когда пользовательский процесс заменяет страницу, находится ли виртуальный адрес страницы в пространстве пользователя ил

Сообщение Anonymous »

Я новичок в Linux, и меня всегда смущала разница между пространством ядра и пространством пользователя.
В настоящее время я изучаю управление памятью и хотел бы знать, является ли виртуальный адрес страницы пользовательский процесс принадлежит пространству пользователя или пространству ядра при замене?
(как в 64-разрядной версии Linux
Диапазон виртуальных адресов состояния пользователя: 0x0000000 000000-0x00007FFFFFFFFFFFF
Диапазон виртуальных адресов состояния ядра: 0xFFFF8000000000-0xFFFFFFFFFFFFFFFFFFFF)
linux-6.5.1/mm/memory.c
mm_account_fault()
if (major) {
struct major_page_fault_hash_entry *temp = NULL;
unsigned long pfn = virt_to_pfn(address);
printk("[%lu][%lu]", pfn, address);
perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, regs, address);
}

linux-6.5.1/mm/swap_state.c
bool add_to_swap(struct folio *folio)
long pages_number = folio_nr_pages(folio);
unsigned long start_pfn = folio_pfn(folio);

for (int i = 0; i < pages_number; i++) {
struct page *current_page = pfn_to_page(start_pfn + i);
unsigned long current_virt_addr = (unsigned long)page_to_virt(current_page);
printk("[%lu][o][%lu]\n",start_pfn + i, current_virt_addr);
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... ge-in-user
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»