> > I really do not know how to describe the problem. But a friend here asks > me how to mmap a network buffer so that there is no need to copy the data > from user space to kernel space. We are not sure whether FreeBSD can > create a device file (mknod) for a network card, and if so, we can use the > mmap() call to do so because mmap() requires a file descriptor. We assume > that the file descriptor can be acquired by opening the network device. > If this is infeasible, is there another way to accomplish the same goal?
Use sendfile() for zero-copy file transmission; in all other cases it's necessary to copy data into the kernel. Memory-mapping a network buffer makes no sense if you just think about it for a moment... There's also very little need for this under "real" circumstances; some simple tests have demonstrated we can sustain about 800Mbps throughput (UDP), and the bottleneck here seems to be checksum calculations, not copyin/out. -- \\ The mind's the standard \\ Mike Smith \\ of the man. \\ msm...@freebsd.org \\ -- Joseph Merrick \\ msm...@cdrom.com To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-hackers" in the body of the message