On 9/14/05, suresh pedamallu <suresh.iitr@xxxxxxxxx> wrote: > Hi All, > I have a query regarding the kernel virtual memory. In this thread > some people said the physical address for the kernel virtual address > can be obtained by subtracting it from 3G. > Physical address = Virtual Address - 3G. > > Take a simple Case: > I have physical memory for eg 128 MB. And I want to access the virtual > address 3GB + 256MB. > The physical address would be 3GB + 256MB - 3GB which will be 256MB. > But the RAM size is just 128 MB. So how will i read the physical > memory 256MB because the physical memory i have is just 128MB. > > Please clarify this to me.. If you have 128MB RAM in the system then the direct virtual/physical mapping is from 3G to 3G + 128MB and above 3G+128MB Vitual address upto 4G is called as VMALLOC_RESERVE and this can't have direct mappings as it is used for vmalloc/ioremap/kmap etc .......... and on 1GB physical RAM in system VMALLOC_RESERVE becomes 128MB as kernel keeps 0 to 896MB direct mapping on 3G to 3G + 896MB .......... So in short you can't access 3G + 256MB virtual address to access 256MB Physical RAM if you have 128MB RAM in system ........ -- Fawad Lateef -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/