How to pin a userland page in memory(avoid copyin and copyout)

Dipjyoti Saikia dipjyoti.saikia at gmail.com
Tue Jan 31 16:18:27 PST 2006


On 1/31/06, Bharma Ji <bharmaji at gmail.com> wrote:
>
> Hi
> I am trying to explore the option avoiding copyin and copyout when mode
> switches from user to kernel and vice versa. One way to achieve this, as I
> understand, is to make the memory address (which contain the data to be
> copied) non pageable. Then just pass the addresses to the kernel and the
> data will be used directly from the userland page. Is there already some
> example code / standard way to do this?
>
> Also is there any way one can determine the amount of time / performance
> hit
> (CPU %)that happening on a given process due to the copyin and copyout. I
> want to understand how much performance gain one can gain if I am able to
> remove copyin/copyout.
>
> This may give some pointers :

  kern/sys_pipe.c
          -->pipe_build_write_buffer()

I was working on pipe implementation in  BSD derivative of  4.10 branch and
remember the same concept  of pinning the user space buffer for bypassing
kernel buffer.

Thanks,
Dip


More information about the freebsd-hackers mailing list