Gilboa Davara wrote:
> Here's how I see it:
> 
> Kernel 1:
> Device -> SKB -> Reassembly -> Disk.
> (I can even save the third memcpy [Reassembly -> Disk] I go rewrite the
> world under me)
> 
> User:
> Device -> SKB -> Reassembly ( -> ?) Relayfs  -> User: write(2) ->
> Kernel: sys_write (copy_from_user) -> Disk.

Note that in the case of relayfs there is no memcpy involved in the
kernel->user stage, since relayfs uses mmap to map its buffers to
user-mode. At least in later versions.

relayfs is also being integrated into the kernel and will be available
built-in as of 2.6.13. You can also find patches in their homepage.

I've used relayfs for my own needs and it's been very easy to work with
them, there is a relayfs-apps layer that makes creating a quick pilot
very easy.

One possible complication though, relayfs has a buffer per cpu, if your
receive path is being handled in two different cpus you'll need to
synchronize the data yourself since you'll get it in two different buffers.

Baruch

=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to