[ovs-dev] [RFC 0/2] EMC load-shedding

Billy O'Mahony billy.o.mahony at intel.com
Fri Sep 22 13:47:41 UTC 2017


Hi All,

Please find attached RFC patch for EMC load-shedding [1] as promised [2].

This applies clean on 5ff834 "Increment ct packet counters..." It also uses
Ilya's patch "Fix per packet cycles statistics." [3] so I've included that in
the patch set as it wasn't merged when I started the RFC.

The main goal for this RFC is only to demonstrate the outline of the mechanism
and get feedback & advice for further work.

However I did some initial testing with promising results. For 8K to 64K flows
the cycles per packet drop from ~1200 to ~1100. For small numbers of flows
(~16) the cycles per packet remain at ~900 which I beleive means no increase
but I didn't baseline that situation.

There are some TODOs commented in the patch with XXX.

For one I think the mechanism should take into account the expected cycle-cost
of EMC lookup and EMC miss (dpcls lookup) when deciding how much load to shed.
Rather than the heuristic in this patch which is to keep the emc hit rate (for
flow which have not been diverted from the EMC) between certain bounds.

Also we should decide on at least one flow distribution that would be useful
(i.e. realistic) for EMC testing. The tests above have either been carried out
with a random (uniform) flow distribution which doesn't play well with flow
caching or else a round-robin flow distribution which is actually adverserial
to flow caching. If I have an agreed flow distribution I can then figure out
how to produce it for testing :).

[1] https://mail.openvswitch.org/pipermail/ovs-dev/2017-August/336509.html
[2] https://mail.openvswitch.org/pipermail/ovs-dev/2017-September/338380.html
[3] https://mail.openvswitch.org/pipermail/ovs-dev/2017-August/337309.html

Billy O'Mahony (1):
  dpif-netdev: RFC EMC load-shedding

Ilya Maximets (1):
  dpif-netdev: Fix per packet cycles statistics.

 lib/dpif-netdev.c | 118 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 108 insertions(+), 10 deletions(-)

-- 
2.7.4



More information about the dev mailing list