mbox series

[v2,0/9] Misc fixes to pvrdma device

Message ID 20190213065357.16076-1-yuval.shaia@oracle.com
Headers show
Series Misc fixes to pvrdma device | expand

Message

Yuval Shaia Feb. 13, 2019, 6:53 a.m. UTC
Hi,
Please review the following patch-set which consist of cosmetics fixes to
device's user interface (traces, error_report and monitor) and some bug
fixes.

Thanks Markus, Eric, Marcel and David for reviewing v0.
Appreciate your review to this v2.

Still missing r-b for patches 2, 4 and 6.

v0 -> v1:
    * Explain why device attributes are exposed only in HMP interface.
    * Squash the 3 patches related to HMP interface into one.
    * Make monitor dump function simple.
    * Make HMP interface available only if pvrdma is included (detected by
      build robot).
    * Remove patch 03/10 ("Warn when too many consecutive poll CQ triggered
      on an empty CQ) and add the two counters to patch 0/7 (monitor).
    * Add Marcel's R-Bs.
    * Add mutex protection to cqe_ctx list.
    * Add two new patches.

v1 -> v2:
    * Rename locked-lists to protected-lists in patch 2 and patch 6.
    * Add Marcel's R-Bs.

Thanks,
Yuval


Yuval Shaia (9):
  hw/rdma: Switch to generic error reporting way
  hw/rdma: Introduce protected qlist
  hw/rdma: Protect against concurrent execution of poll_cq
  {monitor,hw/pvrdma}: Expose device internals via monitor interface
  hw/rdma: Free all MAD receive buffers when device is closed
  hw/rdma: Free all receive buffers when QP is destroyed
  hw/pvrdma: Delete unneeded function argument
  hw/pvrdma: Delete pvrdma_exit function
  hw/pvrdma: Unregister from shutdown notifier when device goes down

 hmp-commands-info.hx          |  16 ++
 hw/rdma/rdma_backend.c        | 483 +++++++++++++++++-----------------
 hw/rdma/rdma_backend.h        |   3 +-
 hw/rdma/rdma_backend_defs.h   |  10 +-
 hw/rdma/rdma_rm.c             | 134 +++++-----
 hw/rdma/rdma_rm_defs.h        |  28 +-
 hw/rdma/rdma_utils.c          |  79 +++++-
 hw/rdma/rdma_utils.h          |  61 ++---
 hw/rdma/trace-events          |  32 ++-
 hw/rdma/vmw/pvrdma.h          |   7 +-
 hw/rdma/vmw/pvrdma_cmd.c      | 113 ++------
 hw/rdma/vmw/pvrdma_dev_ring.c |  26 +-
 hw/rdma/vmw/pvrdma_hmp.h      |  21 ++
 hw/rdma/vmw/pvrdma_main.c     | 217 ++++++++-------
 hw/rdma/vmw/pvrdma_qp_ops.c   |  52 +---
 hw/rdma/vmw/trace-events      |  16 +-
 monitor.c                     |  10 +
 17 files changed, 709 insertions(+), 599 deletions(-)
 create mode 100644 hw/rdma/vmw/pvrdma_hmp.h

Comments

Marcel Apfelbaum Feb. 14, 2019, 2:14 p.m. UTC | #1
Hi Yuval,

On 2/13/19 8:53 AM, Yuval Shaia wrote:
> Hi,
> Please review the following patch-set which consist of cosmetics fixes to
> device's user interface (traces, error_report and monitor) and some bug
> fixes.
>
> Thanks Markus, Eric, Marcel and David for reviewing v0.
> Appreciate your review to this v2.

clang compilation fails.
Please use this configuration:

     configure --target-list="x86_64-softmmu" --cc=clang --enable-pvrdma

It will fail with:

In file included from 
/home/mapfelba/git/upstream/qemu/hw/rdma/rdma_backend.c:32:
In file included from /home/mapfelba/git/upstream/qemu/hw/rdma/rdma_rm.h:21:
/home/mapfelba/git/upstream/qemu/hw/rdma/rdma_rm_defs.h:108:3: error: 
redefinition of typedef 'RdmaDeviceResources' is a C11 feature 
[-Werror,-Wtypedef-redefinition]
} RdmaDeviceResources;
   ^
/home/mapfelba/git/upstream/qemu/hw/rdma/rdma_backend_defs.h:24:36: 
note: previous definition is here
typedef struct RdmaDeviceResources RdmaDeviceResources;
                                    ^
1 error generated.
make[1]: *** [/home/mapfelba/git/upstream/qemu/rules.mak:69: 
hw/rdma/rdma_backend.o] Error 1
make[1]: *** Waiting for unfinished jobs....
In file included from /home/mapfelba/git/upstream/qemu/hw/rdma/rdma_rm.c:21:
In file included from 
/home/mapfelba/git/upstream/qemu/hw/rdma/rdma_backend.h:22:
/home/mapfelba/git/upstream/qemu/hw/rdma/rdma_rm_defs.h:108:3: error: 
redefinition of typedef 'RdmaDeviceResources' is a C11 feature 
[-Werror,-Wtypedef-redefinition]
} RdmaDeviceResources;
   ^
/home/mapfelba/git/upstream/qemu/hw/rdma/rdma_backend_defs.h:24:36: 
note: previous definition is here
typedef struct RdmaDeviceResources RdmaDeviceResources;
                                    ^
1 error generated.
make[1]: *** [/home/mapfelba/git/upstream/qemu/rules.mak:69: 
hw/rdma/rdma_rm.o] Error 1
In file included from 
/home/mapfelba/git/upstream/qemu/hw/rdma/vmw/pvrdma_qp_ops.c:19:
In file included from 
/home/mapfelba/git/upstream/qemu/hw/rdma/vmw/../rdma_rm.h:21:
/home/mapfelba/git/upstream/qemu/hw/rdma/vmw/../rdma_rm_defs.h:108:3: 
error: redefinition of typedef 'RdmaDeviceResources' is a C11 feature 
[-Werror,-Wtypedef-redefinition]
} RdmaDeviceResources;
   ^
/home/mapfelba/git/upstream/qemu/hw/rdma/vmw/../rdma_backend_defs.h:24:36: 
note: previous definition is here
typedef struct RdmaDeviceResources RdmaDeviceResources;
                                    ^
1 error generated.
make[1]: *** [/home/mapfelba/git/upstream/qemu/rules.mak:69: 
hw/rdma/vmw/pvrdma_qp_ops.o] Error 1
In file included from 
/home/mapfelba/git/upstream/qemu/hw/rdma/vmw/pvrdma_cmd.c:23:
In file included from 
/home/mapfelba/git/upstream/qemu/hw/rdma/vmw/../rdma_backend.h:22:
/home/mapfelba/git/upstream/qemu/hw/rdma/vmw/../rdma_rm_defs.h:108:3: 
error: redefinition of typedef 'RdmaDeviceResources' is a C11 feature 
[-Werror,-Wtypedef-redefinition]
} RdmaDeviceResources;
   ^
/home/mapfelba/git/upstream/qemu/hw/rdma/vmw/../rdma_backend_defs.h:24:36: 
note: previous definition is here
typedef struct RdmaDeviceResources RdmaDeviceResources;
                                    ^

Thanks,
Marcel