* [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned
@ 2024-02-07 16:32 Shiraz Saleem
2024-02-07 16:32 ` [PATCH 6.1.y] RDMA/irdma: Fix support for 64k pages Shiraz Saleem
2024-02-11 16:26 ` [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned Sasha Levin
0 siblings, 2 replies; 7+ messages in thread
From: Shiraz Saleem @ 2024-02-07 16:32 UTC (permalink / raw)
To: stable; +Cc: Mike Marciniszyn, Shiraz Saleem
From: Mike Marciniszyn <mike.marciniszyn@intel.com>
[ Upstream commit 0a5ec366de7e94192669ba08de6ed336607fd282 ]
The SQ is shared for between kernel and used by storing the kernel page
pointer and passing that to a kmap_atomic().
This then requires that the alignment is PAGE_SIZE aligned.
Fix by adding an iWarp specific alignment check.
The patch needed to be reworked because the separate routines
present upstream are not there in older irdma drivers.
Fixes: e965ef0e7b2c ("RDMA/irdma: Split QP handler into irdma_reg_user_mr_type_qp")
Link: https://lore.kernel.org/r/20231129202143.1434-3-shiraz.saleem@intel.com
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
---
drivers/infiniband/hw/irdma/verbs.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
index 447e1bcc82a3..3c437c8070b6 100644
--- a/drivers/infiniband/hw/irdma/verbs.c
+++ b/drivers/infiniband/hw/irdma/verbs.c
@@ -2845,6 +2845,13 @@ static struct ib_mr *irdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 len,
switch (req.reg_type) {
case IRDMA_MEMREG_TYPE_QP:
+ /* iWarp: Catch page not starting on OS page boundary */
+ if (!rdma_protocol_roce(&iwdev->ibdev, 1) &&
+ ib_umem_offset(iwmr->region)) {
+ err = -EINVAL;
+ goto error;
+ }
+
total = req.sq_pages + req.rq_pages + shadow_pgcnt;
if (total > iwmr->page_cnt) {
err = -EINVAL;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 6.1.y] RDMA/irdma: Fix support for 64k pages
2024-02-07 16:32 [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned Shiraz Saleem
@ 2024-02-07 16:32 ` Shiraz Saleem
2024-02-11 16:26 ` [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned Sasha Levin
1 sibling, 0 replies; 7+ messages in thread
From: Shiraz Saleem @ 2024-02-07 16:32 UTC (permalink / raw)
To: stable; +Cc: Mike Marciniszyn, Shiraz Saleem
From: Mike Marciniszyn <mike.marciniszyn@intel.com>
[ Upstream commit 03769f72d66edab82484449ed594cb6b00ae0223 ]
Virtual QP and CQ require a 4K HW page size but the driver passes
PAGE_SIZE to ib_umem_find_best_pgsz() instead.
Fix this by using the appropriate 4k value in the bitmap passed to
ib_umem_find_best_pgsz().
Patch reworked to handle the different pre-split context.
Fixes: 693a5386eff0 ("RDMA/irdma: Split mr alloc and free into new functions")
Link: https://lore.kernel.org/r/20231129202143.1434-4-shiraz.saleem@intel.com
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
---
drivers/infiniband/hw/irdma/verbs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
index 3c437c8070b6..01faec6ea528 100644
--- a/drivers/infiniband/hw/irdma/verbs.c
+++ b/drivers/infiniband/hw/irdma/verbs.c
@@ -2825,7 +2825,7 @@ static struct ib_mr *irdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 len,
iwmr->ibmr.pd = pd;
iwmr->ibmr.device = pd->device;
iwmr->ibmr.iova = virt;
- iwmr->page_size = PAGE_SIZE;
+ iwmr->page_size = SZ_4K;
if (req.reg_type == IRDMA_MEMREG_TYPE_MEM) {
iwmr->page_size = ib_umem_find_best_pgsz(region,
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned
2024-02-07 16:32 [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned Shiraz Saleem
2024-02-07 16:32 ` [PATCH 6.1.y] RDMA/irdma: Fix support for 64k pages Shiraz Saleem
@ 2024-02-11 16:26 ` Sasha Levin
2024-02-12 13:02 ` Marciniszyn, Mike
1 sibling, 1 reply; 7+ messages in thread
From: Sasha Levin @ 2024-02-11 16:26 UTC (permalink / raw)
To: Shiraz Saleem; +Cc: stable, Mike Marciniszyn
On Wed, Feb 07, 2024 at 10:32:39AM -0600, Shiraz Saleem wrote:
>From: Mike Marciniszyn <mike.marciniszyn@intel.com>
>
>[ Upstream commit 0a5ec366de7e94192669ba08de6ed336607fd282 ]
>
>The SQ is shared for between kernel and used by storing the kernel page
>pointer and passing that to a kmap_atomic().
>
>This then requires that the alignment is PAGE_SIZE aligned.
>
>Fix by adding an iWarp specific alignment check.
>
>The patch needed to be reworked because the separate routines
>present upstream are not there in older irdma drivers.
>
>Fixes: e965ef0e7b2c ("RDMA/irdma: Split QP handler into irdma_reg_user_mr_type_qp")
Is this fixes tag incorrect? there's no e965ef0e7b2c in 6.1.
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 7+ messages in thread* RE: [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned
2024-02-11 16:26 ` [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned Sasha Levin
@ 2024-02-12 13:02 ` Marciniszyn, Mike
2024-02-13 14:55 ` Greg KH
0 siblings, 1 reply; 7+ messages in thread
From: Marciniszyn, Mike @ 2024-02-12 13:02 UTC (permalink / raw)
To: Sasha Levin, Saleem, Shiraz; +Cc: stable@vger.kernel.org
> >Fixes: e965ef0e7b2c ("RDMA/irdma: Split QP handler into
> >irdma_reg_user_mr_type_qp")
>
> Is this fixes tag incorrect? there's no e965ef0e7b2c in 6.1.
>
The fixes was correct for upstream. The context change forced the re-port of patch and the Fixes is not appropriate for the older context.
You can drop if you want.
Mike
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned
2024-02-12 13:02 ` Marciniszyn, Mike
@ 2024-02-13 14:55 ` Greg KH
2024-02-13 16:20 ` Marciniszyn, Mike
0 siblings, 1 reply; 7+ messages in thread
From: Greg KH @ 2024-02-13 14:55 UTC (permalink / raw)
To: Marciniszyn, Mike; +Cc: Sasha Levin, Saleem, Shiraz, stable@vger.kernel.org
On Mon, Feb 12, 2024 at 01:02:52PM +0000, Marciniszyn, Mike wrote:
> > >Fixes: e965ef0e7b2c ("RDMA/irdma: Split QP handler into
> > >irdma_reg_user_mr_type_qp")
> >
> > Is this fixes tag incorrect? there's no e965ef0e7b2c in 6.1.
> >
>
> The fixes was correct for upstream. The context change forced the re-port of patch and the Fixes is not appropriate for the older context.
I do not understand, what context change?
> You can drop if you want.
Is it needed for 6.1.y or not?
confused,
greg k-h
^ permalink raw reply [flat|nested] 7+ messages in thread* RE: [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned
2024-02-13 14:55 ` Greg KH
@ 2024-02-13 16:20 ` Marciniszyn, Mike
2024-02-20 15:33 ` Greg KH
0 siblings, 1 reply; 7+ messages in thread
From: Marciniszyn, Mike @ 2024-02-13 16:20 UTC (permalink / raw)
To: Greg KH; +Cc: Sasha Levin, Saleem, Shiraz, stable@vger.kernel.org
>
> Is it needed for 6.1.y or not?
>
> confused,
>
It is needed.
Its just the Fixes: tag is incorrect because 6.1.y branch lacks the commit indicated in the Fixes: tag.
The upstream version split a large routine up for clarity. The 6.1.y branch contains the pre-split code so the patch needed to be ported into the old larger routine.
Mike
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned
2024-02-13 16:20 ` Marciniszyn, Mike
@ 2024-02-20 15:33 ` Greg KH
0 siblings, 0 replies; 7+ messages in thread
From: Greg KH @ 2024-02-20 15:33 UTC (permalink / raw)
To: Marciniszyn, Mike; +Cc: Sasha Levin, Saleem, Shiraz, stable@vger.kernel.org
On Tue, Feb 13, 2024 at 04:20:21PM +0000, Marciniszyn, Mike wrote:
> >
> > Is it needed for 6.1.y or not?
> >
> > confused,
> >
> It is needed.
>
> Its just the Fixes: tag is incorrect because 6.1.y branch lacks the commit indicated in the Fixes: tag.
>
> The upstream version split a large routine up for clarity. The 6.1.y branch contains the pre-split code so the patch needed to be ported into the old larger routine.
Now queued up, thanks.
greg k-h
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-02-20 15:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-07 16:32 [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned Shiraz Saleem
2024-02-07 16:32 ` [PATCH 6.1.y] RDMA/irdma: Fix support for 64k pages Shiraz Saleem
2024-02-11 16:26 ` [PATCH 6.1.y] RDMA/irdma: Ensure iWarp QP queue memory is OS paged aligned Sasha Levin
2024-02-12 13:02 ` Marciniszyn, Mike
2024-02-13 14:55 ` Greg KH
2024-02-13 16:20 ` Marciniszyn, Mike
2024-02-20 15:33 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox