From patchwork Fri May 8 16:32:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cindy Lu X-Patchwork-Id: 1286307 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=2001:470:142::17; 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 Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Myp8GrvR; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:470:142::17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49JbVr6ZKnz9sPF for ; Sat, 9 May 2020 02:33:38 +1000 (AEST) Received: from localhost ([::1]:34188 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jX5wN-0005xt-3K for incoming@patchwork.ozlabs.org; Fri, 08 May 2020 12:33:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60592) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jX5w4-0005wg-Cm for qemu-devel@nongnu.org; Fri, 08 May 2020 12:33:16 -0400 Received: from us-smtp-1.mimecast.com ([205.139.110.61]:57030 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jX5w2-0005A1-R3 for qemu-devel@nongnu.org; Fri, 08 May 2020 12:33:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1588955592; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pNOPBaptLtkgLmyWaGY4d608APV0MPx1WGQ/pUAZTpE=; b=Myp8GrvRPSTAsE8z1dxKgAJ5xhJkGVKjOMWeuEXHsXDePuXcvSsfMFLCTOyvks9cv5cTh2 0IcZTi8MhO6zPrzm8d4wWcp8tS1Lcv+mxRrMcfZZndVyUVf8fzW64F5cEwUxeyagEulV/4 N9pRCVycn+EGwR7OXH90Z1M/elBjwnU= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-178-8vGW5FV2P5CP-P00v267vA-1; Fri, 08 May 2020 12:33:08 -0400 X-MC-Unique: 8vGW5FV2P5CP-P00v267vA-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A4B81800688; Fri, 8 May 2020 16:33:05 +0000 (UTC) Received: from laptop.redhat.com (ovpn-12-75.pek2.redhat.com [10.72.12.75]) by smtp.corp.redhat.com (Postfix) with ESMTP id F20346ACF5; Fri, 8 May 2020 16:32:45 +0000 (UTC) From: Cindy Lu To: mst@redhat.com, armbru@redhat.com, eblake@redhat.com, cohuck@redhat.com, jasowang@redhat.com Subject: [RFC v2 0/9] vDPA support in qemu Date: Sat, 9 May 2020 00:32:09 +0800 Message-Id: <20200508163218.22592-1-lulu@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=205.139.110.61; envelope-from=lulu@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/08 08:00:48 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mhabets@solarflare.com, qemu-devel@nongnu.org, rob.miller@broadcom.com, saugatm@xilinx.com, lulu@redhat.com, hanand@xilinx.com, hch@infradead.org, eperezma@redhat.com, jgg@mellanox.com, shahafs@mellanox.com, kevin.tian@intel.com, parav@mellanox.com, vmireyno@marvell.com, cunming.liang@intel.com, gdawar@xilinx.com, jiri@mellanox.com, xiao.w.wang@intel.com, stefanha@redhat.com, zhihong.wang@intel.com, aadam@redhat.com, rdunlap@infradead.org, maxime.coquelin@redhat.com, lingshan.zhu@intel.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" vDPA device is a device that uses a datapath which complies with the virtio specifications with vendor specific control path. vDPA devices can be both physically located on the hardware or emulated by software. This RFC introduce the vDPA support in qemu change from v1 separe the patch of introduce vhost_set_vring_ready method separe the patch of qemu_get_peer separe the patch of vhost_set_state intorduce the new macro specific for vDPA in configure intorduce the fuction to pass the fd from cmdline introduce the docmation in qemu-options.hx the other comments form last version Cindy Lu (3): net: introduce qemu_get_peer net: use the function qemu_get_peer virtio_net: introduce vhost_set_state Jason Wang (4): virtio-bus: introduce queue_enabled method virito-pci: implement queue_enabled method vhost_net: set vq ready during start if necessary vhost: introduce vhost_set_vring_ready method Tiwei Bie (2): vhost-vdpa: introduce vhost-vdpa net client vhost-vdpa: implement vhost-vdpa backend configure | 21 ++ hw/net/vhost_net-stub.c | 4 + hw/net/vhost_net.c | 77 ++++- hw/net/virtio-net.c | 9 + hw/virtio/Makefile.objs | 1 + hw/virtio/vhost-backend.c | 5 + hw/virtio/vhost-vdpa.c | 447 ++++++++++++++++++++++++++++++ hw/virtio/vhost.c | 14 + hw/virtio/virtio-pci.c | 13 + hw/virtio/virtio.c | 6 + include/hw/virtio/vhost-backend.h | 10 +- include/hw/virtio/vhost-vdpa.h | 25 ++ include/hw/virtio/vhost.h | 1 + include/hw/virtio/virtio-bus.h | 4 + include/net/net.h | 1 + include/net/vhost-vdpa.h | 19 ++ include/net/vhost_net.h | 4 +- net/Makefile.objs | 2 +- net/clients.h | 2 + net/net.c | 9 + net/vhost-vdpa.c | 227 +++++++++++++++ qapi/net.json | 22 +- qemu-options.hx | 19 ++ 23 files changed, 930 insertions(+), 12 deletions(-) create mode 100644 hw/virtio/vhost-vdpa.c create mode 100644 include/hw/virtio/vhost-vdpa.h create mode 100644 include/net/vhost-vdpa.h create mode 100644 net/vhost-vdpa.c