From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 29E19C433EF for ; Mon, 7 Mar 2022 09:28:05 +0000 (UTC) Received: from localhost ([::1]:54376 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nR9eu-00018C-0U for qemu-devel@archiver.kernel.org; Mon, 07 Mar 2022 04:28:04 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57396) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nR9dT-0008KL-9Y for qemu-devel@nongnu.org; Mon, 07 Mar 2022 04:26:35 -0500 Received: from szxga01-in.huawei.com ([45.249.212.187]:3468) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nR9dQ-0005oy-6e for qemu-devel@nongnu.org; Mon, 07 Mar 2022 04:26:34 -0500 Received: from dggpeml500025.china.huawei.com (unknown [172.30.72.54]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4KBtN21MYyzdb09; Mon, 7 Mar 2022 17:25:06 +0800 (CST) Received: from dggpeml100016.china.huawei.com (7.185.36.216) by dggpeml500025.china.huawei.com (7.185.36.35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Mon, 7 Mar 2022 17:25:57 +0800 Received: from dggpeml100016.china.huawei.com ([7.185.36.216]) by dggpeml100016.china.huawei.com ([7.185.36.216]) with mapi id 15.01.2308.021; Mon, 7 Mar 2022 17:25:57 +0800 To: Stefano Garzarella CC: "stefanha@redhat.com" , "mst@redhat.com" , "cohuck@redhat.com" , "pbonzini@redhat.com" , "Gonglei (Arei)" , Yechuan , Huangzhichao , "qemu-devel@nongnu.org" Subject: RE: [PATCH v2 04/10] vdpa-dev: implement the instance_init/class_init interface Thread-Topic: [PATCH v2 04/10] vdpa-dev: implement the instance_init/class_init interface Thread-Index: AQHYC5/ZdHV3vKWLpkmweJSMX9QfraxpsK0AgEbkkMCAAsL6AIAAkP2Q//+AnoCAAImEcA== Date: Mon, 7 Mar 2022 09:25:57 +0000 Message-ID: <0e29a1e4d0b441b4a3fecae630ffd5c2@huawei.com> References: <20220117124331.1642-1-longpeng2@huawei.com> <20220117124331.1642-5-longpeng2@huawei.com> <20220119112344.5tj3ccnoeotc5abb@steredhat> <20220307081020.xzfuyquqrxvca2dw@sgarzare-redhat> <40c8c74f3bfb4527934c9e082f848593@huawei.com> <20220307091321.3mw2wsinl7xakoos@sgarzare-redhat> In-Reply-To: <20220307091321.3mw2wsinl7xakoos@sgarzare-redhat> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.174.148.223] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.187; envelope-from=longpeng2@huawei.com; helo=szxga01-in.huawei.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Reply-to: "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)" From: longpeng2--- via > -----Original Message----- > From: Stefano Garzarella [mailto:sgarzare@redhat.com] > Sent: Monday, March 7, 2022 5:13 PM > To: Longpeng (Mike, Cloud Infrastructure Service Product Dept.) > > Cc: stefanha@redhat.com; mst@redhat.com; cohuck@redhat.com; > pbonzini@redhat.com; Gonglei (Arei) ; Yechuan > ; Huangzhichao ; > qemu-devel@nongnu.org > Subject: Re: [PATCH v2 04/10] vdpa-dev: implement the instance_init/class= _init > interface >=20 > On Mon, Mar 07, 2022 at 08:55:35AM +0000, Longpeng (Mike, Cloud Infrastru= cture > Service Product Dept.) wrote: > > > > > >> -----Original Message----- > >> From: Stefano Garzarella [mailto:sgarzare@redhat.com] > >> Sent: Monday, March 7, 2022 4:10 PM > >> To: Longpeng (Mike, Cloud Infrastructure Service Product Dept.) > >> > >> Cc: stefanha@redhat.com; mst@redhat.com; cohuck@redhat.com; > >> pbonzini@redhat.com; Gonglei (Arei) ; Yechuan > >> ; Huangzhichao ; > >> qemu-devel@nongnu.org > >> Subject: Re: [PATCH v2 04/10] vdpa-dev: implement the > instance_init/class_init > >> interface > >> > >> Hi Longpeng, > >> > >> On Sat, Mar 05, 2022 at 06:06:42AM +0000, Longpeng (Mike, Cloud Infras= tructure > >> Service Product Dept.) wrote: > >> >Hi Stefano, > >> > > >> >> -----Original Message----- > >> >> From: Stefano Garzarella [mailto:sgarzare@redhat.com] > >> >> Sent: Wednesday, January 19, 2022 7:24 PM > >> >> To: Longpeng (Mike, Cloud Infrastructure Service Product Dept.) > >> >> > >> >> Cc: stefanha@redhat.com; mst@redhat.com; cohuck@redhat.com; > >> >> pbonzini@redhat.com; Gonglei (Arei) ; Yech= uan > >> >> ; Huangzhichao ; > >> >> qemu-devel@nongnu.org > >> >> Subject: Re: [PATCH v2 04/10] vdpa-dev: implement the > >> instance_init/class_init > >> >> interface > >> >> > >> >> On Mon, Jan 17, 2022 at 08:43:25PM +0800, Longpeng(Mike) via wrote: > >> >> >From: Longpeng > >> >> > > >> >> >Implements the .instance_init and the .class_init interface. > >> >> > > >> >> >Signed-off-by: Longpeng > >> >> >--- > >> >> > hw/virtio/vdpa-dev-pci.c | 52 ++++++++++++++++++++++- > >> >> > hw/virtio/vdpa-dev.c | 81 +++++++++++++++++++++++++++++++= ++++- > >> >> > include/hw/virtio/vdpa-dev.h | 5 +++ > >> >> > 3 files changed, 134 insertions(+), 4 deletions(-) > >> >> > > >> >> >diff --git a/hw/virtio/vdpa-dev-pci.c b/hw/virtio/vdpa-dev-pci.c > >> >> >index a5a7b528a9..257538dbdd 100644 > >> >> >--- a/hw/virtio/vdpa-dev-pci.c > >> >> >+++ b/hw/virtio/vdpa-dev-pci.c > >> >> >@@ -25,12 +25,60 @@ struct VhostVdpaDevicePCI { > >> >> > > >> >> > static void vhost_vdpa_device_pci_instance_init(Object *obj) > >> >> > { > >> >> >- return; > >> >> >+ VhostVdpaDevicePCI *dev =3D VHOST_VDPA_DEVICE_PCI(obj); > >> >> >+ > >> >> >+ virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev= ), > >> >> >+ TYPE_VHOST_VDPA_DEVICE); > >> >> >+ object_property_add_alias(obj, "bootindex", OBJECT(&dev->vdev= ), > >> >> >+ "bootindex"); > >> >> >+} > >> >> >+ > >> >> >+static Property vhost_vdpa_device_pci_properties[] =3D { > >> >> >+ DEFINE_PROP_END_OF_LIST(), > >> >> >+}; > >> >> >+ > >> >> >+static void > >> >> >+vhost_vdpa_device_pci_realize(VirtIOPCIProxy *vpci_dev, Error **e= rrp) > >> >> >+{ > >> >> >+ VhostVdpaDevicePCI *dev =3D VHOST_VDPA_DEVICE_PCI(vpci_dev); > >> >> >+ DeviceState *vdev =3D DEVICE(&dev->vdev); > >> >> >+ uint32_t vdev_id; > >> >> >+ uint32_t num_queues; > >> >> >+ int fd; > >> >> >+ > >> >> >+ fd =3D qemu_open(dev->vdev.vdpa_dev, O_RDWR, errp); > >> >> > >> >> We should use `vdpa_dev_fd` if the user set it, and I think we shou= ld > >> >> also check that `vdpa_dev` is not null. > >> >> > >> > > >> >The user can set both 'vdpa_dev_fd' and 'vdpa_dev' now, but how > >> >to make sure the 'vdpa_dev_fd' is really a FD of the 'vdpa_dev' ? > >> >Maybe we should remove 'vdpa_dev_fd' from > >> >'vhost_vdpa_device_properties', > >> >so the user can only set 'vdpa_dev'. > >> > >> This is the same problem that would happen if the user passed a path a= ny > >> file or device (e.g. /dev/null). I believe that on the first operation > >> on it (e.g. an ioctl) we would get an error and exit. > >> > > > >Yes, but how about the 'vdpa_dev_fd' refers to /dev/vhost-vdpa-0 but > >the 'vdpa_dev' refers to /dev/vhost-vdpa-1 ? Should we need to consider > >this case ? >=20 > I think we can do as we already do in vhost-scsi and vhost-vsock. If fd > is set we use that otherwise we use path. >=20 > If we want we can also print an error and exit if both are set, since > IMHO should be set only one of the two. >=20 Make sense, I'll try. Thanks. > Thanks, > Stefano