[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 01/23] contrib/rdmacm-mux: Add implementation
From: |
Yuval Shaia |
Subject: |
Re: [Qemu-devel] [PATCH v3 01/23] contrib/rdmacm-mux: Add implementation of RDMA User MAD multiplexer |
Date: |
Sun, 18 Nov 2018 12:17:45 +0200 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Sat, Nov 17, 2018 at 07:27:43PM +0200, Shamir Rabinovitch wrote:
> On Tue, Nov 13, 2018 at 09:13:14AM +0200, Yuval Shaia wrote:
> > RDMA MAD kernel module (ibcm) disallow more than one MAD-agent for a
> > given MAD class.
> > This does not go hand-by-hand with qemu pvrdma device's requirements
> > where each VM is MAD agent.
> > Fix it by adding implementation of RDMA MAD multiplexer service which on
> > one hand register as a sole MAD agent with the kernel module and on the
> > other hand gives service to more than one VM.
> >
> > Design Overview:
> > ----------------
> > A server process is registered to UMAD framework (for this to work the
> > rdma_cm kernel module needs to be unloaded) and creates a unix socket to
> > listen to incoming request from clients.
> > A client process (such as QEMU) connects to this unix socket and
> > registers with its own GID.
> >
> > TX:
> > ---
> > When client needs to send rdma_cm MAD message it construct it the same
> > way as without this multiplexer, i.e. creates a umad packet but this
> > time it writes its content to the socket instead of calling umad_send().
> > The server, upon receiving such a message fetch local_comm_id from it so
> > a context for this session can be maintain and relay the message to UMAD
> > layer by calling umad_send().
> >
> > RX:
> > ---
> > The server creates a worker thread to process incoming rdma_cm MAD
> > messages. When an incoming message arrived (umad_recv()) the server,
> > depending on the message type (attr_id) looks for target client by
> > either searching in gid->fd table or in local_comm_id->fd table. With
> > the extracted fd the server relays to incoming message to the client.
> >
> > Signed-off-by: Yuval Shaia <address@hidden>
> > ---
> > MAINTAINERS | 1 +
> > Makefile | 3 +
> > Makefile.objs | 1 +
> > contrib/rdmacm-mux/Makefile.objs | 4 +
> > contrib/rdmacm-mux/main.c | 771 +++++++++++++++++++++++++++++++
> > contrib/rdmacm-mux/rdmacm-mux.h | 56 +++
> > 6 files changed, 836 insertions(+)
> > create mode 100644 contrib/rdmacm-mux/Makefile.objs
> > create mode 100644 contrib/rdmacm-mux/main.c
> > create mode 100644 contrib/rdmacm-mux/rdmacm-mux.h
> >
>
> Reviewed-by: Shamir Rabinovitch <address@hidden>
Thanks Shamir!
Thanks a lot also for all the MAD related tips and comments you gave
off-list, it make the code much more mature and correct.
>
- [Qemu-devel] [PATCH v3 00/23] Add support for RDMA MAD, (continued)
- [Qemu-devel] [PATCH v3 00/23] Add support for RDMA MAD, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 23/23] docs: Update pvrdma device documentation, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 03/23] hw/rdma: Return qpn 1 if ibqp is NULL, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 05/23] hw/rdma: Add support for MAD packets, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 04/23] hw/rdma: Abort send-op if fail to create addr handler, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 07/23] hw/pvrdma: Make default pkey 0xFFFF, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 01/23] contrib/rdmacm-mux: Add implementation of RDMA User MAD multiplexer, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 02/23] hw/rdma: Add ability to force notification without re-arm, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 08/23] hw/pvrdma: Set the correct opcode for recv completion, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 10/23] json: Define new QMP message for pvrdma, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 09/23] hw/pvrdma: Set the correct opcode for send completion, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 06/23] hw/pvrdma: Make function reset_device return void, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 11/23] hw/pvrdma: Add support to allow guest to configure GID table, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 12/23] vmxnet3: Move some definitions to header file, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 13/23] hw/pvrdma: Make sure PCI function 0 is vmxnet3, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 15/23] hw/pvrdma: Make device state depend on Ethernet function state, Yuval Shaia, 2018/11/13
- [Qemu-devel] [PATCH v3 16/23] hw/pvrdma: Fill all CQE fields, Yuval Shaia, 2018/11/13