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