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]
