ak@suse.de said: >The zero copy code in vger has most of the infrastructure to do the same >with normal sockets, just the final user interface is missing. >Of course it'll never be really fast when you need to context switch to a >process first (see old screend) Are you talking about http://www.kernel.org/pub/linux/kernel/people/davem/zerocopy-2.4.3p4-1.diff.bz2? I'll have to check that out. Still, I thought the zero-copy code only saved the kernel->user->kernel memcpy when going directly from one socket to another. I don't see how that would let the userspace process see the packets and optionally discard them, which is what I'm aiming for. >One feature that is currently already in kernel is the SOCK_FILTER option; >you can push on every socket a LPF (slightly modified BPF) filter that >filters all packets arriving on that socket (works for TCP and UDP/RAW). >It's just per socket, not global. Yes, I looked at that. Unfortunately, it only works for tests that can be expressed as bpf vm instructions...I'd like the ability for arbitrary userspace processes to do arbitrary filtering on packets. >> I'm still not sure why it locks up on SMP at gigabit ethernet speeds, >> though. >What locks up? I'm not sure. I need to learn more about what's going on before bringing it to the list, but the machine is locking hard, no sysrq, and the nmi-watchdog isn't triggering. I could very well be doing something blatantly wrong, though. -- Jason Lunz Trellis Network Security j@trellisinc.com http://www.trellisinc.com/ - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org