On 24/04/2023 11:53, Sagi Grimberg wrote:
Yeah, I'm slightly unhappy with this whole setup.
If we were just doing DIF I guess the setup could work, but then we
have to
disable DIX (as we cannot support integrity data on the non-PI path).
But we would need an additional patch to disable DIX functionality in
those
cases.
NVMeoF only supports inline integrity data, the remapping from out of
line integrity data is always done by the HCA for NVMe over RDMA,
and integrity data is not supported without that.
Because of that I can't see how we could sensibly support one path with
integrity offload and one without. And yes, it might make sense to
offer a way to explicitly disable integrity support to allow forming such
a multipath setup.
I agree. I didn't read through the change log well enough, I thought
that one path is DIF and the other is DIX.
I agree that we should not permit such a configuration.
I'm not yet convinced why not to permit it.
The spec allows this to happen and I can think about scenarios that
users will want this kind of configuration.
We also support it today (with the exception on this bug).
There is a special PRACT bit in the spec that asks the controller to
take action upon each R/W IO request.
The Multipath is not related to md IMO. One path can generate/verify md
and other can raise PRACT bit.
You can also create 2 paths from different hosts to same target and one
will have ConnectX-5 and other ConnectX-3. The fact that these path are
from the same host is not so important IMO.