From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D755842A9D; Tue, 9 May 2023 07:31:59 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C548441148; Tue, 9 May 2023 07:31:59 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 69D33410D7 for ; Tue, 9 May 2023 07:31:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1683610317; x=1715146317; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=QU51BaKudEZv4uLKft+V5aXu5n/p2cNjQsrORiHc7HQ=; b=IiNaJ9o7xMsjK/Iv/5xWBbMLDZjw5IuXGglN0b2KnbMmSQ5jQq/Kw3R0 fDsPVgblaF5mSSM6HZGAfvhuVLTMY6EOy41A95hfiFy1wKwK2xxtqxavW Zqhl3lMpDBWgIKwyRjRqBzmg153B8F+16v59PO8RITxln3rIUWOtu2ead jZydZdYwz2doFu/nrbmg/a/AtCMwWOWd0UzzE9ZXf9HoeGLcg5NHfKCd+ 46j7BAHrw+PSqEbSrk+yT6rjBhAbQqB7rsP8ggj6EZPN76PYLRGZ/c1lh XmEb3Ln/TSPJXVE20dDMiZhD3VipM8NGRm92udUEfqtrCSH2z/UJm1Qo8 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10704"; a="329434850" X-IronPort-AV: E=Sophos;i="5.99,261,1677571200"; d="scan'208";a="329434850" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 May 2023 22:31:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10704"; a="729338541" X-IronPort-AV: E=Sophos;i="5.99,261,1677571200"; d="scan'208";a="729338541" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga008.jf.intel.com with ESMTP; 08 May 2023 22:31:44 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Mon, 8 May 2023 22:31:44 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Mon, 8 May 2023 22:31:44 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.171) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Mon, 8 May 2023 22:31:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I5SrPXwCIWUFPTP8SUEXfk3juU9FDHTAkm7NtcxbpcT46LtuugwPCxE6/jqo+D5VYaEUzWAFRcG2olNpPXTv6MruexlxrAbftiJFOMczsRRe0eQhknvcG+J9pcN7ZVWLWnQzT90BYJTGKqby4DUICVZEvBiGw3fuR3YP9+Gb+qVRTGPDLGq+BGy7n6GHPSlFvmGXIyITKyc2HWj+IOWO9SLqBq43nc0Vi3mIsEQ5H/SIEXRWbCbmixrXmbSKohWDBWMf8sID5U8p5/grhXJAY7l7DGAqjAhfHXkFbA07FF+FgP+l1Czjwn7/6ydNP8S4wuWilmmwD2z0Cwm+lsLcRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zVUNQZfZEP7BaX6PGhdfLwEL474n9SUE5cMRllw5hf8=; b=LU2URt2y3ik4PDfnTV/uEJsOZbs2O2Fr8J5MjvGNOtweBrJUEcE2uO5m/gPuEc28nGc9ai6VAyiXRT16b9oTbAKjrpfVLjH71mqjZeJ5t5ES8aiKSZvyk4EMO7FEHitjBIxapxiCcQu9kGX54iT+B4Rp3/WmegQBLiNcxaLytHpm904hxx9dl0UiTvGsTsbpSBfMYAMpmGmzIJLVgWHmFUwmV1NBQolkcllfhOARyAAQjTuwr3KTpUC0UZYqnFqTDLBitKb0uMN0y4CnGOh90Emye7sRTC8ztrFkpXk7kh/PtcWNTJdcWQkZ9qcikztJ/8USeCK53d2re5Mlo27yOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by IA1PR11MB6147.namprd11.prod.outlook.com (2603:10b6:208:3ed::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.32; Tue, 9 May 2023 05:31:42 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::5797:849:7a10:560d]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::5797:849:7a10:560d%6]) with mapi id 15.20.6363.032; Tue, 9 May 2023 05:31:42 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "david.marchand@redhat.com" , "mkp@redhat.com" , "fbl@redhat.com" , "jasowang@redhat.com" , "Liang, Cunming" , "Xie, Yongji" , "echaudro@redhat.com" , "eperezma@redhat.com" , "amorenoz@redhat.com" Subject: RE: [RFC 19/27] vhost: add VDUSE callback for IOTLB miss Thread-Topic: [RFC 19/27] vhost: add VDUSE callback for IOTLB miss Thread-Index: AQHZY+ektxG+HYdpiUWqA94RK0JYA69RpzJQ Date: Tue, 9 May 2023 05:31:42 +0000 Message-ID: References: <20230331154259.1447831-1-maxime.coquelin@redhat.com> <20230331154259.1447831-20-maxime.coquelin@redhat.com> In-Reply-To: <20230331154259.1447831-20-maxime.coquelin@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR11MB3504:EE_|IA1PR11MB6147:EE_ x-ms-office365-filtering-correlation-id: 45502b4c-68d1-4b99-5604-08db504eabad x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4awPRb7ad/S/8zfh4P7yGjZAfHGwybPK6U+r/kk/dI6wYhEJHZ+os7k1ixoFGUZgfWYx7XqxZ9tFnvZYpaOe3eAcSRviNYNJ8/RjjlpYr2iwZTU4WZpJCqaqjnttuZOERUEpcIdvZOOELiLFo3WXrx6UoI/8EGMaMBa6mxnAQ/TuHarpvhITvYwyBdCp4sguyhA0M/yS3/3FU/NjGUdQ0zeKltq0XVKij+yKVLwxyigTz2amlXAQnGjp+Y9WEp8kVDE+13bp7cByqSPWtH4+VXBxZ1nDzidH7N2lPF87YBYCzCmDAGA/cURmKf0kgTiRNX+SjeNjeGd4gCfXyQY+WGo8HuKBp2tasUSshCxKPlQq4Pa/ZI9lvDbzvMrcZtRncf5zKQwhCOXbUJcmy8RpcXISkPzRfioJAwKzrDbkTMfZNc710acxQLh59woQhpRmC94St6ZRfAV1K1NPl8fkiffSIPRl+78gXdfB/5aGE7RwkewnIqT2riC2gYuQJaItOs3GMRKh3dWJ33zN4vExn2HR0JVOJQI8de079zu+y+foUEzIN2syDQqVEtFmfsI6toqUVLsl9BjEzxohcQJeIrjPOmlhLy0o1fMXvYZWWzakNxc+tuEcQE/NrAgyb7yp1Je5vjbRf0vgcxkiqN1pXA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(39860400002)(346002)(136003)(376002)(366004)(396003)(451199021)(83380400001)(55016003)(86362001)(110136005)(921005)(122000001)(38100700002)(66476007)(2906002)(64756008)(66556008)(66446008)(76116006)(66946007)(316002)(186003)(478600001)(8676002)(71200400001)(8936002)(7696005)(53546011)(26005)(6506007)(9686003)(82960400001)(41300700001)(5660300002)(33656002)(52536014)(38070700005)(7416002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?Bd21vX/WkHg3uOFFaijAo1iErUxz4BvjguuJK72+HryqKc19Xwh/bKsZ8TRg?= =?us-ascii?Q?o4thSy1XIEwlM4Ilu/0XUJKfxgiCU4U9/SvnT0hVrjhW/W8yYGc2PLw8nlfM?= =?us-ascii?Q?1BtWyO/RD6WGkPSe0G3IQNGloN/zKXBfF/zcSoQcwIzuKoHNBy6oJSlX3TLC?= =?us-ascii?Q?7rUy8tLqziJcNN7HEAD+Tf3uoPAFe8wzSbuVmX+1Iup3fEX1k67wKrrR+FkI?= =?us-ascii?Q?xaDSoQYc6KyK1Nf4o1vkMZmNTtrCGlX9qUndklHxkttNUrvW7CGhjcygy+W9?= =?us-ascii?Q?wvWL19m+FYQCewJo/kchkPZKgZjGW3eBvB0nMWfnO05QU5X6fzcsbhlVUoVQ?= =?us-ascii?Q?W1jmeeEGE+4xAYiIdlmRTYDzpsn4T1rGnAvFh0hsNr4jmqpj3rtD/92iH/m6?= =?us-ascii?Q?WlX3AApKqPHhwcppyOO50FFR9ONmOyXar2HOowyQCYYi8zBsB50moSMh05+U?= =?us-ascii?Q?eYnR5IgHXT30MWUFzmd4gAI3ptGwMiJIG30h6XpxJgMZGI3kl3c4J4MGe6EA?= =?us-ascii?Q?aMsFMll9SLFSAprVpa8DhiUUgs/7Nh+6GR2XKdaQO5fFGqF3Ho5O0KXA6r3J?= =?us-ascii?Q?zraOgx7RsUqn15iKQ9UkcEU+USiMb58v5FIOgYjKZIhPTDPXrJlZ775jLQK6?= =?us-ascii?Q?3IvnXN2fLlOO7996tVk4kfXySKZyGV3C5zcjAXB8E2HNV4VJBv/64YZA+6ij?= =?us-ascii?Q?F+fBoML1bmIeZrEvUslmecHZJSUwTWKOlYwYyXPG9Znx6hxScW29W983mShs?= =?us-ascii?Q?EDXvmh6zHvi5lM8N6oPWKm3kxpK5/McchPdhBLkwIvTFBw7x6WoB8JmaM5oW?= =?us-ascii?Q?9hHbWSRuuVTSnv1C6Btg5mhtveQANSFMMML+CiEsKKMXfOXB2Ml2Kfr+RN+5?= =?us-ascii?Q?kqpb/XqIc3YZI6yKA2FphRPKZIcnHPHJNa7lDPb+klNBNzRUG9OAq4zx18pa?= =?us-ascii?Q?cAG0Y4nHh7L1v0KL4bpZBXQV6T8/WhVWLSwadFFsQsQKrcdDV9rsTWjvt5jz?= =?us-ascii?Q?dFpjrVnSXnbpb6KtVsRPtc1+vN9AClVuNi+JDA9Lb9+RqwU8e8ATB+UlF9l8?= =?us-ascii?Q?DMHTjC6zxI2VNgW83EB58ryfmrSEEXhzqs3SwGHMcFjxmzmuT81nJ6iKOxvB?= =?us-ascii?Q?rn+6i7+zbUBPGJtb1XEWOD4rIIqAxogRbUPLInMJ+c0kf5IyZ5R9miBErOoZ?= =?us-ascii?Q?oIV7vvuHXAA4u8rfifIRvuSrPm/Njl44ortfASHGGr8Nh9V3wilpDMZLK0MM?= =?us-ascii?Q?lGBHyapy4eYoIqrHGIsQ6GZ9oA+ic6R0lAzDqu80TDqoeWYvO3DjolEkuVaZ?= =?us-ascii?Q?GalJ4TFJZ0pVqmY4Ikz8mGiIFZcEs0pUO2mTn1m+QzVMUZh5hHuF9hAxVqiO?= =?us-ascii?Q?ws0u4rPcgypfIsXR1ZVzRqzGtlt0V9rdhs1bX+2jn51Eco7fgseNm8Xxl63t?= =?us-ascii?Q?o8CxP0G2GTGHu0gnX8zou/M6uPDEDCFW4MC6dg/3FW0wl2M+B844N8ufrLFu?= =?us-ascii?Q?m8GuNDEyjMYkH5Zk8dDs4i6diNnlV7ZrxpKrYTOYuGMWYb0+ChmSZ8W4Ig3Z?= =?us-ascii?Q?k8IjivcSz0EMXd240xIs9323FBep66GfYT7rgLyS?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 45502b4c-68d1-4b99-5604-08db504eabad X-MS-Exchange-CrossTenant-originalarrivaltime: 09 May 2023 05:31:42.0795 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: i4bRhMOrRKl9dsj0gEIF93yr+PyOMGeo/YCbvVGy7RDcKBUrNh2GvtNkfTCct/mIz0loPBqWmb68EO4L/HnO6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6147 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Maxime Coquelin > Sent: Friday, March 31, 2023 11:43 PM > To: dev@dpdk.org; david.marchand@redhat.com; Xia, Chenbo > ; mkp@redhat.com; fbl@redhat.com; > jasowang@redhat.com; Liang, Cunming ; Xie, Yongj= i > ; echaudro@redhat.com; eperezma@redhat.com; > amorenoz@redhat.com > Cc: Maxime Coquelin > Subject: [RFC 19/27] vhost: add VDUSE callback for IOTLB miss >=20 > This patch implements the VDUSE callback for IOTLB misses, > where it unmaps the pages from the invalidated IOTLB entry. >=20 > Signed-off-by: Maxime Coquelin > --- > lib/vhost/vduse.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 58 insertions(+) >=20 > diff --git a/lib/vhost/vduse.c b/lib/vhost/vduse.c > index 336761c97a..f46823f589 100644 > --- a/lib/vhost/vduse.c > +++ b/lib/vhost/vduse.c > @@ -13,9 +13,11 @@ >=20 > #include > #include > +#include >=20 > #include >=20 > +#include "iotlb.h" > #include "vduse.h" > #include "vhost.h" >=20 > @@ -30,7 +32,63 @@ > (1ULL << VIRTIO_F_IN_ORDER) | \ > (1ULL << VIRTIO_F_IOMMU_PLATFORM)) >=20 > +static int > +vduse_iotlb_miss(struct virtio_net *dev, uint64_t iova, uint8_t perm > __rte_unused) > +{ > + struct vduse_iotlb_entry entry; > + uint64_t size, page_size; > + struct stat stat; > + void *mmap_addr; > + int fd, ret; > + > + entry.start =3D iova; > + entry.last =3D iova + 1; > + > + ret =3D ioctl(dev->vduse_dev_fd, VDUSE_IOTLB_GET_FD, &entry); > + if (ret < 0) { > + VHOST_LOG_CONFIG(dev->ifname, ERR, "Failed to get IOTLB entry > for 0x%" PRIx64 "\n", > + iova); > + return -1; > + } > + > + fd =3D ret; > + > + VHOST_LOG_CONFIG(dev->ifname, DEBUG, "New IOTLB entry:\n"); > + VHOST_LOG_CONFIG(dev->ifname, DEBUG, "\tIOVA: %" PRIx64 " - %" > PRIx64 "\n", > + (uint64_t)entry.start, (uint64_t)entry.last); > + VHOST_LOG_CONFIG(dev->ifname, DEBUG, "\toffset: %" PRIx64 "\n", > (uint64_t)entry.offset); > + VHOST_LOG_CONFIG(dev->ifname, DEBUG, "\tfd: %d\n", fd); > + VHOST_LOG_CONFIG(dev->ifname, DEBUG, "\tperm: %x\n", entry.perm); > + > + size =3D entry.last - entry.start + 1; > + mmap_addr =3D mmap(0, size + entry.offset, entry.perm, MAP_SHARED, fd, > 0); > + if (!mmap_addr) { > + VHOST_LOG_CONFIG(dev->ifname, ERR, > + "Failed to mmap IOTLB entry for 0x%" PRIx64 "\n", > iova); > + ret =3D -1; > + goto close_fd; > + } > + > + ret =3D fstat(fd, &stat); > + if (ret < 0) { > + VHOST_LOG_CONFIG(dev->ifname, ERR, "Failed to get page > size.\n"); > + munmap(mmap_addr, entry.offset + size); > + goto close_fd; > + } > + page_size =3D (uint64_t)stat.st_blksize; > + > + vhost_user_iotlb_cache_insert(dev, entry.start, > (uint64_t)(uintptr_t)mmap_addr, > + entry.offset, size, page_size, entry.perm); > + > + ret =3D 0; > +close_fd: > + close(fd); > + > + return ret; > +} > + > static struct vhost_backend_ops vduse_backend_ops =3D { > + .iotlb_miss =3D vduse_iotlb_miss, > }; >=20 > int > -- > 2.39.2 Reviewed-by: Chenbo Xia =20