hw/rdma: Implementation of PVRDMA device
commit919ae3dd119e9287e20c92461beed63355e10fdd
authorYuval Shaia <yuval.shaia@oracle.com>
Fri, 9 Feb 2018 13:44:14 +0000 (9 15:44 +0200)
committerMarcel Apfelbaum <marcel@redhat.com>
Mon, 19 Feb 2018 11:03:24 +0000 (19 13:03 +0200)
treed95f809ac06fc1da6ebaa869d0bd5527a55a3a9b
parent98d176f8e592d29a6d66ea969a15fc0caabd37cc
hw/rdma: Implementation of PVRDMA device

PVRDMA is the QEMU implementation of VMware's paravirtualized RDMA device.
It works with its Linux Kernel driver AS IS, no need for any special
guest modifications.

While it complies with the VMware device, it can also communicate with
bare metal RDMA-enabled machines and does not require an RDMA HCA in the
host, it can work with Soft-RoCE (rxe).

It does not require the whole guest RAM to be pinned allowing memory
over-commit and, even if not implemented yet, migration support will be
possible with some HW assistance.

Implementation is divided into 2 components, rdma general and pvRDMA
specific functions and structures.

The second PVRDMA sub-module - interaction with PCI layer.
- Device configuration and setup (MSIX, BARs etc).
- Setup of DSR (Device Shared Resources)
- Setup of device ring.
- Device management.

Reviewed-by: Dotan Barak <dotanb@mellanox.com>
Reviewed-by: Zhu Yanjun <yanjun.zhu@oracle.com>
Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Makefile.objs
hw/rdma/Makefile.objs
hw/rdma/vmw/pvrdma_main.c [new file with mode: 0644]
hw/rdma/vmw/trace-events [new file with mode: 0644]
include/hw/pci/pci_ids.h