map share memory to kernel space
John Baldwin
jhb at freebsd.org
Tue Feb 15 12:51:50 UTC 2011
On Monday, February 14, 2011 10:12:59 pm beezarliu wrote:
> On 2011-02-14 22:56:28, John Baldwin wrote:
> >On Monday, February 14, 2011 4:18:50 am beezarliu wrote:
> >> Hackers,
> >>
> >> I want to access a userland share memory in a kernel thread.
> >> So I tried to map the share memory to the kernel space.
> >> The basic idea is to map the shm_object into kernel_map
> >> when the share memory is created.
> >>
> >> Using the following patch, I found the vm_object in kernel_map,
> >> and the vm_object in the address space of userland process are the same.
> >> But their content in the kernel and userland address mapped are different.
> >>
> >> It's very strang since they are exactly the same vm_object.
> >> Do I miss something, please help.
> >
> >Hmm, this is a bit of code I use for something similar to map a VM object into
> >the kernel. It does not use vm_page_grab() directly though:
>
>
> Initially, I wanted to allocate all the pages needed when the share memory is created,
> in order to reduce page fault at the time it's used.
> This seems to be an extra step. :(
>
> John, thank you very much!
I think vm_map_wire() will find pages for you when it wires the object.
--
John Baldwin
More information about the freebsd-hackers
mailing list