Mapping memory between kernel and user space
anish singh
anish198519851985 at gmail.com
Wed Feb 16 03:02:38 EST 2011
On Wed, Feb 16, 2011 at 11:22 AM, Rajat Sharma <fs.rajat at gmail.com> wrote:
> > But coming to kernel they distinguish logical address from virtual
> > address. What is the main difference.
>
> kernel logical address has linear (one-to-one) mapping of physical
> address to virtual address range. e.g. kernel logical address (linear
> address) from 3G to 4G (on x86) can map physical memory of 0-1G, so it
> is intutive to get physical address from a logical address by
> subtrating 3G from logical address.
>
> while kernel virtual address can be though of as logical address with
> no restriction of linear mapping. Then how they map to physical pages?
> Well this is achieved through page tables mapping like user space
> address, however the virtual address range falls in 3G-4G (on x86)
> range only. Basically you can say it is the process mapping of kernel
> virtual address range (3G-4G) in its page tables. CPU works through
> page-tables hence requires kernel virtual address in code
> instructions. So, it is possible thats a kernel page has kernel
> virtual address as well as logical address.
>
So virtual address allocated to processes in user space is mapped to kernel
virtual address(3g-4g range) using page tables?
>
> > Also, they emphasize on high memory and low memory. Why can not high
> > memory can be mapped in to kernel completely.
> > Why is that kernel has less visibility of complete space available on
> RAM.
>
> For a limited address space range of linear mapping, physical memory
> has to be limited (one-to-one mapping). So, if your system (x86) has
> more than 1G physical RAM, Linux provides some mechanism releasing
> some small slot between (3G + 896M) to 4G for dynamically mapping High
> phyical memory page frames (>896M physical address), since you can't
> always map the complete physical RAM all the time. This dynamic
> mapping is done through kmap().
>
> > what is very minimal implementation of MMU for real time systems.
> # CONFIG_MMU is not set
> means linear mapping of all physical address to virtual address. Not
> sure, but seems it requires processor support to work on linear
> address bypassing page-tables conversion.
>
> Rajat
>
> On Tue, Feb 15, 2011 at 10:45 PM, Sri Ram Vemulpali
> <sri.ram.gmu06 at gmail.com> wrote:
> > As was suggested I started reading chap 15v from LDD. I ran more into
> > confusion state.
> >
> > I know that virtual address(process space), linear address
> > (segmentation) and physical address. And how are they resolved from
> > virtual to physical.
> > But coming to kernel they distinguish logical address from virtual
> > address. What is the main difference.
> > Also, they emphasize on high memory and low memory. Why can not high
> > memory can be mapped in to kernel completely.
> > Why is that kernel has less visibility of complete space available on
> RAM.
> > Linux MM is it a very specific implementation of linux, or Is that a
> > traditional implementation.
> >
> > what is very minimal implementation of MMU for real time systems.
> >
> > Thanks in advance.
> >
> > --Sri.
> >
> > On Tue, Feb 15, 2011 at 12:54 AM, Ankita Garg <ankita at in.ibm.com> wrote:
> >> On Wed, Feb 09, 2011 at 06:45:42PM -0500, Sri Ram Vemulpali wrote:
> >>> Hi all,
> >>>
> >>> How do I map some space between kernel and user space. Can anyone
> >>> point me in to right direction. I was trying to map the packets from
> >>> my netfilter function to kernel user space, to avoid over head of
> >>> copying. Thanks in advance.
> >>>
> >>
> >> You can take a look at remap_pfn_range() routine when implementing mmap
> >> in your driver.
> >>
> >> --
> >> Regards,
> >> Ankita Garg (ankita at in.ibm.com)
> >> Linux Technology Center
> >> IBM India Systems & Technology Labs,
> >> Bangalore, India
> >>
> >
> >
> >
> > --
> > Regards,
> > Sri.
> >
> > _______________________________________________
> > Kernelnewbies mailing list
> > Kernelnewbies at kernelnewbies.org
> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20110216/3e09a60e/attachment-0001.html
More information about the Kernelnewbies
mailing list