Re: [PATCH net,stable v4 0/3] vhost: fix a few skb leaks

From: Matthew Rosato
Date: Fri Dec 01 2017 - 09:54:14 EST


On 12/01/2017 09:47 AM, Michael S. Tsirkin wrote:
> On Fri, Dec 01, 2017 at 05:10:35AM -0500, wexu@xxxxxxxxxx wrote:
>> From: Wei Xu <wexu@xxxxxxxxxx>
>>
>> Matthew found a roughly 40% tcp throughput regression with commit
>> c67df11f(vhost_net: try batch dequing from skb array) as discussed
>> in the following thread:
>> https://www.mail-archive.com/netdev@xxxxxxxxxxxxxxx/msg187936.html
>
> Series
>
> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx>

Tested this series on a z13 (s390x) on top of net-next using 4GB/4vcpu
guests. Verified that both the reported TCP throughput regression and
memory leak are resolved.

net-next: 19.83 Gb/s
net-next+: 35.02 Gb/s

Thanks all!

Matt

>
>
>> v4:
>> - fix zero iov iterator count in tap/tap_do_read()(Jason)
>> - don't put tun in case of EBADFD(Jason)
>> - Replace msg->msg_control with new 'skb' when calling tun/tap_do_read()
>>
>> v3:
>> - move freeing skb from vhost to tun/tap recvmsg() to not
>> confuse the callers.
>>
>> v2:
>> - add Matthew as the reporter, thanks matthew.
>> - moving zero headcount check ahead instead of defer consuming skb
>> due to jason and mst's comment.
>> - add freeing skb in favor of recvmsg() fails.
>>
>> Wei Xu (3):
>> vhost: fix skb leak in handle_rx()
>> tun: free skb in early errors
>> tap: free skb if flags error
>>
>> drivers/net/tap.c | 14 ++++++++++----
>> drivers/net/tun.c | 24 ++++++++++++++++++------
>> drivers/vhost/net.c | 20 ++++++++++----------
>> 3 files changed, 38 insertions(+), 20 deletions(-)
>>
>> --
>> 1.8.3.1
>