mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
openvswitch: Optimize operation for key comparison
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. Signed-off-by: Baowen Zheng <baowen.zheng@corigine.com> Signed-off-by: Louis Peens <louis.peens@corigine.com> Signed-off-by: Simon Horman <simon.horman@corigine.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a3609ac24c
commit
b18114476a
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user