Never mind, I just noticed the other high memory thread which goes into greater detail than this one, sorry! On 8/8/06, Chris Littell <chris.littell@xxxxxxxxx> wrote:
I have a very basic question along the same lines. The kernel uses the upper 1GB of a 3GB/1GB split, but I dont understand why it cant map memory into the lower 3 GB of its address space? Is this just a logical restriction, or a 'feature' of the x86 architecture? - Chris P.S. I am a relatively new lurker to this list, I'll introduce myself one of these days... On 8/5/06, borasahin@xxxxxxxxxxx <borasahin@xxxxxxxxxxx> wrote: > > > > If so, why does the kernel need these areas of memory mapped into its > > > virtual address space? It seems like the kernel could keep a list of > > > all page frames that are available and then use this to map in page > > > frames for userspace memory without ever having it mapped into kernel > > > memory space. > > > > Besides the "kernel's own data structures" argument, there are > > security reasons why the kernel has to clear out a page's data > > before mapping the page into user space. > > > > This is more efficiently done if the page is already mapped into > > kernel address space, and does not have to be mapped in especially > > for the purpose. > > > > The kernel will leave the memory mapped into kernel address space > > after it has been given to a user process. This makes it easier > > to process the page in the future, eg. after the process has stopped > > using the page. > > > > > Then, lets say we have a machine with 1.5GB of memory. The kernel > > > linearly maps 896MB of space into kernel space and the leaves teh > > > remaning 128MB for temporary mappings. When are these temporary > > > mappings done, and for what purpose. Would these temporary mappings > > > take place when user processes require space? > > > > The temporary mappings are done when the kernel needs to access > > memory above the 896MB boundary. The kernel needs to do accesses > > when it has to clear out the data in a page before it is given to > > userspace, or when userspace calls sendfile(2) and the kernel has > > to copy data into or out of the page. There probably are other > > occasions too. > > So after the light of infos above, is my general summary correct: a useful > idea, one-to-one mapping, had some troubles when physical memory past the > 896MB/1GB barrier but then resolved by highmem even if not exactly(Full > solution is 64 bit)? > > -- > Bora SAHIN > > -- > Kernelnewbies: Help each other learn about the Linux kernel. > Archive: http://mail.nl.linux.org/kernelnewbies/ > FAQ: http://kernelnewbies.org/faq/ > >
-- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/