On Tue, Jun 28, 2022 at 06:46:39PM +0200, haris iqbal wrote: > On Tue, Jun 28, 2022 at 6:34 PM Jason Gunthorpe <jgg@xxxxxxxx> wrote: > > > > On Tue, Jun 28, 2022 at 06:21:09PM +0200, haris iqbal wrote: > > > > > > Yes, no driver in Linux suports a disjoint key space. > > > > > > If disjoint key space is not supported in Linux; does this mean > > > irrespective of whether an MR is registered (IB_WR_REG_MR) for LOCAL > > > or REMOTE access, both rkey and lkey should be set? > > > > No.. It means given any key the driver can always tell if it is a rkey > > or a lkey. There is never any aliasing of key values. Thus the API > > often doesn't have a away to tell if the given key is an rkey or lkey. > > > > > PS: This discussion started in the following thread, > > > https://marc.info/?l=linux-rdma&m=165390868832428&w=2 > > > > rxe is incorrect to not accept the lkey presented on the > > invalidate_rkey input. invalidate_rkey is misnamed. > > > Understood. So a better fix for rxe (as compared to the one I sent) > would be one of the following (if I understand correctly). > > 1) The key sent in INV, is compared with lkey or rkey based on which > one is set (non-zero). This one seems to match the spec However, it requires that keys don't alias, I don't know if rxe has done this. > OR, > 2) The key sent in INV, is compared with lkey if the MR has only LOCAL > access, and rkey if the MR has REMOTE access. That might make more sense if rxe has aliasing keys and you need to be specific about r/l Jason