According to one embodiment of the invention, a technique is provided for
relocating the contents of kernel pages in a manner similar to techniques
used for relocating the contents of user pages. Before the contents of a
source page are moved to a target page, for each entry of a plurality of
entries that correspond to the source page, it is determined whether a
mapping indicated in that entry is a mapping into kernel virtual memory
address space or user virtual memory address space. If the mapping is
into user virtual memory address space, then the entry is marked invalid.
If the mapping is into kernel virtual memory address space, then the
mapping is marked suspended. Marking an entry suspended causes processes
and threads that try to access the entry's mapping to wait until the
entry is no longer marked suspended. Consequently, kernel pages may be
distributed among all computing system boards.