Enquanto “bifurca” um processo, por que o kernel do Linux copia o conteúdo da tabela de páginas do kernel para cada processo recém-criado?

A discussão abaixo se aplica ao kernel do ARM Linux de 32 bits.

Percebi que durante o processo de bifurcação, o kernel do Linux copia o conteúdo da tabela de páginas do kernel (tabela de páginas mestras, ou seja,swapper_pg_dir) na tabela de páginas de todos os processos recém-criados.

As perguntas são:

Por que se preocupar em fazer isso?Por que todos os processos não podem compartilhar uma única cópia da tabela de páginas do kernel (parte higer 1G referente ao ARM Linux de 32 bits), em vez de copiar a tabela de páginas do trocador para cada processo recém-criado.É um desperdício de memória?

Código fonte relacionado ("->" significa chamada de função):
do_fork -> processo de cópia -> cópia_mm -> dup_mm -> mm_init -> mm_alloc_pgd -> pgd_alloc ->

/*
* Copy over the kernel and IO PGD entries
*/
init_pgd = pgd_offset_k(0);

memcpy(new_pgd + USER_PTRS_PER_PGD, init_pgd + USER_PTRS_PER_PGD,
       (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));

questionAnswers(2)

yourAnswerToTheQuestion