* Re: [PATCH rdma-next 02/10] RDMA/core: Enable Relaxed Ordering in __ib_alloc_pd()
[not found] ` <befc60f3-d28a-5420-b381-0f408bd7cca9@talpey.com>
@ 2021-04-05 20:40 ` Adit Ranadive
0 siblings, 0 replies; only message in thread
From: Adit Ranadive @ 2021-04-05 20:40 UTC (permalink / raw)
To: Tom Talpey, Leon Romanovsky, Doug Ledford, Jason Gunthorpe
Cc: Avihai Horon, Anna Schumaker, Ariel Elior, Bart Van Assche,
Bernard Metzler, Christoph Hellwig, Chuck Lever, David S. Miller,
Dennis Dalessandro, Devesh Sharma, Faisal Latif, Jack Wang,
Jakub Kicinski, J. Bruce Fields, Jens Axboe, Karsten Graul,
Keith Busch, Lijun Ou, linux-cifs, linux-kernel, linux-nfs,
linux-nvme, linux-rdma, linux-s390, Max Gurtovoy, Max Gurtovoy,
Md. Haris Iqbal, Michael Guralnik, Michal Kalderon,
Mike Marciniszyn, Naresh Kumar PBS, netdev, Potnuri Bharat Teja,
rds-devel, Sagi Grimberg, samba-technical, Santosh Shilimkar,
Selvin Xavier, Shiraz Saleem, Somnath Kotur,
Sriharsha Basavapatna, Steve French, Trond Myklebust,
VMware PV-Drivers, Weihang Li, Yishai Hadas, Zhu Yanjun
On 4/5/21 11:01 AM, Tom Talpey wrote:
> On 4/5/2021 1:23 AM, Leon Romanovsky wrote:
>> From: Avihai Horon <avihaih@nvidia.com>
>>
>> Enable Relaxed Ordering in __ib_alloc_pd() allocation of the
>> local_dma_lkey.
>>
>> This will take effect only for devices that don't pre-allocate the lkey
>> but allocate it per PD allocation.
>>
>> Signed-off-by: Avihai Horon <avihaih@nvidia.com>
>> Reviewed-by: Michael Guralnik <michaelgur@nvidia.com>
>> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
>> ---
>> drivers/infiniband/core/verbs.c | 3 ++-
>> drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c | 1 +
>> 2 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
>> index a1782f8a6ca0..9b719f7d6fd5 100644
>> --- a/drivers/infiniband/core/verbs.c
>> +++ b/drivers/infiniband/core/verbs.c
>> @@ -287,7 +287,8 @@ struct ib_pd *__ib_alloc_pd(struct ib_device *device, unsigned int flags,
>> if (device->attrs.device_cap_flags & IB_DEVICE_LOCAL_DMA_LKEY)
>> pd->local_dma_lkey = device->local_dma_lkey;
>> else
>> - mr_access_flags |= IB_ACCESS_LOCAL_WRITE;
>> + mr_access_flags |=
>> + IB_ACCESS_LOCAL_WRITE | IB_ACCESS_RELAXED_ORDERING;
>
> So, do local_dma_lkey's get relaxed ordering unconditionally?
>
>> if (flags & IB_PD_UNSAFE_GLOBAL_RKEY) {
>> pr_warn("%s: enabling unsafe global rkey\n", caller);
>> diff --git a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
>> index b3fa783698a0..d74827694f92 100644
>> --- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
>> +++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
>> @@ -66,6 +66,7 @@ struct ib_mr *pvrdma_get_dma_mr(struct ib_pd *pd, int acc)
>> int ret;
>> /* Support only LOCAL_WRITE flag for DMA MRs */
>> + acc &= ~IB_ACCESS_RELAXED_ORDERING;
>> if (acc & ~IB_ACCESS_LOCAL_WRITE) {
>> dev_warn(&dev->pdev->dev,
>> "unsupported dma mr access flags %#x\n", acc);
>
> Why does the pvrdma driver require relaxed ordering to be off?
PVRDMA doesn't support any other flags other than LOCAL_WRITE for
DMA MRs so the MR creation will fail if any new unconditionally added
flag isn't cleared.
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
^ permalink raw reply [flat|nested] only message in thread