svn commit: r271300 - in head/sys: net netinet
Andrey V. Elsukov
ae at FreeBSD.org
Wed Jul 13 16:19:46 UTC 2016
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 538 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20160713/32cbe4d7/attachment.sig>
More information about the svn-src-head
mailing list