On 8/30/18 1:17 PM, Logan Gunthorpe wrote:
On 30/08/18 01:11 PM, Jens Axboe wrote:
quoted
On 8/30/18 12:53 PM, Logan Gunthorpe wrote:
quoted
QUEUE_FLAG_PCI_P2P is introduced meaning a driver's request queue
supports targeting P2P memory.
When a request is submitted we check if PCI P2PDMA memory is assigned
to the first page in the bio. If it is, we ensure the queue it's
submitted to supports it, and enforce REQ_NOMERGE.
I think this belongs in the caller - both the validity check, and
passing in NOMERGE for this type of request. I don't want to impose
this overhead on everything, for a pretty niche case.
Well, the point was to prevent driver writers from doing the wrong
thing. The WARN_ON would be a bit pointless in the driver if we rely on
the driver to either do the right thing or add the WARN_ON themselves.
If I'm going to change anything I'd drop the warning entirely and move
the NO_MERGE back into the caller...
Of course, if you move it into the caller, the warning makes no sense.
Note: the check will be compiled out if the kernel does not support PCI P2P.
Sure, but then distros tend to enable everything...
--
Jens Axboe