[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20110517.143342.1566027350038182221.davem@davemloft.net>
Date: Tue, 17 May 2011 14:33:42 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: netdev@...r.kernel.org
Subject: small RPS cache for fragments?
It seems to me that we can solve the UDP fragmentation problem for
flow steering very simply by creating a (saddr/daddr/IPID) entry in a
table that maps to the corresponding RPS flow entry.
When we see the initial frag with the UDP header, we create the
saddr/daddr/IPID mapping, and we tear it down when we hit the
saddr/daddr/IPID mapping and the packet has the IP_MF bit clear.
We only inspect the saddr/daddr/IPID cache when iph->frag_off is
non-zero.
It's best effort and should work quite well.
Even a one-behind cache, per-NAPI instance, would do a lot better than
what happens at the moment. Especially since the IP fragments mostly
arrive as one packet train.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists