[GEDI] [PATCH-for-9.1] rdma: Remove RDMA subsystem and pvrdma device

Thomas Huth thuth at redhat.com
Thu Mar 28 06:43:06 UTC 2024


On 27/03/2024 11.55, Philippe Mathieu-Daudé wrote:
> The whole RDMA subsystem was deprecated in commit e9a54265f5
> ("hw/rdma: Deprecate the pvrdma device and the rdma subsystem")
> released in v8.2. Time to remove it.
> 
> Keep the RAM_SAVE_FLAG_HOOK definition since it might appears
> in old migration streams.
> 
> Remove the dependencies on libibumad and libibverbs.
> 
> Remove the generated vmw_pvrdma/ directory from linux-headers.
> 
> Remove RDMA handling from migration.
> 
> Remove RDMA handling in GlusterFS block driver.
> 
> Remove rdmacm-mux tool from contrib/.
> 
> Remove PVRDMA device.
> 
> Cc: Peter Xu <peterx at redhat.com>
> Cc: Li Zhijian <lizhijian at fujitsu.com>
> Cc: Yuval Shaia <yuval.shaia.ml at gmail.com>
> Cc: Marcel Apfelbaum <marcel.apfelbaum at gmail.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd at linaro.org>
> ---
>   MAINTAINERS                                   |   17 -
>   docs/about/deprecated.rst                     |    9 -
>   docs/about/removed-features.rst               |    4 +
>   docs/devel/migration/main.rst                 |    6 -
>   docs/pvrdma.txt                               |  345 --
>   docs/rdma.txt                                 |  420 --
>   docs/system/device-url-syntax.rst.inc         |    4 +-
>   docs/system/loongarch/virt.rst                |    2 +-
>   docs/system/qemu-block-drivers.rst.inc        |    1 -
>   meson.build                                   |   59 -
>   qapi/machine.json                             |   17 -
>   qapi/migration.json                           |   31 +-
>   qapi/qapi-schema.json                         |    1 -
>   qapi/rdma.json                                |   38 -
>   contrib/rdmacm-mux/rdmacm-mux.h               |   61 -
>   hw/rdma/rdma_backend.h                        |  129 -
>   hw/rdma/rdma_backend_defs.h                   |   76 -
>   hw/rdma/rdma_rm.h                             |   97 -
>   hw/rdma/rdma_rm_defs.h                        |  146 -
>   hw/rdma/rdma_utils.h                          |   63 -
>   hw/rdma/trace.h                               |    1 -
>   hw/rdma/vmw/pvrdma.h                          |  144 -
>   hw/rdma/vmw/pvrdma_dev_ring.h                 |   46 -
>   hw/rdma/vmw/pvrdma_qp_ops.h                   |   28 -
>   hw/rdma/vmw/trace.h                           |    1 -
>   include/hw/rdma/rdma.h                        |   37 -
>   include/monitor/hmp.h                         |    1 -
>   .../infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h |  685 ---
>   .../infiniband/hw/vmw_pvrdma/pvrdma_verbs.h   |  348 --
>   .../standard-headers/rdma/vmw_pvrdma-abi.h    |  310 --
>   migration/migration-stats.h                   |    6 +-
>   migration/migration.h                         |    9 -
>   migration/options.h                           |    2 -
>   migration/rdma.h                              |   69 -
>   block/gluster.c                               |   39 -
>   contrib/rdmacm-mux/main.c                     |  831 ----
>   hw/core/machine-qmp-cmds.c                    |   32 -
>   hw/rdma/rdma.c                                |   30 -
>   hw/rdma/rdma_backend.c                        | 1401 ------
>   hw/rdma/rdma_rm.c                             |  812 ----
>   hw/rdma/rdma_utils.c                          |  126 -
>   hw/rdma/vmw/pvrdma_cmd.c                      |  815 ----
>   hw/rdma/vmw/pvrdma_dev_ring.c                 |  141 -
>   hw/rdma/vmw/pvrdma_main.c                     |  735 ---
>   hw/rdma/vmw/pvrdma_qp_ops.c                   |  298 --
>   migration/migration-stats.c                   |    5 +-
>   migration/migration.c                         |   31 -
>   migration/options.c                           |   16 -
>   migration/qemu-file.c                         |    1 -
>   migration/ram.c                               |   86 +-
>   migration/rdma.c                              | 4184 -----------------
>   migration/savevm.c                            |    2 +-
>   monitor/qmp-cmds.c                            |    1 -
>   Kconfig.host                                  |    3 -
>   contrib/rdmacm-mux/meson.build                |    7 -
>   hmp-commands-info.hx                          |   13 -
>   hw/Kconfig                                    |    1 -
>   hw/meson.build                                |    1 -
>   hw/rdma/Kconfig                               |    3 -
>   hw/rdma/meson.build                           |   12 -
>   hw/rdma/trace-events                          |   31 -
>   hw/rdma/vmw/trace-events                      |   17 -
>   meson_options.txt                             |    4 -
>   migration/meson.build                         |    1 -
>   migration/trace-events                        |   68 +-
>   qapi/meson.build                              |    1 -
>   qemu-options.hx                               |    6 -
>   .../ci/org.centos/stream/8/x86_64/configure   |    1 -
>   scripts/ci/setup/build-environment.yml        |    2 -
>   scripts/coverity-scan/run-coverity-scan       |    2 +-
>   scripts/meson-buildoptions.sh                 |    6 -
>   scripts/update-linux-headers.sh               |   27 -
>   tests/lcitool/projects/qemu.yml               |    2 -
>   tests/migration/guestperf/engine.py           |    4 +-
>   74 files changed, 20 insertions(+), 12991 deletions(-)
>   delete mode 100644 docs/pvrdma.txt
>   delete mode 100644 docs/rdma.txt
>   delete mode 100644 qapi/rdma.json
>   delete mode 100644 contrib/rdmacm-mux/rdmacm-mux.h
>   delete mode 100644 hw/rdma/rdma_backend.h
>   delete mode 100644 hw/rdma/rdma_backend_defs.h
>   delete mode 100644 hw/rdma/rdma_rm.h
>   delete mode 100644 hw/rdma/rdma_rm_defs.h
>   delete mode 100644 hw/rdma/rdma_utils.h
>   delete mode 100644 hw/rdma/trace.h
>   delete mode 100644 hw/rdma/vmw/pvrdma.h
>   delete mode 100644 hw/rdma/vmw/pvrdma_dev_ring.h
>   delete mode 100644 hw/rdma/vmw/pvrdma_qp_ops.h
>   delete mode 100644 hw/rdma/vmw/trace.h
>   delete mode 100644 include/hw/rdma/rdma.h
>   delete mode 100644 include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h
>   delete mode 100644 include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h
>   delete mode 100644 include/standard-headers/rdma/vmw_pvrdma-abi.h
>   delete mode 100644 migration/rdma.h
>   delete mode 100644 contrib/rdmacm-mux/main.c
>   delete mode 100644 hw/rdma/rdma.c
>   delete mode 100644 hw/rdma/rdma_backend.c
>   delete mode 100644 hw/rdma/rdma_rm.c
>   delete mode 100644 hw/rdma/rdma_utils.c
>   delete mode 100644 hw/rdma/vmw/pvrdma_cmd.c
>   delete mode 100644 hw/rdma/vmw/pvrdma_dev_ring.c
>   delete mode 100644 hw/rdma/vmw/pvrdma_main.c
>   delete mode 100644 hw/rdma/vmw/pvrdma_qp_ops.c
>   delete mode 100644 migration/rdma.c
>   delete mode 100644 contrib/rdmacm-mux/meson.build
>   delete mode 100644 hw/rdma/Kconfig
>   delete mode 100644 hw/rdma/meson.build
>   delete mode 100644 hw/rdma/trace-events
>   delete mode 100644 hw/rdma/vmw/trace-events

  Hi Philippe!

Looking at this rdma stuff again after I while, I realized that there are 
actually 3 parts in QEMU related to RDMA:
1) The "pvrdma" device in hw/rdma/vmw/
2) The rdma subsystem in hw/rda/*.[ch]
3) The rdma migration code in the migration/ folder.

While the deprecation note in docs/about/deprecated.rst clearly talks about 
the "pvrdma" device and the rdma subsystem, I'm unsure whether that includes 
the rdma migration code or not.

Anyway, could you please split your patch at least in two (maybe even in 
three) parts, so that the removal of the rdma migration code is in a 
separate patch? That way we can discuss that separately (and maybe also 
revert it more easily in the future if necessary).

  Thanks,
   Thomas



More information about the integration mailing list