On Tue, 12 Oct 2004 09:55:44 -0400, Naidu, Venkata <venkata.naidu@xxxxxxxxxxx> wrote: > Can every kernel address be referenced from running process PTEs? Most kernel addresses can. Mappings that change in the vmalloc area towards the end of kernel virtual memory necessitate updates to the process' kernel page tables. So it's not as simple as it might seem at first. > Are there any kernel pointers in memory at fixed known locations > which are not mapped to any process PTEs? They have to be mapped in order to be accessible. There must be a PTE because Linux uses paging as the fundamental basis for its virtual memory implementation - although on other architectures, such as those "substantially conforming to the PowerPC Architectural Specification" (blah blah blah blah) there are mapping registers which are called BATs or whatever is the name for a particular processor family. These allow single large mappings to take place mapping 896MB or whatever of physical RAM at the PAGE_OFFSET in kernel virtual memory. Some architectures with variable sized PTEs use just one or two large mappings for the kernel. This covers Intel (doesn't it? any Intel weenie want to talk about that? ;-) ) and certain embedded processors such as the IBM 40x series. > In other words, is the mapping between kernel address and PTEs > are iff (if and only if) relation (not just if relation)? If using virtual memory. Most architectures have a few pointers to physical memory at startup but these are either chucked away or relocated to virtual addresses which have page table mapping backing. Jon. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/