Message ID | 20210629072211.22487-1-simon.horman@corigine.com |
---|---|
State | New |
Headers | show |
Series | [net-net] openvswitch: Optimize operation for key comparison | expand |
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Tue, 29 Jun 2021 09:22:11 +0200 you wrote: > From: Baowen Zheng <baowen.zheng@corigine.com> > > In the current implement when comparing two flow keys, we will return > result after comparing the whole key from start to end. > > In our optimization, we will return result in the first none-zero > comparison, then we will improve the flow table looking up efficiency. > > [...] Here is the summary with links: - [net-net] openvswitch: Optimize operation for key comparison https://git.kernel.org/netdev/net/c/b18114476a14 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/net/openvswitch/flow_table.c b/net/openvswitch/flow_table.c index c89c8da99f1a..d4a2db0b2299 100644 --- a/net/openvswitch/flow_table.c +++ b/net/openvswitch/flow_table.c @@ -670,13 +670,13 @@ static bool cmp_key(const struct sw_flow_key *key1, { const long *cp1 = (const long *)((const u8 *)key1 + key_start); const long *cp2 = (const long *)((const u8 *)key2 + key_start); - long diffs = 0; int i; for (i = key_start; i < key_end; i += sizeof(long)) - diffs |= *cp1++ ^ *cp2++; + if (*cp1++ ^ *cp2++) + return false; - return diffs == 0; + return true; } static bool flow_cmp_masked_key(const struct sw_flow *flow,