qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 10/23] json: Define new QMP message for pvrdm


From: Yuval Shaia
Subject: Re: [Qemu-devel] [PATCH v4 10/23] json: Define new QMP message for pvrdma
Date: Thu, 22 Nov 2018 13:21:30 +0200
User-agent: Mutt/1.10.1 (2018-07-13)

On Mon, Nov 19, 2018 at 08:16:08AM +0100, Markus Armbruster wrote:
> The subsystem tag in the commit message's title should be "qapi: " not
> "json: ".

Done.

> 
> Yuval Shaia <address@hidden> writes:
> 
> > pvrdma requires that the same GID attached to it will be attached to the
> > backend device in the host.
> >
> > A new QMP messages is defined so pvrdma device can broadcast any change
> > made to its GID table. This event is captured by libvirt which in turn
> > will update the GID table in the backend device.
> >
> > Signed-off-by: Yuval Shaia <address@hidden>
> > Reviewed-by: Marcel Apfelbaum <address@hidden>
> > ---
> >  MAINTAINERS           |  1 +
> >  Makefile              |  3 ++-
> >  Makefile.objs         |  4 ++++
> >  qapi/qapi-schema.json |  1 +
> >  qapi/rdma.json        | 38 ++++++++++++++++++++++++++++++++++++++
> >  5 files changed, 46 insertions(+), 1 deletion(-)
> >  create mode 100644 qapi/rdma.json
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index e087d58ac6..a149f68a8f 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -2232,6 +2232,7 @@ F: hw/rdma/*
> >  F: hw/rdma/vmw/*
> >  F: docs/pvrdma.txt
> >  F: contrib/rdmacm-mux/*
> > +F: qapi/rdma.json
> >  
> >  Build and test automation
> >  -------------------------
> > diff --git a/Makefile b/Makefile
> > index 94072776ff..db4ce60ee5 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -599,7 +599,8 @@ qapi-modules = $(SRC_PATH)/qapi/qapi-schema.json 
> > $(SRC_PATH)/qapi/common.json \
> >                 $(SRC_PATH)/qapi/tpm.json \
> >                 $(SRC_PATH)/qapi/trace.json \
> >                 $(SRC_PATH)/qapi/transaction.json \
> > -               $(SRC_PATH)/qapi/ui.json
> > +               $(SRC_PATH)/qapi/ui.json \
> > +               $(SRC_PATH)/qapi/rdma.json
> 
> Please insert between net.json and rocker.json to maintain alphabetical
> order.

Removed after using Eric Blake's framework.

> 
> >  qapi/qapi-builtin-types.c qapi/qapi-builtin-types.h \
> >  qapi/qapi-types.c qapi/qapi-types.h \
> > diff --git a/Makefile.objs b/Makefile.objs
> > index cc7df3ad80..76d8028f2f 100644
> > --- a/Makefile.objs
> > +++ b/Makefile.objs
> > @@ -21,6 +21,7 @@ util-obj-y += qapi/qapi-types-tpm.o
> >  util-obj-y += qapi/qapi-types-trace.o
> >  util-obj-y += qapi/qapi-types-transaction.o
> >  util-obj-y += qapi/qapi-types-ui.o
> > +util-obj-y += qapi/qapi-types-rdma.o
> >  util-obj-y += qapi/qapi-builtin-visit.o
> >  util-obj-y += qapi/qapi-visit.o
> >  util-obj-y += qapi/qapi-visit-block-core.o
> > @@ -40,6 +41,7 @@ util-obj-y += qapi/qapi-visit-tpm.o
> >  util-obj-y += qapi/qapi-visit-trace.o
> >  util-obj-y += qapi/qapi-visit-transaction.o
> >  util-obj-y += qapi/qapi-visit-ui.o
> > +util-obj-y += qapi/qapi-visit-rdma.o
> >  util-obj-y += qapi/qapi-events.o
> >  util-obj-y += qapi/qapi-events-block-core.o
> >  util-obj-y += qapi/qapi-events-block.o
> > @@ -58,6 +60,7 @@ util-obj-y += qapi/qapi-events-tpm.o
> >  util-obj-y += qapi/qapi-events-trace.o
> >  util-obj-y += qapi/qapi-events-transaction.o
> >  util-obj-y += qapi/qapi-events-ui.o
> > +util-obj-y += qapi/qapi-events-rdma.o
> >  util-obj-y += qapi/qapi-introspect.o
> >  
> >  chardev-obj-y = chardev/
> > @@ -155,6 +158,7 @@ common-obj-y += qapi/qapi-commands-tpm.o
> >  common-obj-y += qapi/qapi-commands-trace.o
> >  common-obj-y += qapi/qapi-commands-transaction.o
> >  common-obj-y += qapi/qapi-commands-ui.o
> > +common-obj-y += qapi/qapi-commands-rdma.o
> >  common-obj-y += qapi/qapi-introspect.o
> >  common-obj-y += qmp.o hmp.o
> >  endif
> 
> This is incomplete, and it conflicts with Eric Blake's "[PATCH v3] qapi:
> Reduce Makefile boilerplate".  I recommend to base on Eric's patch,
> because that'll let you add the new rdma.json much more easily.

Sure, will do that but let's ignore build error reports generated by build
robot for my v5 :)

Framework looks great!

> 
> > diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
> > index 65b6dc2f6f..a650d80f83 100644
> > --- a/qapi/qapi-schema.json
> > +++ b/qapi/qapi-schema.json
> > @@ -94,3 +94,4 @@
> >  { 'include': 'trace.json' }
> >  { 'include': 'introspect.json' }
> >  { 'include': 'misc.json' }
> > +{ 'include': 'rdma.json' }

Done.

> 
> This makes the "RDMA device" section appear last in the QEMU QMP
> reference manual, since they appear in include order there.
> 
>     $ grep -h @section bld-x86/qapi/qapi-doc.texi 
>     @section Introduction
>     @section Stability Considerations
>     @section Common data types
>     @section Socket data types
>     @section VM run state
>     @section Cryptography
>     @section Block devices
>     @section Character devices
>     @section Net devices
>     @section Rocker switch device
>     @section TPM (trusted platform module) devices
>     @section Remote desktop
>     @section Input
>     @section Migration
>     @section Transactions
>     @section Tracing
>     @section QMP introspection
>     @section Miscellanea
>     @section RDMA device
> 
> It should go next to the other "device" sections, shouldn't it?

Removed after using Eric Blake's framework.

> 
> > diff --git a/qapi/rdma.json b/qapi/rdma.json
> > new file mode 100644
> > index 0000000000..804c68ab36
> > --- /dev/null
> > +++ b/qapi/rdma.json
> > @@ -0,0 +1,38 @@
> > +# -*- Mode: Python -*-
> > +#
> > +
> > +##
> > +# = RDMA device
> > +##
> > +
> > +##
> > +# @RDMA_GID_STATUS_CHANGED:
> > +#
> > +# Emitted when guest driver adds/deletes GID to/from device
> > +#
> > +# @netdev: RoCE Network Device name - char *
> > +#
> > +# @gid-status: Add or delete indication - bool
> > +#
> > +# @subnet-prefix: Subnet Prefix - uint64
> > +#
> > +# @interface-id : Interface ID - uint64
> > +#
> > +# Since: 3.2
> > +#
> > +# Example:
> > +#
> > +# <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
> > +#     "event": "RDMA_GID_STATUS_CHANGED",
> > +#     "data":
> > +#         {"netdev": "bridge0",
> > +#         "interface-id": 15880512517475447892,
> > +#         "gid-status": true,
> > +#         "subnet-prefix": 33022}}
> > +#
> > +##
> > +{ 'event': 'RDMA_GID_STATUS_CHANGED',
> > +  'data': { 'netdev'        : 'str',
> > +            'gid-status'    : 'bool',
> > +            'subnet-prefix' : 'uint64',
> > +            'interface-id'  : 'uint64' } }
> 
> Schema looks okay from a QAPI perspective (I know next to nothing about
> RDMA).

Thanks



reply via email to

[Prev in Thread] Current Thread [Next in Thread]