On 2017年09月21日 03:38, Matthew Rosato wrote:
Seems to make some progress on wakeup mitigation. Previous patch tries
to reduce the unnecessary traversal of waitqueue during rx. Attached
patch goes even further which disables rx polling during processing tx.
Please try it to see if it has any difference.
Unfortunately, this patch doesn't seem to have made a difference.  I
tried runs with both this patch and the previous patch applied, as well
as only this patch applied for comparison (numbers from vhost thread of
sending VM):

4.12    4.13     patch1   patch2   patch1+2
2.00%   +3.69%   +2.55%   +2.81%   +2.69%   [...] __wake_up_sync_key

In each case, the regression in throughput was still present.

This probably means some other cases of the wakeups were missed. Could you please record the callers of __wake_up_sync_key()?


And two questions:
- Is the issue existed if you do uperf between 2VMs (instead of 4VMs)
Verified that the second set of guests are not actually required, I can
see the regression with only 2 VMs.

- Can enable batching in the tap of sending VM improve the performance
(ethtool -C $tap rx-frames 64)
I tried this, but it did not help (actually seemed to make things a
little worse)


 I still can't see a reason that can lead more wakeups, will take more time to look at this issue and keep you posted.

Thanks

Reply via email to