You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TEST: Add a test that registers different portions of DRAM with
different backends
This test fails.
This test creates two backends that support DRAM. Then it does memory
registration with one backend on one data buffer and memory registration
on the other backend with a different data buffer. Then it tries to do
prepXferDlist on a descriptor for both data buffers and that fails.
This could be fixed by having prepXferDlist attempt to populate
each segment with each backend and allowing for failure at the backend
call without failing the entire operation. However, this just kicks
the can down the road, because now the user can get failures in
makeXferReq depending on which indices of the nixlXferDlistH they
choose.
I suggest fixing this with a different approach. First, we observe that
almost all real users only have one backend type anyway. Second, if some
user really has two separate pools of DRAM that are used by different
backends with NIXL, they could just as easily solve that problem by
creating two agents, each with one backend, rather than creating
multiple backends.
So I propose we make the agent require all backends to
support all memory of the same type. In other words, do not allow
registerMem to register on specific backends. Instead, registerMem
should force the registration on all backends that support the memory
type. Then the end user knows that for a given agent, all backends
that can access DRAM can interoperate via all registered DRAM, for
example.
Even with the above change, NIXL can still support memory registered
with different backends that don't overlap. The user would just need
to use multiple agents. I think that's far more intuitive anyway.
Signed-off-by: Ben Walker <[email protected]>
0 commit comments