Socket related stuff - patch available for testing

Matthew Dillon dillon at apollo.backplane.com
Sat Dec 5 15:41:11 PST 2009


    Ok, I committed the patch with one additinal change which is to
    comment out the assertion causing the reported IPV6 issues.

    I tracked it down but can't fix it right now.  Basically what is
    happening is that IPV6 packets are being forwarded to the "netisr_cpu 0"
    thread, so some of the UDP and TCP processing is taking place there
    instead of in the tcp or udp protocol threads.  Actually, I think it
    might be taking place in both threads (on the same cpu) which might
    create its own issues.

    The chain of events starts with the netisr_register() call made in
    netinet6/ip6_input.c and fans out from there.

    The tcp timer assertions are being left intact as they assert the
    caller is on the correct cpu, which we are even though we are in the
    wrong protocol thread.

    I think that will work out for now.  What we really need to do is
    implement a proper ip6_demux.c which would then forward the packets
    to (at least) the proper protocol threads instead of the
    "netisr_cpu 0" protocol thread.

						-Matt






More information about the Kernel mailing list