ZEROCOPY between kernel and userland
Don Bowman
don at sandvine.com
Tue Jul 6 06:22:45 PDT 2004
From: thefly [mailto:thefly at acaro.org]
> Hello everybody, i'm writing a netgraph module to get some stats about
> the network traffic. Actually i have to pass all the data gathered all
> in one piece, to the process which asks me for it. The client should
> work like this in userland:
>
> int * pointer;
>
> ioctl(dev, MY_COMMAND, pointer);
>
> after this pointer points to the right memory area. The array
> to pass is
> about 500Kb, so copying with copyout() would be too expensive, moving
> the array from kernel's addrespace to process's address space would be
> fast.
> The question is: what's the actual API to do that, if there's any, in
> freebsd 5?
We did a device, and 'mmap' some shared memory between the two.
The user space has read-only access.
More information about the freebsd-hackers
mailing list