[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: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v4 10/23] json: Define new QMP message for pvrdma |
Date: |
Mon, 19 Nov 2018 08:16:08 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
The subsystem tag in the commit message's title should be "qapi: " not
"json: ".
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.
> 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.
> 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' }
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?
> 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).
- [Qemu-devel] [PATCH v4 03/23] hw/rdma: Return qpn 1 if ibqp is NULL, (continued)
- [Qemu-devel] [PATCH v4 03/23] hw/rdma: Return qpn 1 if ibqp is NULL, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 01/23] contrib/rdmacm-mux: Add implementation of RDMA User MAD multiplexer, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 02/23] hw/rdma: Add ability to force notification without re-arm, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 05/23] hw/rdma: Add support for MAD packets, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 04/23] hw/rdma: Abort send-op if fail to create addr handler, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 06/23] hw/pvrdma: Make function reset_device return void, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 07/23] hw/pvrdma: Make default pkey 0xFFFF, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 08/23] hw/pvrdma: Set the correct opcode for recv completion, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 09/23] hw/pvrdma: Set the correct opcode for send completion, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 10/23] json: Define new QMP message for pvrdma, Yuval Shaia, 2018/11/18
- Re: [Qemu-devel] [PATCH v4 10/23] json: Define new QMP message for pvrdma,
Markus Armbruster <=
- [Qemu-devel] [PATCH v4 11/23] hw/pvrdma: Add support to allow guest to configure GID table, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 12/23] vmxnet3: Move some definitions to header file, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 13/23] hw/pvrdma: Make sure PCI function 0 is vmxnet3, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 14/23] hw/rdma: Initialize node_guid from vmxnet3 mac address, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 15/23] hw/pvrdma: Make device state depend on Ethernet function state, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 16/23] hw/pvrdma: Fill all CQE fields, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 17/23] hw/pvrdma: Fill error code in command's response, Yuval Shaia, 2018/11/18
- [Qemu-devel] [PATCH v4 18/23] hw/rdma: Remove unneeded code that handles more that one port, Yuval Shaia, 2018/11/18