From patchwork Wed Apr 4 12:53:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Xu X-Patchwork-Id: 894980 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40GQvV2KzLz9ryG for ; Wed, 4 Apr 2018 22:56:37 +1000 (AEST) Received: from localhost ([::1]:56236 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3hxp-0001Cu-BL for incoming@patchwork.ozlabs.org; Wed, 04 Apr 2018 08:56:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54156) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3hx3-00017S-OU for qemu-devel@nongnu.org; Wed, 04 Apr 2018 08:55:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f3hwz-0005X9-G1 for qemu-devel@nongnu.org; Wed, 04 Apr 2018 08:55:45 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:33808 helo=mx1.redhat.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f3hwz-0005WL-20 for qemu-devel@nongnu.org; Wed, 04 Apr 2018 08:55:41 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id DE983EB71B; Wed, 4 Apr 2018 12:55:35 +0000 (UTC) Received: from localhost.localdomain (dhcp-14-122.nay.redhat.com [10.66.14.122]) by smtp.corp.redhat.com (Postfix) with ESMTP id C79E4215CDAF; Wed, 4 Apr 2018 12:55:28 +0000 (UTC) From: wexu@redhat.com To: wexu@redhat.com, jasowang@redhat.com, mst@redhat.com, tiwei.bie@intel.com, jfreimann@redhat.com, qemu-devel@nongnu.org Date: Wed, 4 Apr 2018 20:53:56 +0800 Message-Id: <1522846444-31725-1-git-send-email-wexu@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Wed, 04 Apr 2018 12:55:35 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Wed, 04 Apr 2018 12:55:35 +0000 (UTC) for IP:'10.11.54.6' DOMAIN:'int-mx06.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'wexu@redhat.com' RCPT:'' X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.187.233.73 Subject: [Qemu-devel] [RFC PATCH 0/8] virtio-net 1.1 userspace backend support X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Wei Xu This is a prototype for virtio-net 1.1 support in userspace backend, only minimum part are included in this RFC(roughly synced to v8 as Jason and Tiwei's RFC). Test has been done together with Tiwei's RFC guest virtio-net driver patch, ping and a quick iperf test successfully. Issues: 1. Rx performance of Iperf is much slower than TX. TX: 13-15Gb RX: 100-300Mb Missing: - device and driver - indirect descriptor - migration - vIOMMU support - other revisions since v8 - see FIXME Wei Xu (8): virtio: feature bit, data structure for packed ring virtio: memory cache for packed ring virtio: add empty check for packed ring virtio: add detach element for packed ring(1.1) virtio: notification tweak for packed ring virtio: flush/push support for packed ring virtio: get avail bytes check for packed ring virtio: queue pop support for packed ring hw/virtio/virtio.c | 618 +++++++++++++++++++++++-- include/hw/virtio/virtio.h | 12 +- include/standard-headers/linux/virtio_config.h | 2 + 3 files changed, 601 insertions(+), 31 deletions(-)