To add another interesting bit to the puzzle... if I install both input
and output pfil hooks, and use ping to generate network traffic, the
writing to file in both the input and output hook works perfectly as
well - even at high packet rates. Here's the weird bit: the second I try
and initiate a TCP connection, I get a kernel panic.
So it seems that it is only when I generate TCP outbound traffic that
the kernel panic happens. If I telnet to a closed port on a valid IP, I
don't get a panic. If I telnet to an open port on a valid IP, it doesn't
panic until I attempt to send the first bit of user data down the
socket... so it seems that it's panicing on threads that are sheparding
outbound TCP user data through the kernel. Outbound TCP SYN and ACK pkts
used in the 3 way handshake to establish TCP connection don't cause the
panic.
To me, that says that there is something funky going on with the threads
that TCP connections use when sending packets down through the network
stack.
Can anyone shed some light on why threads that handle the processing of
outbound TCP packets containing user data would cause a vnode write to
fail because of a sleeping thread issue? From what I can gather, there
must be some difference in the way the threads are created/configured...
but I have no idea where to start looking to figure out what's going on
here.
Cheers,
Lawrence
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"