Hi Kevin, >On 06/07/2017 10:21 AM, Bhanuprakash Bodireddy wrote: >> This commit adds "vhost-enque-retry" where in the number of retries >> performed while enqueuing packets to vHostUser ports can be configured >> in ovsdb. >> >> Currently number of retries are set to '8' and a retry is performed >> when atleast some packets have been successfully sent on previous >attempt. >> While this approach works well, it causes throughput drop when >> multiple vHost User ports are servied by same PMD thread. > >Hi Bhanu, > >You are saying the approach works well but you are changing the default >behaviour. It would be good to explain a bit more about the negative effects >of changing the default and compare that against the positive effects, so >everyone gets a balanced view. If you have measurements that would be >even better.
This issue was discussed earlier at different forums (OvS-DPDK day during 2016 fall conference and community call) about the negative effect of retries on vHost User ports. Giving a bit of background for others interested in this problem: In OvS 2.5 Release: The retries on the vHost User ports were performed until a timeout(~100 micro seconds) is reached. The problem with that approach was If the guest is connected and isn't actively processing its queues, it could potentially impact the performance of neighboring guests (other vHost User ports) provided the same PMD thread is servicing them all. It was reported by me and you indeed provided the fix in 2.6 In OvS 2.6 Release: Timeout logic is removed and retry logic is introduced. Here a maximum up to '8' retries can be performed provided atleast one packet is transmitted successfully in the previous attempt. Problem: Take the case where there are few VMs (with 3 vHost User ports each) serviced by same PMD thread. Some of the VMs are forwarding at high rates(using dpdk based app) and the remaining are slow VMs doing kernel forwarding in the guest. In this case the PMD would spend significant cycles for slower VMs and may end up doing maximum of 8 retries all the time. However, in some cases doing a retry immediately isn't of much value as there may not be any free descriptors available. Also if there are more slow ports, the packets can potentially get tail dropped at the NIC as PMD is busy processing the packets and doing retries. I don't have numbers right now to back this problem but can do some tests next week to assess the impact with and without retries. Also adding jan here who wanted the retry logic to be configurable. Regards, Bhanuprakash. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev