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 CBC8342A90; Mon, 8 May 2023 05:05:06 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 88D3A40DDC; Mon, 8 May 2023 05:05:06 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id BD2A540A84; Mon, 8 May 2023 05:05:04 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3481udod027154; Sun, 7 May 2023 20:05:01 -0700 Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3qdpdpk85s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 07 May 2023 20:05:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CpyJ+9oyLh01V/XsfqjYdmIWLTb5N0Y5eh+3mXfPA8uEaIIGa/fR7iio5k7nAp1fowf3hzyDcGGrZFJF1jf5eYWXs18zxUx1/10bXV+n6nk7wA93qMxZmvds6NUOwTmsKCWO9itA+O5frfqX7Qai/ZlxVWqM5EXWUzX/1UbshQxd+unMemFjZxlcnp9R1zySB2D+tvN8j/rlznTHOcU8P1ClI+pg+CPhZYIDuH+lkNQ+0ItX3rF9fT4I/Lx3gaEmHA6B4AGxJgRfwLpt8Ms+OFisns1RDBJnX47+0UUp2spCXYZAeUb2CM33aXnfhdZI+KQF+5xlOFHBukD4ZDTR6A== 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=6MsZnRoka3Gge6BZ2VkwsAegupfSBGebGIUi8L/4HP0=; b=NO9vbpuGXL3FRsaDdbHO3A1mh5vgQNMwXUw0B8FmxTkscWWMxV4wNR7jqULG3d+utNyDH06+bu2OO6iBpxpzpA3AA/JZStaZjKqvbGP52I9ADfVXtZj+7Ez6rAQwb3VXDHsTIEkQjoJVUefYSPTQvF8xx29Fb81DmTtYXnfV1YkKYIi3N04VDC2GBY+uOa1QS32oJxHK2LVeq+5fZ/b6DixccWgzivi/iSz8aRsAcq9TWCKsJKRE0JbpiEdkX+phoJyuItIFXLgWJ2j7HVSWIRk7HhSQASixktA7jA59w/jjkjRuXZttt3AJYmibMZAMdEmOCyhz1OkmesCZTgWBLA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6MsZnRoka3Gge6BZ2VkwsAegupfSBGebGIUi8L/4HP0=; b=SlGSY4jIROH/CciH06R+dPm6xSe3okGL0Ur2gaBYphbMiXTFeOxiULqIrSvbYrZ9btNJxcG2eBPu3Qf5fi94HEMXnLJGiCvwaQMOl0ep7vo5y8fNqZV9YTJTahkiCFXx6v/SHQr8LoPDxv6sasXu8kF9Kde/SAMoc+yP4+Ttfa4= Received: from CO6PR18MB3860.namprd18.prod.outlook.com (2603:10b6:5:34d::12) by DM8PR18MB4455.namprd18.prod.outlook.com (2603:10b6:8:38::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.32; Mon, 8 May 2023 03:04:56 +0000 Received: from CO6PR18MB3860.namprd18.prod.outlook.com ([fe80::dbd:b5e0:b4b9:b7be]) by CO6PR18MB3860.namprd18.prod.outlook.com ([fe80::dbd:b5e0:b4b9:b7be%3]) with mapi id 15.20.6363.032; Mon, 8 May 2023 03:04:56 +0000 From: Sunil Kumar Kori To: "Xia, Chenbo" , "dev@dpdk.org" CC: "techboard@dpdk.org" , "thomas@monjalon.net" , "Richardson, Bruce" , "ferruh.yigit@amd.com" , "david.marchand@redhat.com" , "Cao, Yahui" , "Li, Miao" Subject: RE: [RFC 0/4] Support VFIO sparse mmap in PCI bus Thread-Topic: [RFC 0/4] Support VFIO sparse mmap in PCI bus Thread-Index: AQHZgVKuPLyuWx5rP0yc/0WxpnS2VK9PsOsw Date: Mon, 8 May 2023 03:04:56 +0000 Message-ID: References: <20230418053012.10667-1-chenbo.xia@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-rorf: true x-dg-ref: =?us-ascii?Q?PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcc2tvcmlcYXBw?= =?us-ascii?Q?ZGF0YVxyb2FtaW5nXDA5ZDg0OWI2LTMyZDMtNGE0MC04NWVlLTZiODRiYTI5?= =?us-ascii?Q?ZTM1Ylxtc2dzXG1zZy0xOTc3NWViYS1lZDRkLTExZWQtYjZjNi05NGU2Zjc5?= =?us-ascii?Q?MjY4OTBcYW1lLXRlc3RcMTk3NzVlYmMtZWQ0ZC0xMWVkLWI2YzYtOTRlNmY3?= =?us-ascii?Q?OTI2ODkwYm9keS50eHQiIHN6PSIxMDY4MiIgdD0iMTMzMjc5ODg2OTIzOTk2?= =?us-ascii?Q?MDY5IiBoPSJGR3ZMSlpzTG1MNjBXSVA1WVFDRWpmUXlHVkk9IiBpZD0iIiBi?= =?us-ascii?Q?bD0iMCIgYm89IjEiIGNpPSJjQUFBQUVSSFUxUlNSVUZOQ2dVQUFNZ01BQUNs?= =?us-ascii?Q?RzgvYldZSFpBVGkzekZVSFNwT3lPTGZNVlFkS2s3SVVBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBSEFBQUFCWURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?RUFBUUVCQUFBQWxwWDRZd0NBQVFBQUFBQUFBQUFBQUo0QUFBQmhBR1FBWkFC?= =?us-ascii?Q?eUFHVUFjd0J6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFF?= =?us-ascii?Q?QUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUdNQWRRQnpBSFFBYndCdEFGOEFjQUJs?= =?us-ascii?Q?QUhJQWN3QnZBRzRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFB?= =?us-ascii?Q?QUFDZUFBQUFZd0IxQUhNQWRBQnZBRzBBWHdCd0FHZ0Fid0J1QUdVQWJnQjFB?= =?us-ascii?Q?RzBBWWdCbEFISUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJQUFBQUFBSjRBQUFCakFIVUFj?= =?us-ascii?Q?d0IwQUc4QWJRQmZBSE1BY3dCdUFGOEFaQUJoQUhNQWFBQmZBSFlBTUFBeUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-refone: =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBR01B?= =?us-ascii?Q?ZFFCekFIUUFid0J0QUY4QWN3QnpBRzRBWHdCckFHVUFlUUIzQUc4QWNnQmtB?= =?us-ascii?Q?SE1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFRQUFBQUFBQUFBQ0FBQUFBQUNlQUFBQVl3QjFBSE1BZEFCdkFHMEFY?= =?us-ascii?Q?d0J6QUhNQWJnQmZBRzRBYndCa0FHVUFiQUJwQUcwQWFRQjBBR1VBY2dCZkFI?= =?us-ascii?Q?WUFNQUF5QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFB?= =?us-ascii?Q?QUlBQUFBQUFKNEFBQUJqQUhVQWN3QjBBRzhBYlFCZkFITUFjd0J1QUY4QWN3?= =?us-ascii?Q?QndBR0VBWXdCbEFGOEFkZ0F3QURJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFH?= =?us-ascii?Q?UUFiQUJ3QUY4QWN3QnJBSGtBY0FCbEFGOEFZd0JvQUdFQWRBQmZBRzBBWlFC?= =?us-ascii?Q?ekFITUFZUUJuQUdVQVh3QjJBREFBTWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQVFBQUFBQUFBQUFDQUFBQUFBQ2VBQUFBWkFCc0FIQUFYd0J6QUd3?= =?us-ascii?Q?QVlRQmpBR3NBWHdCakFHZ0FZUUIwQUY4QWJRQmxBSE1BY3dCaEFHY0FaUUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reftwo: =?us-ascii?Q?QUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQmtBR3dBY0FCZkFI?= =?us-ascii?Q?UUFaUUJoQUcwQWN3QmZBRzhBYmdCbEFHUUFjZ0JwQUhZQVpRQmZBR1lBYVFC?= =?us-ascii?Q?c0FHVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFB?= =?us-ascii?Q?QUFBQUFBQWdBQUFBQUFuZ0FBQUdVQWJRQmhBR2tBYkFCZkFHRUFaQUJrQUhJ?= =?us-ascii?Q?QVpRQnpBSE1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQURRQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFD?= =?us-ascii?Q?ZUFBQUFiUUJoQUhJQWRnQmxBR3dBWHdCd0FISUFid0JxQUdVQVl3QjBBRjhB?= =?us-ascii?Q?YmdCaEFHMEFaUUJ6QUY4QWNnQmxBSE1BZEFCeUFHa0FZd0IwQUdVQVpBQmZB?= =?us-ascii?Q?R0VBYkFCdkFHNEFaUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJQUFBQUFBSjRBQUFCdEFHRUFjZ0Iy?= =?us-ascii?Q?QUdVQWJBQmZBSEFBY2dCdkFHb0FaUUJqQUhRQVh3QnVBR0VBYlFCbEFITUFY?= =?us-ascii?Q?d0J5QUdVQWN3QjBBSElBYVFCakFIUUFaUUJrQUY4QWFBQmxBSGdBWXdCdkFH?= =?us-ascii?Q?UUFaUUJ6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVB?= =?us-ascii?Q?QUFBQUFBQUFBZ0FBQUFBQW5nQUFBRzBBWVFCeUFIWUFaUUJzQUd3QVh3QmhB?= =?us-ascii?Q?SElBYlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQ0FBQUFB?= =?us-ascii?Q?QUNlQUFBQWJRQmhBSElBZGdCbEFHd0FiQUJmQUhBQWNnQnZBR29BWlFCakFI?= =?us-ascii?Q?UUFYd0JqQUc4QVpBQmxBSE1BQUFBQUFBQUFB?= x-dg-refthree: =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUlB?= =?us-ascii?Q?QUFBQUFKNEFBQUJ0QUdFQWNnQjJBR1VBYkFCc0FGOEFjQUJ5QUc4QWFnQmxB?= =?us-ascii?Q?R01BZEFCZkFHTUFid0JrQUdVQWN3QmZBR1FBYVFCakFIUUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFHMEFZ?= =?us-ascii?Q?UUJ5QUhZQVpRQnNBR3dBWHdCd0FISUFid0JxQUdVQVl3QjBBRjhBYmdCaEFH?= =?us-ascii?Q?MEFaUUJ6QUY4QWNnQmxBSE1BZEFCeUFHa0FZd0IwQUdVQVpBQmZBRzBBWVFC?= =?us-ascii?Q?eUFIWUFaUUJzQUd3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQVFBQUFBQUFBQUFDQUFBQUFBQ2VBQUFBYlFCaEFISUFkZ0JsQUd3QWJB?= =?us-ascii?Q?QmZBSEFBY2dCdkFHb0FaUUJqQUhRQVh3QnVBR0VBYlFCbEFITUFYd0J5QUdV?= =?us-ascii?Q?QWN3QjBBSElBYVFCakFIUUFaUUJrQUY4QWJRQmhBSElBZGdCbEFHd0FiQUJm?= =?us-ascii?Q?QUc4QWNnQmZBR0VBY2dCdEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFB?= =?us-ascii?Q?SUFBQUFBQUo0QUFBQnRBR0VBY2dCMkFHVUFiQUJzQUY4QWRBQmxBSElBYlFC?= =?us-ascii?Q?cEFHNEFkUUJ6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUcw?= =?us-ascii?Q?QVlRQnlBSFlBWlFCc0FHd0FYd0IzQUc4QWNnQmtBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?us-ascii?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reffour: QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFBPSIvPjwvbWV0YT4= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB3860:EE_|DM8PR18MB4455:EE_ x-ms-office365-filtering-correlation-id: a6616721-9670-4e9f-dc9e-08db4f710078 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aTKrNnX+J5OUUgFf03zZZvWbNwSIK5Gzb2D5RyH8uRmp5ZH+gVyFX8VQzcan9Fno48rmRFIRuYesE1qTTWJDLZi61zEH8+vXlAFD2FoutWG7scC48dIRG3hGybLJmqpXSH1FYSOdxXS6Y7QQouFEOVz9wKr2LjLuisu2wgAH8BxvzF/NLzAmJuftdXVOnbmGyq7/jtU6n1nSnTiEEQF+xSYNin7N3LZnX1+A/uMwSx+Tmzl+ENRzUllWZLOvG0EDSHaDvfUEzDCa8ZI++tAb2hN2fxpLUxCK1sleoYYbqvdUCZygEroSFHcx5u1FtiJBOLY7eXpTw7EK5RGN51IKMd+aOCbOBkoNb0P23Pg3eC+fvRHC6OUb5aW3ICC1hNIjaIOKPwOSjZXefR0FmhH5BJLegGK309BVIPyqoB+5MGX9nZeKWUZCFGX15H7JfIN9rZiPVxFmorWP6JOtza0iS0HX2ea5kk1pOe13x15RuFmex5ZFAejOewlTR5YcnQhaJx9pbPlT1C+1qthRm/63bZzePUVeCwO3XZKFGswBkmMo72lqu6+5h51EioIRiBFfohR0kHreB5EToSTnVBEf/1+/Mk1vHfSBme6cf4VdcksToJjDKdmNzAN76y22k0Jz x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR18MB3860.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(136003)(346002)(376002)(39850400004)(366004)(451199021)(76116006)(66946007)(66556008)(66476007)(66446008)(64756008)(4326008)(478600001)(7696005)(316002)(110136005)(54906003)(86362001)(33656002)(71200400001)(83380400001)(53546011)(9686003)(6506007)(26005)(8676002)(8936002)(5660300002)(52536014)(41300700001)(2906002)(55016003)(38070700005)(186003)(38100700002)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ZHnbr1/KZYmeFiuc0KJyO3vA2/vBtjCUYljtKUeVrFWoAjE9dkHi5rN361X0?= =?us-ascii?Q?DQ+EU2S9oOSBVHCxKWbUa2wcvEcHB0PuVCINGE1+1oc2ufIhY54HuUaqNodq?= =?us-ascii?Q?3zWD9tNVwZX18+5knmT9s5+kGOgDPoGDydzefw/+1jw9L8w8hk0+6kCq1w4V?= =?us-ascii?Q?D6aYOdJNgGTH19FU3qlMa870BqOx3jxH78Pwmo1wr8lfWumYx/bpJI2OJ6r3?= =?us-ascii?Q?ZwUOaY+Nm1Uzi9G/PbSCxyhsBskIbJ2Nm3oGUkiXJrOGHo84cab0shnPA7qF?= =?us-ascii?Q?KCAi9Z0ESRS7J6UWIYAa0vWqRjiVQXTl1Dx6j3IOeTzuE4yvqJ0L3wyjVVN+?= =?us-ascii?Q?/VZvGkSO+rm8y+l4iNDInleti3jY9IJxib6PfxB4ZnEu+eNs2gqCQeYxNVIV?= =?us-ascii?Q?Toft5D4XGT9ek9Fmyej4g/0QrT7a65Iq60bx2qNaQysTbgxncw19P6kDT28q?= =?us-ascii?Q?QN89CEFEVVrphsUEsUqB0cBTUPgFxbhgvd8Qf/p93sMvUX2GM+dDZXru0NKs?= =?us-ascii?Q?Tn2UGoG9qeAkoe6+7F/gxYGpkwMfpNfmNi7gEjSdADxh/8Maqv8IrNhscI4N?= =?us-ascii?Q?7ikjXYuqj8BwpCYaXXUnVo9tnVQT0CpX25DIfUosN6j6z/VfDfe3LjLOmj5z?= =?us-ascii?Q?8zF7HzLeBOLbErqd8xC0AyrtmKViCSixVSv+pPLkKDnLJbQ+dmKQkKO+sHN/?= =?us-ascii?Q?crX7qe2Ww4g7ZRdDudYLZL8SwRpWWDG2Sm50vRdZ5NGpzCX89HICzM8HDlp/?= =?us-ascii?Q?lCqyjydhkYQd0mB185cVypnmW2ZiEMx4l9eatq9b1+oJhOI5mVEhydFA6L6O?= =?us-ascii?Q?C00t63CGJrhiXuDA1IhAdANxvN0agBZSK0SiFpaXHS3Rl6gGunTIgM3mymkG?= =?us-ascii?Q?ygI/RPwtHfrUvvj9gSObaOk3vG+D7qUn0qLJ8I4USiP+QIB0x80/o3lwXq2+?= =?us-ascii?Q?7SUueM//PscYEgAnB1As9754yM8G1vWsf8WyXDKfrvuf2feO/MTt3tXcnqcc?= =?us-ascii?Q?4ROMyPaJYJml20gf9A2JAlgPUfUCIs+TvuaR/YBvuJdx4Boxc12Y64Nb+TKN?= =?us-ascii?Q?3gW4zCQRtZ96LYCJyRswxm1/gTq48HWiQlBxlxUATIJQSWSym2OGpKLk0f8g?= =?us-ascii?Q?psxSyNCso+GIAg5KFG4AwUU1eOz8lUnX0yoWk3FoQLQ9ID5013TlJkEfJweN?= =?us-ascii?Q?0BTM9ZzA5VEVAbQZZ8j39KAOWBbnS46TEe/+ANN6SU9/N7Cnt0YWfreKMrXG?= =?us-ascii?Q?7nW+OHR+QyRlhtBkzqDTsNy7rd3/7io/v25IstCN6wx2SaloOYAEIWop3J6P?= =?us-ascii?Q?n+N0g8Qgd1uKWJ4FOCNBO+0/Urx3tVt7wIVIs4cEoxEdSq/ylpxmEsJp85ad?= =?us-ascii?Q?EwPHCmxuBOujdFIJkB3Wu/JFBXH4E/xeONh84bk0wLCVa+c4TcTwh2j1nvTx?= =?us-ascii?Q?zI8J+Q9WPo76LkOPuv/YHNrqkmJhKLV8paeTb8VgUYYL2Lc4YfI1GTsobAj/?= =?us-ascii?Q?NTidFOvIkhcj2JzdVp6Y1VKwAV1XpYfgnZy9lghdfpdMEKoCmaNVjO/yDOJT?= =?us-ascii?Q?lKy3Ub4OWSoApmPEL3c=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR18MB3860.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6616721-9670-4e9f-dc9e-08db4f710078 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 May 2023 03:04:56.0728 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kFp5TkM2dRvcIqzrlUiwcujqIZaf9z8eqxJ7ECpDPZvc4tmkruEtcJpC0i9YfFLem0qZANwUsI2Cr3h91ef15w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR18MB4455 X-Proofpoint-GUID: xLO5Jbf9ov6tavlImZVD5Jdrp2Tw-5_E X-Proofpoint-ORIG-GUID: xLO5Jbf9ov6tavlImZVD5Jdrp2Tw-5_E X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-07_10,2023-05-05_01,2023-02-09_01 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 +1 for option 2. Thanks & Regards Sunil Kumar Kori > -----Original Message----- > From: Xia, Chenbo > Sent: Monday, May 8, 2023 7:43 AM > To: dev@dpdk.org > Cc: Sunil Kumar Kori ; techboard@dpdk.org; > thomas@monjalon.net; Richardson, Bruce ; > ferruh.yigit@amd.com; david.marchand@redhat.com; Cao, Yahui > ; Li, Miao > Subject: [EXT] RE: [RFC 0/4] Support VFIO sparse mmap in PCI bus >=20 > External Email >=20 > ---------------------------------------------------------------------- > Gentle ping for some comments.. >=20 > After rethink, personally I may choose option 2 as it will have no driver= API > change for PMDs and as I look at current code, that's how we do when MSI-= X > table can't be mmap-ed. >=20 > Thanks, > Chenbo >=20 > > -----Original Message----- > > From: Chenbo Xia > > Sent: Tuesday, April 18, 2023 1:30 PM > > To: dev@dpdk.org > > Cc: skori@marvell.com > > Subject: [RFC 0/4] Support VFIO sparse mmap in PCI bus > > > > This series introduces a VFIO standard capability, called sparse mmap > > to PCI bus. In linux kernel, it's defined as > > VFIO_REGION_INFO_CAP_SPARSE_MMAP. Sparse mmap means instead of > mmap > > whole BAR region into DPDK process, only mmap part of the BAR region > > after getting sparse mmap information from kernel. > > For the rest of BAR region that is not mmap-ed, DPDK process can use > > pread/pwrite system calls to access. Sparse mmap is useful when kernel > > does not want userspace to mmap whole BAR region, or kernel wants to > > control over access to specific BAR region. Vendors can choose to > > enable this feature or not for their devices in their specific kernel > > modules. > > > > In this patchset: > > > > Patch 1-3 is mainly for introducing BAR access APIs so that driver > > could use them to access specific BAR using pread/pwrite system calls > > when part of the BAR is not mmap-able. > > > > Patch 4 adds the VFIO sparse mmap support finally. A question is for > > all sparse mmap regions, should they be mapped to a continuous virtual > > address region that follows device-specific BAR layout or not. In > > theory, there could be three options to support this feature. > > > > Option 1: Map sparse mmap regions independently > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D > > In this approach, we mmap each sparse mmap region one by one and each > > region could be located anywhere in process address space. But > > accessing the mmaped BAR will not be as easy as 'bar_base_address + > > bar_offset', driver needs to check the sparse mmap information to > > access specific BAR register. > > > > Patch 4 in this patchset adopts this option. Driver API change is > > introduced in bus_pci_driver.h. Corresponding changes in all drivers > > are also done and currently I am assuming drivers do not support this > > feature so they will not check the 'is_sparse' flag but assumes it to > > be false. Note that it will not break any driver and each vendor can > > add related logic when they start to support this feature. This is > > only because I don't want to introduce complexity to drivers that do > > not want to support this feature. > > > > Option 2: Map sparse mmap regions based on device-specific BAR layout > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =3D=3D=3D=3D=3D=3D > > In this approach, the sparse mmap regions are mapped to continuous > > virtual address region that follows device-specific BAR layout. > > For example, the BAR size is 0x4000 and only 0-0x1000 (sparse mmap > > region #1) and 0x3000-0x4000 (sparse mmap region #2) could be mmaped. > > Region #1 will be mapped at 'base_addr' and region #2 will be mapped > > at 'base_addr + 0x3000'. The good thing is if we implement like this, > > driver can still access all BAR registers using 'bar_base_address + > > bar_offset' way and we don't need to introduce any driver API change. > > But the address space range 'base_addr + 0x1000' to 'base_addr + > > 0x3000' may need to be reserved so it could result in waste of address > > space or memory (when we use MAP_ANONYMOUS and MAP_PRIVATE flag > to > > reserve this range). Meanwhile, driver needs to know which part of BAR > > is mmaped (this is possible since the range is defined by vendor's > > specific kernel module). > > > > Option 3: Support both option 1 & 2 > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > We could define a driver flag to let driver choose which way it > > perfers since either option has its own Pros & Cons. > > > > Please share your comments, Thanks! > > > > > > Chenbo Xia (4): > > bus/pci: introduce an internal representation of PCI device > > bus/pci: avoid depending on private value in kernel source > > bus/pci: introduce helper for MMIO read and write > > bus/pci: add VFIO sparse mmap support > > > > drivers/baseband/acc/rte_acc100_pmd.c | 6 +- > > drivers/baseband/acc/rte_vrb_pmd.c | 6 +- > > .../fpga_5gnr_fec/rte_fpga_5gnr_fec.c | 6 +- > > drivers/baseband/fpga_lte_fec/fpga_lte_fec.c | 6 +- > > drivers/bus/pci/bsd/pci.c | 43 +- > > drivers/bus/pci/bus_pci_driver.h | 24 +- > > drivers/bus/pci/linux/pci.c | 91 +++- > > drivers/bus/pci/linux/pci_init.h | 14 +- > > drivers/bus/pci/linux/pci_uio.c | 34 +- > > drivers/bus/pci/linux/pci_vfio.c | 445 ++++++++++++++---- > > drivers/bus/pci/pci_common.c | 57 ++- > > drivers/bus/pci/pci_common_uio.c | 12 +- > > drivers/bus/pci/private.h | 25 +- > > drivers/bus/pci/rte_bus_pci.h | 48 ++ > > drivers/bus/pci/version.map | 3 + > > drivers/common/cnxk/roc_dev.c | 4 +- > > drivers/common/cnxk/roc_dpi.c | 2 +- > > drivers/common/cnxk/roc_ml.c | 22 +- > > drivers/common/qat/dev/qat_dev_gen1.c | 2 +- > > drivers/common/qat/dev/qat_dev_gen4.c | 4 +- > > drivers/common/sfc_efx/sfc_efx.c | 2 +- > > drivers/compress/octeontx/otx_zip.c | 4 +- > > drivers/crypto/ccp/ccp_dev.c | 4 +- > > drivers/crypto/cnxk/cnxk_cryptodev_ops.c | 2 +- > > drivers/crypto/nitrox/nitrox_device.c | 4 +- > > drivers/crypto/octeontx/otx_cryptodev_ops.c | 6 +- > > drivers/crypto/virtio/virtio_pci.c | 6 +- > > drivers/dma/cnxk/cnxk_dmadev.c | 2 +- > > drivers/dma/hisilicon/hisi_dmadev.c | 6 +- > > drivers/dma/idxd/idxd_pci.c | 4 +- > > drivers/dma/ioat/ioat_dmadev.c | 2 +- > > drivers/event/dlb2/pf/dlb2_main.c | 16 +- > > drivers/event/octeontx/ssovf_probe.c | 38 +- > > drivers/event/octeontx/timvf_probe.c | 18 +- > > drivers/event/skeleton/skeleton_eventdev.c | 2 +- > > drivers/mempool/octeontx/octeontx_fpavf.c | 6 +- > > drivers/net/ark/ark_ethdev.c | 4 +- > > drivers/net/atlantic/atl_ethdev.c | 2 +- > > drivers/net/avp/avp_ethdev.c | 20 +- > > drivers/net/axgbe/axgbe_ethdev.c | 4 +- > > drivers/net/bnx2x/bnx2x_ethdev.c | 6 +- > > drivers/net/bnxt/bnxt_ethdev.c | 8 +- > > drivers/net/cpfl/cpfl_ethdev.c | 4 +- > > drivers/net/cxgbe/cxgbe_ethdev.c | 2 +- > > drivers/net/cxgbe/cxgbe_main.c | 2 +- > > drivers/net/cxgbe/cxgbevf_ethdev.c | 2 +- > > drivers/net/cxgbe/cxgbevf_main.c | 2 +- > > drivers/net/e1000/em_ethdev.c | 4 +- > > drivers/net/e1000/igb_ethdev.c | 4 +- > > drivers/net/ena/ena_ethdev.c | 4 +- > > drivers/net/enetc/enetc_ethdev.c | 2 +- > > drivers/net/enic/enic_main.c | 4 +- > > drivers/net/fm10k/fm10k_ethdev.c | 2 +- > > drivers/net/gve/gve_ethdev.c | 4 +- > > drivers/net/hinic/base/hinic_pmd_hwif.c | 14 +- > > drivers/net/hns3/hns3_ethdev.c | 2 +- > > drivers/net/hns3/hns3_ethdev_vf.c | 2 +- > > drivers/net/hns3/hns3_rxtx.c | 4 +- > > drivers/net/i40e/i40e_ethdev.c | 2 +- > > drivers/net/iavf/iavf_ethdev.c | 2 +- > > drivers/net/ice/ice_dcf.c | 2 +- > > drivers/net/ice/ice_ethdev.c | 2 +- > > drivers/net/idpf/idpf_ethdev.c | 4 +- > > drivers/net/igc/igc_ethdev.c | 2 +- > > drivers/net/ionic/ionic_dev_pci.c | 2 +- > > drivers/net/ixgbe/ixgbe_ethdev.c | 4 +- > > drivers/net/liquidio/lio_ethdev.c | 4 +- > > drivers/net/nfp/nfp_ethdev.c | 2 +- > > drivers/net/nfp/nfp_ethdev_vf.c | 6 +- > > drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c | 4 +- > > drivers/net/ngbe/ngbe_ethdev.c | 2 +- > > drivers/net/octeon_ep/otx_ep_ethdev.c | 2 +- > > drivers/net/octeontx/base/octeontx_pkivf.c | 6 +- > > drivers/net/octeontx/base/octeontx_pkovf.c | 12 +- > > drivers/net/qede/qede_main.c | 6 +- > > drivers/net/sfc/sfc.c | 2 +- > > drivers/net/thunderx/nicvf_ethdev.c | 2 +- > > drivers/net/txgbe/txgbe_ethdev.c | 2 +- > > drivers/net/txgbe/txgbe_ethdev_vf.c | 2 +- > > drivers/net/virtio/virtio_pci.c | 6 +- > > drivers/net/vmxnet3/vmxnet3_ethdev.c | 4 +- > > drivers/raw/cnxk_bphy/cnxk_bphy.c | 10 +- > > drivers/raw/cnxk_bphy/cnxk_bphy_cgx.c | 6 +- > > drivers/raw/ifpga/afu_pmd_n3000.c | 4 +- > > drivers/raw/ifpga/ifpga_rawdev.c | 6 +- > > drivers/raw/ntb/ntb_hw_intel.c | 8 +- > > drivers/vdpa/ifc/ifcvf_vdpa.c | 6 +- > > drivers/vdpa/sfc/sfc_vdpa_hw.c | 2 +- > > drivers/vdpa/sfc/sfc_vdpa_ops.c | 2 +- > > lib/eal/include/rte_vfio.h | 1 - > > 90 files changed, 853 insertions(+), 352 deletions(-) > > > > -- > > 2.17.1