Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jul 2016 11:47:28 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        "Andrey V. Elsukov" <ae@freebsd.org>
Cc:        "src-committers@freebsd.org" <src-committers@freebsd.org>,  "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>,  "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r271300 - in head/sys: net netinet
Message-ID:  <CAJ-Vmo=4BXyCvLHN%2BPd8EAVYNsiU2DvYp488yO78VCRqTSzakA@mail.gmail.com>
In-Reply-To: <578669BC.1010202@FreeBSD.org>
References:  <201409090418.s894IKMT007235@svn.freebsd.org> <578669BC.1010202@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=4BXyCvLHN%2BPd8EAVYNsiU2DvYp488yO78VCRqTSzakA>