On 7/14/2015 10:25 AM, 'Christoph Hellwig' wrote:
On Mon, Jul 13, 2015 at 10:57:48AM -0600, Jason Gunthorpe wrote:
Currently various drivers are using ib_get_dma_mr with remote flags
unfortunately, e.g. the SRP initiator driver uses it to optimize away
memory registrtions for single SGL entry requests.
Unconditionally? Ugh. Maybe we do need the warn_on :(
There is a "register_always" flag to always use real MRs, but it's
off by default:
if (count == 1 && !register_always) {
/*
* The midlayer only generated a single gather/scatter
* entry, or DMA mapping coalesced everything to a
* single entry. So a direct descriptor along with
* the DMA MR suffices.
*/
struct srp_direct_buf *buf = (void *) cmd->add_data;
buf->va = cpu_to_be64(ib_sg_dma_address(ibdev, scat));
buf->key = cpu_to_be32(target->rkey);
buf->len = cpu_to_be32(ib_sg_dma_len(ibdev, scat));
req->nmdesc = 0;
goto map_complete;
}
iser has it too. I have a similar patch with a flag for iser (its
behind a bulk of patches that are still pending though).
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html