On Tue, Jun 11, 2019 at 03:23:36PM +0300, Yuval Shaia wrote: > The virtual address that is registered is used as a base for any address > passed later in post_recv and post_send operations. > > On some virtualized environment this is not correct. > > A guest cannot register its memory so hypervisor maps the guest physical > address to a host virtual address and register it with the HW. Later on, > at datapath phase, the guest fills the SGEs with addresses from its > address space. > Since HW cannot access guest virtual address space an extra translation > is needed to map those addresses to be based on the host virtual address > that was registered with the HW. > This datapath interference affects performances. > > To avoid this, a logical separation between the address that is > registered and the address that is used as a offset at datapath phase is > needed. > This separation is already implemented in the lower layer part > (ibv_cmd_reg_mr) but blocked at the API level. > > Fix it by introducing a new API function which accepts an address from > guest virtual address space as well, to be used as offset for later > datapath operations. > > Also update the PABI to v25 It is not "also", it is "must". > > Signed-off-by: Yuval Shaia <yuval.shaia@xxxxxxxxxx> Thanks, Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>