From: Yuval Shaia <yuval.shaia@oracle.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: marcel.apfelbaum@gmail.com, dmitry.fleytman@gmail.com,
jasowang@redhat.com, eblake@redhat.com, pbonzini@redhat.com,
qemu-devel@nongnu.org, shamir.rabinovitch@oracle.com,
cohuck@redhat.com, yuval.shaia@oracle.com
Subject: Re: [Qemu-devel] [PATCH v4 10/23] json: Define new QMP message for pvrdma
Date: Thu, 22 Nov 2018 13:21:30 +0200 [thread overview]
Message-ID: <20181122112129.GA8920@lap1> (raw)
In-Reply-To: <87wop9v8p3.fsf@dusky.pond.sub.org>
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 <yuval.shaia@oracle.com> 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 <yuval.shaia@oracle.com>
> > Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
> > ---
> > 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
next prev parent reply other threads:[~2018-11-22 11:21 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-18 12:28 [Qemu-devel] [PATCH v4 00/23] Add support for RDMA MAD Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 01/23] contrib/rdmacm-mux: Add implementation of RDMA User MAD multiplexer Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 02/23] hw/rdma: Add ability to force notification without re-arm Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 03/23] hw/rdma: Return qpn 1 if ibqp is NULL Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 04/23] hw/rdma: Abort send-op if fail to create addr handler Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 05/23] hw/rdma: Add support for MAD packets Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 06/23] hw/pvrdma: Make function reset_device return void Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 07/23] hw/pvrdma: Make default pkey 0xFFFF Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 08/23] hw/pvrdma: Set the correct opcode for recv completion Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 09/23] hw/pvrdma: Set the correct opcode for send completion Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 10/23] json: Define new QMP message for pvrdma Yuval Shaia
2018-11-19 7:16 ` Markus Armbruster
2018-11-22 11:21 ` Yuval Shaia [this message]
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 11/23] hw/pvrdma: Add support to allow guest to configure GID table Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 12/23] vmxnet3: Move some definitions to header file Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 13/23] hw/pvrdma: Make sure PCI function 0 is vmxnet3 Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 14/23] hw/rdma: Initialize node_guid from vmxnet3 mac address Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 15/23] hw/pvrdma: Make device state depend on Ethernet function state Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 16/23] hw/pvrdma: Fill all CQE fields Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 17/23] hw/pvrdma: Fill error code in command's response Yuval Shaia
2018-11-25 7:38 ` Marcel Apfelbaum
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 18/23] hw/rdma: Remove unneeded code that handles more that one port Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 19/23] vl: Introduce shutdown_notifiers Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 20/23] hw/pvrdma: Clean device's resource when system is shutdown Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 21/23] hw/rdma: Do not use bitmap_zero_extend to free bitmap Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 22/23] hw/rdma: Do not call rdma_backend_del_gid on an empty gid Yuval Shaia
2018-11-18 12:28 ` [Qemu-devel] [PATCH v4 23/23] docs: Update pvrdma device documentation Yuval Shaia
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181122112129.GA8920@lap1 \
--to=yuval.shaia@oracle.com \
--cc=armbru@redhat.com \
--cc=cohuck@redhat.com \
--cc=dmitry.fleytman@gmail.com \
--cc=eblake@redhat.com \
--cc=jasowang@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=shamir.rabinovitch@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).