svn commit: r271300 - in head/sys: net netinet
Adrian Chadd
adrian at freebsd.org
Wed Jul 13 18:47:30 UTC 2016
ugh, hm. Wonder how I missed that. I'll go see about fixing it.
-adrian
On 13 July 2016 at 09:18, Andrey V. Elsukov <ae at freebsd.org> wrote:
> On 09.09.14 08:18, Adrian Chadd wrote:
>> Author: adrian
>> Date: Tue Sep 9 04:18:20 2014
>> New Revision: 271300
>> URL: http://svnweb.freebsd.org/changeset/base/271300
>>
>> Log:
>> Update the IPv4 input path to handle reassembled frames and incoming frames
>> with no RSS hash.
>>
>> When doing RSS:
>>
>> * Create a new IPv4 netisr which expects the frames to have been verified;
>> it just directly dispatches to the IPv4 input path.
>> * Once IPv4 reassembly is done, re-calculate the RSS hash with the new
>> IP and L3 header; then reinject it as appropriate.
>> * Update the IPv4 netisr to be a CPU affinity netisr with the RSS hash
>> function (rss_soft_m2cpuid) - this will do a software hash if the
>> hardware doesn't provide one.
>>
>> NICs that don't implement hardware RSS hashing will now benefit from RSS
>> distribution - it'll inject into the correct destination netisr.
>>
>> Note: the netisr distribution doesn't work out of the box - netisr doesn't
>> query RSS for how many CPUs and the affinity setup. Yes, netisr likely
>> shouldn't really be doing CPU stuff anymore and should be "some kind of
>> 'thing' that is a workqueue that may or may not have any CPU affinity";
>> that's for a later commit.
>>
>> Differential Revision: https://reviews.freebsd.org/D527
>> Reviewed by: grehan
>>
>> Modified:
>> head/sys/net/netisr.h
>> head/sys/netinet/in_var.h
>> head/sys/netinet/ip_input.c
>>
>> Modified: head/sys/netinet/ip_input.c
>
> Hi, I am sorry for addressing this old message, but it looks like you
> can not use the same IPCTL_XXX constant for several different oids.
>
> ...
>> @@ -266,6 +292,46 @@ SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQDRO
> ^^^^ - there
>> CTLTYPE_INT|CTLFLAG_RD, 0, 0, sysctl_netinet_intr_queue_drops, "I",
>> "Number of packets dropped from the IP input queue");
>>
>> +SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQMAXLEN, intr_direct_queue_maxlen,
> ^^^ - and there.
>> + CTLTYPE_INT|CTLFLAG_RW, 0, 0, sysctl_netinet_intr_direct_queue_maxlen, "I",
>> + "Maximum size of the IP direct input queue");
>
> User applications use these constants to address specific oids and I
> don't think and don't see that the kernel calls several handlers for one
> oid.
>
> --
> WBR, Andrey V. Elsukov
>
More information about the svn-src-head
mailing list