[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250718115112.3881129-6-ymaman@nvidia.com>
Date: Fri, 18 Jul 2025 14:51:12 +0300
From: Yonatan Maman <ymaman@...dia.com>
To: Jérôme Glisse <jglisse@...hat.com>, Andrew Morton
<akpm@...ux-foundation.org>, Jason Gunthorpe <jgg@...pe.ca>, Leon Romanovsky
<leon@...nel.org>
CC: Lyude Paul <lyude@...hat.com>, Danilo Krummrich <dakr@...nel.org>, "David
Airlie" <airlied@...il.com>, Simona Vetter <simona@...ll.ch>, Alistair Popple
<apopple@...dia.com>, Ben Skeggs <bskeggs@...dia.com>, Michael Guralnik
<michaelgur@...dia.com>, Or Har-Toov <ohartoov@...dia.com>, Daisuke Matsuda
<dskmtsd@...il.com>, Shay Drory <shayd@...dia.com>, <linux-mm@...ck.org>,
<linux-rdma@...r.kernel.org>, <dri-devel@...ts.freedesktop.org>,
<nouveau@...ts.freedesktop.org>, <linux-kernel@...r.kernel.org>, "Yonatan
Maman" <Ymaman@...dia.com>, Gal Shalom <GalShalom@...dia.com>
Subject: [PATCH v2 5/5] RDMA/mlx5: Enabling ATS for ODP memory
From: Yonatan Maman <Ymaman@...dia.com>
ATS (Address Translation Services) mainly utilized to optimize PCI
Peer-to-Peer transfers and prevent bus failures. This change employed
ATS usage for ODP memory, to optimize DMA P2P for ODP memory. (e.g DMA
P2P for private device pages - ODP memory).
Signed-off-by: Yonatan Maman <Ymaman@...dia.com>
Signed-off-by: Gal Shalom <GalShalom@...dia.com>
---
drivers/infiniband/hw/mlx5/mlx5_ib.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/infiniband/hw/mlx5/mlx5_ib.h b/drivers/infiniband/hw/mlx5/mlx5_ib.h
index fde859d207ae..a7b7a565b7e8 100644
--- a/drivers/infiniband/hw/mlx5/mlx5_ib.h
+++ b/drivers/infiniband/hw/mlx5/mlx5_ib.h
@@ -1734,9 +1734,9 @@ static inline bool rt_supported(int ts_cap)
static inline bool mlx5_umem_needs_ats(struct mlx5_ib_dev *dev,
struct ib_umem *umem, int access_flags)
{
- if (!MLX5_CAP_GEN(dev->mdev, ats) || !umem->is_dmabuf)
- return false;
- return access_flags & IB_ACCESS_RELAXED_ORDERING;
+ if (MLX5_CAP_GEN(dev->mdev, ats) && (umem->is_dmabuf || umem->is_odp))
+ return access_flags & IB_ACCESS_RELAXED_ORDERING;
+ return false;
}
int set_roce_addr(struct mlx5_ib_dev *dev, u32 port_num,
--
2.34.1
Powered by blists - more mailing lists