On Wed, Apr 02, 2025 at 07:13:06AM +0200, Jack Wang wrote:
> I hit following error which testing migration in pure RoCE env:
> "-incoming rdma:[::]:8089: RDMA ERROR: You only have RoCE / iWARP devices in 
> your
> systems and your management software has specified '[::]', but IPv6 over RoCE 
> /
> iWARP is not supported in Linux.#012'."
> 
> In our setup, we use rdma bind on ipv6 on target host, while connect from 
> source
> with ipv4, remove the qemu_rdma_broken_ipv6_kernel, migration just work
> fine.
> 
> Checking the git history, the function was added since introducing of
> rdma migration, which is more than 10 years ago. linux-rdma has
> improved support on RoCE/iWARP for ipv6 over past years. There are a few fixes
> back in 2016 seems related to the issue, eg:
> aeb76df46d11 ("IB/core: Set routable RoCE gid type for ipv4/ipv6 networks")
> 
> other fixes back in 2018, eg:
> 052eac6eeb56 RDMA/cma: Update RoCE multicast routines to use net namespace
> 8d20a1f0ecd5 RDMA/cma: Fix rdma_cm raw IB path setting for RoCE
> 9327c7afdce3 RDMA/cma: Provide a function to set RoCE path record L2 
> parameters
> 5c181bda77f4 RDMA/cma: Set default GID type as RoCE when resolving RoCE route
> 3c7f67d1880d IB/cma: Fix default RoCE type setting
> be1d325a3358 IB/core: Set RoCEv2 MGID according to spec
> 63a5f483af0e IB/cma: Set default gid type to RoCEv2
> 
> So remove the outdated function and it's usage.
> 
> Cc: Peter Xu <pet...@redhat.com>
> Cc: Li Zhijian <lizhij...@fujitsu.com>
> Cc: Yu Zhang <yu.zh...@ionos.com>
> Cc: Fabiano Rosas <faro...@suse.de
> Cc: qemu-devel@nongnu.org
> Cc: linux-r...@vger.kernel.org
> Cc: mich...@flatgalaxy.com
> Signed-off-by: Jack Wang <jinpu.w...@ionos.com>
> Tested-by: Li zhijian <lizhij...@fujitsu.com>
> Reviewed-by: Michael Galaxy <mrgal...@nvidia.com>
> ---
> v2: cleanup unused err, update comment (Fabiano)
> v1: drop RFC, fix build error (zhijian), collect Reviewed-by and Tested-by

Queued with some cosmetic changes:

diff --git a/migration/rdma.c b/migration/rdma.c
index 28def620d9..2d839fce6c 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -2502,7 +2502,7 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error 
**errp)
         goto err_dest_init_bind_addr;
     }
 
-    /* Try all addresses*/
+    /* Try all addresses */
     for (e = res; e != NULL; e = e->ai_next) {
 
         inet_ntop(e->ai_family,
@@ -2517,7 +2517,7 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error 
**errp)
 
     rdma_freeaddrinfo(res);
     if (!e) {
-            error_setg(errp, "RDMA ERROR: Error: could not rdma_bind_addr!");
+        error_setg(errp, "RDMA ERROR: Error: could not rdma_bind_addr!");
         goto err_dest_init_bind_addr;
     }
 
Thanks,

-- 
Peter Xu


Reply via email to