Re: Process VM Addr to Kernel VM Addr at Interrupt Time.

Ramakrishna K (ramak@wipinfo.soft.net)
Thu, 29 Apr 1999 17:25:40 +0530 (IST)


>
> > mlock() doesn't fault the pages by itself. The user needs to do a read/write to
> > fault the pages in order to have the mlock take effect. Once this happens, it
> > should work.
>
> Providing the user remembered
Yes, it's true that the user has to explicitly do it.

> > The other option of allocation of kernel buffer and exporting the data to the user
> > using mmap using MAP_PRIVATE will never work.
>
> Why would you use mmap private for this ?
In case of ISR's wanting to access the user area, one should map as MAP_SHARED.
So the kernel mapping and mmap to user will work.

But i am assuming some applications say of a "msg" driven system.

I will receive data thru another machine on the cluster to a kernel buffer, which i will
want to map as MAP_PRIVATE. This is for the following reason. In these kind-of cases
i'll look at the validity of data and want to resend this data or the COW'ed data back
to the sender.

The options for the user will then be :
1.
a) Do another kernel buffer allocation.
b) mmap it to the user.
c) copy the changed data to this new user address which was a mmap of this different
kernel buffer allocation and send it across.

2.
a) Do a mmap ( MAP_PRIVATE ) on the receipt of data itself.
b) export this user area to kernel using a kernel mapping created for the pages
for this COW'ed data, which i can then send it over to the sender.

This way i'll cut down on the copy involved in case #1.

thanks,
Rama.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/