From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 1F629A0C43;
	Mon, 18 Oct 2021 12:02:09 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 7EEF540141;
	Mon, 18 Oct 2021 12:02:08 +0200 (CEST)
Received: from AZHDRRW-EX01.nvidia.com (azhdrrw-ex01.nvidia.com
 [20.51.104.162]) by mails.dpdk.org (Postfix) with ESMTP id 6E3194003C
 for <dev@dpdk.org>; Mon, 18 Oct 2021 12:02:07 +0200 (CEST)
Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.100)
 by mxs.oss.nvidia.com (10.13.234.36) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.858.15; Mon, 18 Oct 2021 03:02:06 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UD91BGclHLqZEi3/POzsRNBOySwFh7XE8o0U+8S+TUNwNqSMIOny6Mn8b0Nc5OrjE84MzwN6vfsH1l24RjvNm8NFzsKD5wgmzjyVL5pFX4eLTbB92T4oI5anlozHBsf3FCYzfkfBfnBwCDrn76f05ytugYbmeqUNj3spcn6XeUoX/BaKDkNsK55jGua6UKXk0VHShb7x5zvCrwgcrAATMe2qPHka8EGrsxFDAwrsICekHLnkwI8LnuoZTu+cJ+Mgvq0YmZVGhj3SKwuxXTA2n/3r/5VEt+atL+nerHqnE/0fKunsPG7DZHYqVV3bQgQqXNRhQsOFVBBbyiu9er2dmg==
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=UphSBoFfTfuTHhTNQZMcFBkI+EJtbSatMAPsNPGFyQw=;
 b=N1Vbg6yPaxvGCwkxJ3ycsme5qkoet96BrEOLcgP7nZtIypRP2DQ9+CUR8+ODmnrlrw8M7B/3KVSBqNPTRnerZECu9Iou9NqUtqBEn+a1tsOPYm7nWo7bbiyiaOhM6k2TTOSIgghjW6lroMr3mN/c2r3d+xk7FXgOZPdCg64y4Y8Vil6FovYxam8LtHmhMmHN8zKLomQQ4acMmHBKRAM49f35CoNLV/RZKj7i47JwzoM/mntjdPJqGLVj/NSQ+gEi69K+KgTxUCGEaJzpCFobQKWNjpGAP1rLhVUzry3bzEKTkmU/dS2d4yLtUG/0NdherXNUs9tpWSMLmp0PQeJeng==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com;
 dmarc=pass (p=quarantine sp=quarantine pct=100) action=none
 header.from=nvidia.com; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=UphSBoFfTfuTHhTNQZMcFBkI+EJtbSatMAPsNPGFyQw=;
 b=LkawAi/Scc5U0wXOHiXv80gUqSe37baKe4CBl6FsBZZnSyOwtgrvNYvjmapGvKgt1B/ZSB/rkQRQoSs6w2HIJ8vGVEcHoKTE1GPmQQjL1h8V/hpuoP55BG4ZEb8rvvVpBB7pwiytzikmHbXkdz1J7t9Q3kctfGBN18OEUAFCoElU1KzVHQQt8gXNkA6eMlPz7a1MAjr3IjtYMh4hhO1HgEHgb2id6w4VA7AFh6zuGSHy+V3xYfzrQSM0GHmUBH0/kemct/bALHC6AvaLX74NCD6/Qt8L0x3Q4Q+DOCVMzHp74+TD3G2icjxQ2e+NSkfLzke91SLNP2E74dirmLW6DQ==
Received: from MW3PR06CA0005.namprd06.prod.outlook.com (2603:10b6:303:2a::10)
 by DM6PR12MB5566.namprd12.prod.outlook.com (2603:10b6:5:20d::21) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.17; Mon, 18 Oct
 2021 10:02:04 +0000
Received: from CO1NAM11FT043.eop-nam11.prod.protection.outlook.com
 (2603:10b6:303:2a:cafe::63) by MW3PR06CA0005.outlook.office365.com
 (2603:10b6:303:2a::10) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.16 via Frontend
 Transport; Mon, 18 Oct 2021 10:02:04 +0000
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34)
 smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed)
 header.d=none;dpdk.org; dmarc=pass action=none header.from=nvidia.com;
Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates
 216.228.112.34 as permitted sender) receiver=protection.outlook.com;
 client-ip=216.228.112.34; helo=mail.nvidia.com;
Received: from mail.nvidia.com (216.228.112.34) by
 CO1NAM11FT043.mail.protection.outlook.com (10.13.174.193) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id
 15.20.4608.15 via Frontend Transport; Mon, 18 Oct 2021 10:02:04 +0000
Received: from nvidia.com (172.20.187.6) by HQMAIL107.nvidia.com
 (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Mon, 18 Oct
 2021 10:02:02 +0000
From: Dmitry Kozlyuk <dkozlyuk@oss.nvidia.com>
To: <dev@dpdk.org>
Date: Mon, 18 Oct 2021 13:01:37 +0300
Message-ID: <20211018100141.3290956-1-dkozlyuk@nvidia.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20211016200046.3176642-1-dkozlyuk@nvidia.com>
References: <20211016200046.3176642-1-dkozlyuk@nvidia.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [172.20.187.6]
X-ClientProxiedBy: HQMAIL111.nvidia.com (172.20.187.18) To
 HQMAIL107.nvidia.com (172.20.187.13)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 22a29c9f-02a7-4e5f-d1a6-08d9921e5668
X-MS-TrafficTypeDiagnostic: DM6PR12MB5566:
X-Microsoft-Antispam-PRVS: <DM6PR12MB556683D31B7FE67E02CB5E54B9BC9@DM6PR12MB5566.namprd12.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:10000;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: M2ubh+OPoEwbDdKjSpu8n923z7o8FFftdohX0hp7dXSryfq0fVRJ1QSlCGMAw7O7HvLPKeGnrXy9vTkZidewOzXm+VxJlYG2hwwB5zm6Mx9xzAooPaKL7hiv7kqO/7pl/o6KFFeXjAA+cSLKm6LSxPVYwWiz72kmbhJc6b+rBKfdFWUJqPPfKMSyeG+ynP9s50Xe5xxZuQ5bkM5J/RnxS5/hYKv2bB0h8sJ+Fz15MUt8jotsCMAwQ7kSUD5nVFaOx6y59VKq7hm/mCQF1jb1rjZa/48xJbBvSS3/8zdGNAjaH5pR9S5FtoXAlbc3APzoElkE6jje0voN3ibAvboFNEmQ/8C+0eET5PEcR1Ak+WFnM4Rc9qMqpd9KaYj1egLiJO3LjFMA58/zzAx2Hbj+9jlMuEK2HQLrYpMwdXElh2SfOlnN+iADnSDVVbq8oPWbx1HE5vZPnqvu3fG/pprLJBThkLSI/wRntgaPWvOBQKQ4OQHtX01BAk1RwNUZgBHeDlhHLWq7iBJBtu4FXoCDTmgOPdiPiIN8fHdjd38aMRL4SIEXYsP3Y0pAC4IDkf9JRFjGtalu4Dn0aZaGREwn1dslVhcneGiatn9fGGHVEVk0W3QYhytLRn+s8elDmUSdud2qVuNmqjcxWdyWl+3JQnWK4Euy/ISRUAZvGLYoQpXfJLelx3ZgPirEGgyqCxcu28xOGKSsrm63x+ZXQJ2BE4OKHqaATvGk3fqtvsP4fAPdffZnrLt+qjACYKA8BIrr86Q6Gk5TobAOArbzNt+ecoPfyMAq15fIgWs09Vea4p0=
X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE;
 SFS:(4636009)(36840700001)(46966006)(26005)(6666004)(7696005)(426003)(1076003)(47076005)(36756003)(6916009)(7636003)(86362001)(6286002)(356005)(336012)(8936002)(316002)(82310400003)(45080400002)(83380400001)(508600001)(36860700001)(2616005)(2906002)(966005)(16526019)(36906005)(8676002)(5660300002)(70206006)(70586007)(55016002)(186003);
 DIR:OUT; SFP:1101; 
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2021 10:02:04.3061 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 22a29c9f-02a7-4e5f-d1a6-08d9921e5668
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34];
 Helo=[mail.nvidia.com]
X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT043.eop-nam11.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB5566
Subject: [dpdk-dev] [PATCH v7 0/4] net/mlx5: implicit mempool registration
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

MLX5 hardware has its internal IOMMU where PMD registers the memory.
On the data path, PMD translates VA into a key consumed by the device
IOMMU.  It is impractical for the PMD to register all allocated memory
because of increased lookup cost both in HW and SW.  Most often mbuf
memory comes from mempools, so if PMD tracks them, it can almost always
have mbuf memory registered before an mbuf hits the PMD. This patchset
adds such tracking in the PMD and internal API to support it.

Please see [1] for the discussion of the patch 2/4
and how it can be useful outside of the MLX5 PMD.

[1]: http://inbox.dpdk.org/dev/CH0PR12MB509112FADB778AB28AF3771DB9F99@CH0PR12MB5091.namprd12.prod.outlook.com/

v7 (internal CI):
    1. Fix unit test compilation issues with GCC.
    2. Keep rte_mempool_event description non-internal: Doxygen treats
       it as not documented otherwise, "doc" target fails.
v6:
    Fix compilation issue in proc-info (CI).
v5:
    1. Change non-IO flag inference + various fixes (Andrew).
    2. Fix callback unregistration from secondary processes (Olivier).
    3. Support non-IO flag in proc-dump (David).
    4. Fix the usage of locks (Olivier).
    5. Avoid resource leaks in unit test (Olivier).
v4: (Andrew)
    1. Improve mempool event callbacks unit tests and documentation.
    2. Make MEMPOOL_F_NON_IO internal and automatically inferred.
       Add unit tests for the inference logic.
v3: Improve wording and naming; fix typos (Thomas).
v2 (internal review and testing):
    1. Change tracked mempool event from being created (CREATE) to being
       fully populated (READY), which is the state PMD is interested in.
    2. Unit test the new mempool callback API.
    3. Remove bogus "error" messages in normal conditions.
    4. Fixes in PMD.

Dmitry Kozlyuk (4):
  mempool: add event callbacks
  mempool: add non-IO flag
  common/mlx5: add mempool registration facilities
  net/mlx5: support mempool registration

 app/proc-info/main.c                   |   6 +-
 app/test/test_mempool.c                | 360 +++++++++++++++
 doc/guides/nics/mlx5.rst               |  13 +
 doc/guides/rel_notes/release_21_11.rst |   9 +
 drivers/common/mlx5/mlx5_common_mp.c   |  50 +++
 drivers/common/mlx5/mlx5_common_mp.h   |  14 +
 drivers/common/mlx5/mlx5_common_mr.c   | 580 +++++++++++++++++++++++++
 drivers/common/mlx5/mlx5_common_mr.h   |  17 +
 drivers/common/mlx5/version.map        |   5 +
 drivers/net/mlx5/linux/mlx5_mp_os.c    |  44 ++
 drivers/net/mlx5/linux/mlx5_os.c       |   4 +-
 drivers/net/mlx5/mlx5.c                | 152 +++++++
 drivers/net/mlx5/mlx5.h                |  10 +
 drivers/net/mlx5/mlx5_mr.c             | 120 ++---
 drivers/net/mlx5/mlx5_mr.h             |   2 -
 drivers/net/mlx5/mlx5_rx.h             |  21 +-
 drivers/net/mlx5/mlx5_rxq.c            |  13 +
 drivers/net/mlx5/mlx5_trigger.c        |  77 +++-
 drivers/net/mlx5/windows/mlx5_os.c     |   1 +
 lib/mempool/rte_mempool.c              | 134 ++++++
 lib/mempool/rte_mempool.h              |  64 +++
 lib/mempool/version.map                |   8 +
 22 files changed, 1586 insertions(+), 118 deletions(-)

-- 
2.25.1