Pageable kernel (was Bugs and wishes in memory management area)

Keith Owens (kaos@edison.dialix.com.au)
Wed, 20 Nov 1996 17:23:07 +1100 (EST)


On Wed, 20 Nov 1996, David S. Miller wrote:
> No, you cannot page the memory a module uses. I leave the reader to
> consider the monsterous races assosciated with a kernel that can page
> itself.

It is not impossible in general but the specific design of the Linux
kernel makes it very difficult. For example, MVS can page most of the O/S
pages. The MVS nucleus ("kernel") is split into pageable and non-pageable
(fixed) areas, the former even use the MMU to map nucleus addresses to
physical addresses and the physical address changes everytime they are
paged in.

Fixed areas are the paging code itself, the common page tables, data that
is the subject of current I/O and various bits of time critical code that
cannot tolerate the extra time to page-fault into physical memory or run
with interrupts disabled. Even the page tables for inactive address
spaces ("processes") are paged out.

Not that I'm suggesting redesigning the Linux kernel this week to make it
pageable. However it may be worth thinking about as a long term project.
Finer kernel locking is a prerequisite, replacing the current glocal
kernel lock.

---
*** O . C. Software -- Consulting Services for Storage Management, ***
*** Disaster Recovery, Security, TCP/IP, Intranets and Internet    ***
*** for mainframes (IBM, Fujitsu, Hitachi) and Unix.               ***