Hi Eelco, > > This commit adds the intermediate queue for vHost-user ports. It > >improves the throughput in multiple virtual machines deployments and > also >in cases with VM doing packet forwarding in kernel stack. > > > > This patch is aligned with intermediate queue implementation for dpdk > >ports that can be found here: https://patchwork.ozlabs.org/patch/723309/ > >This patch and the one above combined will increase throughput in general >however to the cost of additional latency (see some numbers below). > >However I still would like to see both patches applied with a flush every tx >batch. This still increase performance if the rx batch has overlapping egress >ports, but lacks the latency increase. > >It would be nice if you could do your latency tests with this flush included to >see if you get the same results I got with this patch and the earlier one.
Thanks for reviewing this patch and for all the feedback. I shall work on merging both the DPDK and vHost User intermediate port implementation and post it to the ML. I am going to factor in all your comments. I have to go back and recheck few things w.r.t deleting the packets w.r.t 'total pkts' and 'dropped' counters. >I did do some quick latency and throughput tests (with only this patch >applied). >Same test setup as for the other patch set, i.e. two 82599ES 10G port with 64 >byte packets being send at wire speed: > >Physical to Virtual test: > >flows >Number plain patch + >of flows git clone patch flush >======== ========= ========= ========= >10 5945899 8006593 7833914 >32 3872211 6596310 6530133 >50 3283713 5861894 6618711 >100 3132540 5953752 5857226 >500 2964499 5612901 5273006 >1000 2931952 5233089 5178038 > > >Physical to Virtual to Physical test: > >Number plain patch + >of flows git clone patch flush >======== ========= ========= ========= >10 3240647 2659526 3652217 >32 2136872 2060313 2834941 >50 1981795 1912476 2897763 >100 1794678 1798084 2014881 >500 1686756 1672014 1657513 >1000 1677795 1628578 1612480 > >The results for the latency tests mimics your test case 2 form the previous >patch set, sending 10G traffic @ wire speed: > >===== GIT CLONE >Pkt size min(ns) avg(ns) max(ns) > 512 10,011 12,100 281,915 >1024 7,870 9,313 193,116 >1280 7,862 9,036 194,439 >1518 8,215 9,417 204,782 > >===== PATCH >Pkt size min(ns) avg(ns) max(ns) > 512 25,044 28,244 774,921 >1024 29,029 33,031 218,653 >1280 26,464 30,097 203,083 >1518 25,870 29,412 204,165 > >===== PATCH + FLUSH >Pkt size min(ns) avg(ns) max(ns) > 512 10,492 13,655 281,538 >1024 8,407 9,784 205,095 >1280 8,399 9,750 194,888 >1518 8,367 9,722 196,973 > Many thanks and appreciate you for taking time to test the patch and posting the throughput and latency details. I will also do the tests once I merge the patches and cross check with the above nos. Also I am going to include the flush logic as suggested to improve latency. - Bhanuprakash. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
