From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751259AbdESG12 (ORCPT ); Fri, 19 May 2017 02:27:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:38870 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750728AbdESG1X (ORCPT ); Fri, 19 May 2017 02:27:23 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com DEA86C056828 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=jasowang@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com DEA86C056828 Subject: Re: [PATCH net-next V5 0/9] vhost_net rx batch dequeuing To: "Michael S. Tsirkin" References: <1494994485-12994-1-git-send-email-jasowang@redhat.com> <20170517235738-mutt-send-email-mst@kernel.org> Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org From: Jason Wang Message-ID: <0d1dbf31-32c8-34b4-d8e8-48d04f2fc205@redhat.com> Date: Fri, 19 May 2017 14:27:16 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170517235738-mutt-send-email-mst@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Fri, 19 May 2017 06:27:23 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2017年05月18日 04:59, Michael S. Tsirkin wrote: > On Wed, May 17, 2017 at 12:14:36PM +0800, Jason Wang wrote: >> This series tries to implement rx batching for vhost-net. This is done >> by batching the dequeuing from skb_array which was exported by >> underlayer socket and pass the sbk back through msg_control to finish >> userspace copying. This is also the requirement for more batching >> implemention on rx path. >> >> Tests shows at most 7.56% improvment bon rx pps on top of batch >> zeroing and no obvious changes for TCP_STREAM/TCP_RR result. >> >> Please review. >> >> Thanks > A surprisingly large gain for such as simple change. It would be nice > to understand better why this helps - in particular, does the optimal > batch size change if ring is bigger or smaller? Will test, just want to confirm. You mean virtio ring not tx_queue_len here? Thanks > But let's merge it > meanwhile. > > Series: > > Acked-by: Michael S. Tsirkin > > > >> Changes from V4: >> - drop batch zeroing patch >> - renew the performance numbers >> - move skb pointer array out of vhost_net structure >> >> Changes from V3: >> - add batch zeroing patch to fix the build warnings >> >> Changes from V2: >> - rebase to net-next HEAD >> - use unconsume helpers to put skb back on releasing >> - introduce and use vhost_net internal buffer helpers >> - renew performance numbers on top of batch zeroing >> >> Changes from V1: >> - switch to use for() in __ptr_ring_consume_batched() >> - rename peek_head_len_batched() to fetch_skbs() >> - use skb_array_consume_batched() instead of >> skb_array_consume_batched_bh() since no consumer run in bh >> - drop the lockless peeking patch since skb_array could be resized, so >> it's not safe to call lockless one >> >> Jason Wang (8): >> skb_array: introduce skb_array_unconsume >> ptr_ring: introduce batch dequeuing >> skb_array: introduce batch dequeuing >> tun: export skb_array >> tap: export skb_array >> tun: support receiving skb through msg_control >> tap: support receiving skb from msg_control >> vhost_net: try batch dequing from skb array >> >> Michael S. Tsirkin (1): >> ptr_ring: add ptr_ring_unconsume >> >> drivers/net/tap.c | 25 +++++++-- >> drivers/net/tun.c | 31 ++++++++--- >> drivers/vhost/net.c | 128 +++++++++++++++++++++++++++++++++++++++++++--- >> include/linux/if_tap.h | 5 ++ >> include/linux/if_tun.h | 5 ++ >> include/linux/ptr_ring.h | 120 +++++++++++++++++++++++++++++++++++++++++++ >> include/linux/skb_array.h | 31 +++++++++++ >> 7 files changed, 327 insertions(+), 18 deletions(-) >> >> -- >> 2.7.4