Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1341677yba; Thu, 4 Apr 2019 08:53:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqzt4683E+JvhROxEjQF/nXzTaSCHzFA0lDQKTYRYwz4LgQtSOspsBbqxqfoBpY/84sgCQqH X-Received: by 2002:a17:902:7481:: with SMTP id h1mr7206948pll.206.1554393224567; Thu, 04 Apr 2019 08:53:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554393224; cv=none; d=google.com; s=arc-20160816; b=DbSbH+8UPNGTE7jq3dx389Xv7PGir+5TBoYrdbZkWYOyVI7n34jPqskuna/jlpUXDN O0/v/fGX+HWML64svv3nvIKCER/ZHjzTiqZdQ8KJAhdJbm+Ut/yBS5svwhKTtVDUkM9E 9Q9V3FOYwF8KQgRmrNXGKRMki0fWsaULNWRzA0/fT7aNsuQBzW4I5UWbM36uNjjQ3f4H EIPLETL95r0oVkVhnWDaa60OwFUgCa2TfGjIh17bbZ0DFZ7+lPTlAMYmVblB+sDfdWJM VTl1W8oe1trSy6LLkXcVQj9Y0diMC3JQluRYSGEoo2coD5dJEayepuG1viusFWIzrAcW vbzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=PVngM7uF6M93IOSHKxEjJoU1wIvtG/W5QemiBaE3w2A=; b=JqR9eTmSH5xygm9v1Lhyhhhv9xQfjMTZRE3uginYhgcmS72FEXE+t0L36uVJ4SBtAm LiCFsAcsoOxNr06UnpQ6rZMvE2ZmYSiYUg2kf8sec+k7SUS5EMrLoEhU2bwL3Br/bRRr 9TDGLGMdbxzO9z+Q4MAXx85xr3nhfBrCqDHcCM/O7Fk1xvSM0N8GejpfGMCaf/O0Veui 2e9MnPZrKpZ0Sa8WnRftCZuKi8KSp9DWowCDcpRHTWGjKMya/uwl+7fxTNPHDGcPTUHd PJaKjy15XqMD3GaxcUT2AB0DoHhZ0u5AJ4NpUq3rU+MoBtZDq5ZRl9lWa32VoPa451F2 8q0w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j17si16385041pgk.114.2019.04.04.08.53.28; Thu, 04 Apr 2019 08:53:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728811AbfDDPwv (ORCPT + 99 others); Thu, 4 Apr 2019 11:52:51 -0400 Received: from mail-qt1-f196.google.com ([209.85.160.196]:43023 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727053AbfDDPwu (ORCPT ); Thu, 4 Apr 2019 11:52:50 -0400 Received: by mail-qt1-f196.google.com with SMTP id v32so3770516qtc.10 for ; Thu, 04 Apr 2019 08:52:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=PVngM7uF6M93IOSHKxEjJoU1wIvtG/W5QemiBaE3w2A=; b=CtSrq0IBqQZxXhYaidznVYJYj+48B6IkC1AeV/hrEFGuaGlp/7XxqmcB8bs2+Lf+OR M/iLBsXz/fUhRL5inZ43JS18uwbyWDvGE/eR21uWH9OOO9aCelSDozEu18JjMY+CRZEX 0CWqBFzIQDMiohERAYO3FzA4edHEnfeATAlHaT843OmXlr3cVs27E6ZdtI5wjKWRZlnS gUz03aWpt5nGnBjObKuiVFQuxj4Prgd/AJ/p9jfhIlE4pghLr0udo1MuE4iVnKpLPyB8 4c7tcQSHQ0a/lrtySGxsLoed1CT2CXurdy0aQFsIx6CTffhhLRcRpYnklwNqKBL6lSor a7kg== X-Gm-Message-State: APjAAAVjHWCIAxTqQ07w+BWXTWB/K1oopCFhxb2g0xoXtKCBDDZoMFmS 5IsWXw9Ix8eWN2aHEO4hVPkLqQ== X-Received: by 2002:a0c:d21a:: with SMTP id m26mr5646369qvh.100.1554393169546; Thu, 04 Apr 2019 08:52:49 -0700 (PDT) Received: from redhat.com (pool-173-76-246-42.bstnma.fios.verizon.net. [173.76.246.42]) by smtp.gmail.com with ESMTPSA id x125sm11433039qkd.42.2019.04.04.08.52.48 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 04 Apr 2019 08:52:48 -0700 (PDT) Date: Thu, 4 Apr 2019 11:52:46 -0400 From: "Michael S. Tsirkin" To: Stefano Garzarella Cc: netdev@vger.kernel.org, Jason Wang , Stefan Hajnoczi , kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, "David S. Miller" Subject: Re: [PATCH RFC 0/4] vsock/virtio: optimizations to increase the throughput Message-ID: <20190404114643-mutt-send-email-mst@kernel.org> References: <20190404105838.101559-1-sgarzare@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190404105838.101559-1-sgarzare@redhat.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 04, 2019 at 12:58:34PM +0200, Stefano Garzarella wrote: > This series tries to increase the throughput of virtio-vsock with slight > changes: > - patch 1/4: reduces the number of credit update messages sent to the > transmitter > - patch 2/4: allows the host to split packets on multiple buffers, > in this way, we can remove the packet size limit to > VIRTIO_VSOCK_DEFAULT_RX_BUF_SIZE > - patch 3/4: uses VIRTIO_VSOCK_MAX_PKT_BUF_SIZE as the max packet size > allowed > - patch 4/4: increases RX buffer size to 64 KiB (affects only host->guest) > > RFC: > - maybe patch 4 can be replaced with multiple queues with different > buffer sizes or using EWMA to adapt the buffer size to the traffic > > - as Jason suggested in a previous thread [1] I'll evaluate to use > virtio-net as transport, but I need to understand better how to > interface with it, maybe introducing sk_buff in virtio-vsock. > > Any suggestions? > > Here some benchmarks step by step. I used iperf3 [2] modified with VSOCK > support: > > host -> guest [Gbps] > pkt_size before opt. patch 1 patches 2+3 patch 4 > 64 0.060 0.102 0.102 0.096 > 256 0.22 0.40 0.40 0.36 > 512 0.42 0.82 0.85 0.74 > 1K 0.7 1.6 1.6 1.5 > 2K 1.5 3.0 3.1 2.9 > 4K 2.5 5.2 5.3 5.3 > 8K 3.9 8.4 8.6 8.8 > 16K 6.6 11.1 11.3 12.8 > 32K 9.9 15.8 15.8 18.1 > 64K 13.5 17.4 17.7 21.4 > 128K 17.9 19.0 19.0 23.6 > 256K 18.0 19.4 19.8 24.4 > 512K 18.4 19.6 20.1 25.3 > > guest -> host [Gbps] > pkt_size before opt. patch 1 patches 2+3 > 64 0.088 0.100 0.101 > 256 0.35 0.36 0.41 > 512 0.70 0.74 0.73 > 1K 1.1 1.3 1.3 > 2K 2.4 2.4 2.6 > 4K 4.3 4.3 4.5 > 8K 7.3 7.4 7.6 > 16K 9.2 9.6 11.1 > 32K 8.3 8.9 18.1 > 64K 8.3 8.9 25.4 > 128K 7.2 8.7 26.7 > 256K 7.7 8.4 24.9 > 512K 7.7 8.5 25.0 > > Thanks, > Stefano I simply love it that you have analysed the individual impact of each patch! Great job! For comparison's sake, it could be IMHO benefitial to add a column with virtio-net+vhost-net performance. This will both give us an idea about whether the vsock layer introduces inefficiencies, and whether the virtio-net idea has merit. One other comment: it makes sense to test with disabling smap mitigations (boot host and guest with nosmap). No problem with also testing the default smap path, but I think you will discover that the performance impact of smap hardening being enabled is often severe for such benchmarks. > [1] https://www.spinics.net/lists/netdev/msg531783.html > [2] https://github.com/stefano-garzarella/iperf/ > > Stefano Garzarella (4): > vsock/virtio: reduce credit update messages > vhost/vsock: split packets to send using multiple buffers > vsock/virtio: change the maximum packet size allowed > vsock/virtio: increase RX buffer size to 64 KiB > > drivers/vhost/vsock.c | 35 ++++++++++++++++++++----- > include/linux/virtio_vsock.h | 3 ++- > net/vmw_vsock/virtio_transport_common.c | 18 +++++++++---- > 3 files changed, 44 insertions(+), 12 deletions(-) > > -- > 2.20.1