* [PATCH v2] migration/rdma: set the REUSEADDR option for destination
@ 2022-02-08 8:56 Jack Wang
2022-02-08 10:58 ` Dr. David Alan Gilbert
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jack Wang @ 2022-02-08 8:56 UTC (permalink / raw)
To: quintela, dgilbert; +Cc: qemu-devel, pankaj.gupta
We hit following error during testing RDMA transport:
in case of migration error, mgmt daemon pick one migration port,
incoming rdma:[::]:8089: RDMA ERROR: Error: could not rdma_bind_addr
Then try another -incoming rdma:[::]:8103, sometime it worked,
sometimes need another try with other ports number.
Set the REUSEADDR option for destination, This allow address could
be reused to avoid rdma_bind_addr error out.
Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
---
v2: extend commit message as discussed with Pankaj and David
---
migration/rdma.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/migration/rdma.c b/migration/rdma.c
index c7c7a384875b..663e1fbb096d 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -2705,6 +2705,7 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp)
char ip[40] = "unknown";
struct rdma_addrinfo *res, *e;
char port_str[16];
+ int reuse = 1;
for (idx = 0; idx < RDMA_WRID_MAX; idx++) {
rdma->wr_data[idx].control_len = 0;
@@ -2740,6 +2741,12 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp)
goto err_dest_init_bind_addr;
}
+ ret = rdma_set_option(listen_id, RDMA_OPTION_ID, RDMA_OPTION_ID_REUSEADDR,
+ &reuse, sizeof reuse);
+ if (ret) {
+ ERROR(errp, "Error: could not set REUSEADDR option");
+ goto err_dest_init_bind_addr;
+ }
for (e = res; e != NULL; e = e->ai_next) {
inet_ntop(e->ai_family,
&((struct sockaddr_in *) e->ai_dst_addr)->sin_addr, ip, sizeof ip);
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] migration/rdma: set the REUSEADDR option for destination
2022-02-08 8:56 [PATCH v2] migration/rdma: set the REUSEADDR option for destination Jack Wang
@ 2022-02-08 10:58 ` Dr. David Alan Gilbert
2022-02-08 11:04 ` Pankaj Gupta
2022-03-02 11:41 ` Dr. David Alan Gilbert
2 siblings, 0 replies; 4+ messages in thread
From: Dr. David Alan Gilbert @ 2022-02-08 10:58 UTC (permalink / raw)
To: Jack Wang; +Cc: qemu-devel, pankaj.gupta, quintela
* Jack Wang (jinpu.wang@ionos.com) wrote:
> We hit following error during testing RDMA transport:
> in case of migration error, mgmt daemon pick one migration port,
> incoming rdma:[::]:8089: RDMA ERROR: Error: could not rdma_bind_addr
>
> Then try another -incoming rdma:[::]:8103, sometime it worked,
> sometimes need another try with other ports number.
>
> Set the REUSEADDR option for destination, This allow address could
> be reused to avoid rdma_bind_addr error out.
>
> Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> v2: extend commit message as discussed with Pankaj and David
> ---
> migration/rdma.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/migration/rdma.c b/migration/rdma.c
> index c7c7a384875b..663e1fbb096d 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -2705,6 +2705,7 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp)
> char ip[40] = "unknown";
> struct rdma_addrinfo *res, *e;
> char port_str[16];
> + int reuse = 1;
>
> for (idx = 0; idx < RDMA_WRID_MAX; idx++) {
> rdma->wr_data[idx].control_len = 0;
> @@ -2740,6 +2741,12 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp)
> goto err_dest_init_bind_addr;
> }
>
> + ret = rdma_set_option(listen_id, RDMA_OPTION_ID, RDMA_OPTION_ID_REUSEADDR,
> + &reuse, sizeof reuse);
> + if (ret) {
> + ERROR(errp, "Error: could not set REUSEADDR option");
> + goto err_dest_init_bind_addr;
> + }
> for (e = res; e != NULL; e = e->ai_next) {
> inet_ntop(e->ai_family,
> &((struct sockaddr_in *) e->ai_dst_addr)->sin_addr, ip, sizeof ip);
> --
> 2.25.1
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] migration/rdma: set the REUSEADDR option for destination
2022-02-08 8:56 [PATCH v2] migration/rdma: set the REUSEADDR option for destination Jack Wang
2022-02-08 10:58 ` Dr. David Alan Gilbert
@ 2022-02-08 11:04 ` Pankaj Gupta
2022-03-02 11:41 ` Dr. David Alan Gilbert
2 siblings, 0 replies; 4+ messages in thread
From: Pankaj Gupta @ 2022-02-08 11:04 UTC (permalink / raw)
To: Jack Wang; +Cc: qemu-devel, dgilbert, quintela
> We hit following error during testing RDMA transport:
> in case of migration error, mgmt daemon pick one migration port,
> incoming rdma:[::]:8089: RDMA ERROR: Error: could not rdma_bind_addr
>
> Then try another -incoming rdma:[::]:8103, sometime it worked,
> sometimes need another try with other ports number.
>
> Set the REUSEADDR option for destination, This allow address could
> be reused to avoid rdma_bind_addr error out.
>
> Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
> ---
> v2: extend commit message as discussed with Pankaj and David
> ---
> migration/rdma.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/migration/rdma.c b/migration/rdma.c
> index c7c7a384875b..663e1fbb096d 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -2705,6 +2705,7 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp)
> char ip[40] = "unknown";
> struct rdma_addrinfo *res, *e;
> char port_str[16];
> + int reuse = 1;
>
> for (idx = 0; idx < RDMA_WRID_MAX; idx++) {
> rdma->wr_data[idx].control_len = 0;
> @@ -2740,6 +2741,12 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp)
> goto err_dest_init_bind_addr;
> }
>
> + ret = rdma_set_option(listen_id, RDMA_OPTION_ID, RDMA_OPTION_ID_REUSEADDR,
> + &reuse, sizeof reuse);
> + if (ret) {
> + ERROR(errp, "Error: could not set REUSEADDR option");
> + goto err_dest_init_bind_addr;
> + }
> for (e = res; e != NULL; e = e->ai_next) {
> inet_ntop(e->ai_family,
> &((struct sockaddr_in *) e->ai_dst_addr)->sin_addr, ip, sizeof ip);
Reviewed-by: Pankaj Gupta <pankaj.gupta@ionos.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] migration/rdma: set the REUSEADDR option for destination
2022-02-08 8:56 [PATCH v2] migration/rdma: set the REUSEADDR option for destination Jack Wang
2022-02-08 10:58 ` Dr. David Alan Gilbert
2022-02-08 11:04 ` Pankaj Gupta
@ 2022-03-02 11:41 ` Dr. David Alan Gilbert
2 siblings, 0 replies; 4+ messages in thread
From: Dr. David Alan Gilbert @ 2022-03-02 11:41 UTC (permalink / raw)
To: Jack Wang; +Cc: qemu-devel, pankaj.gupta, quintela
* Jack Wang (jinpu.wang@ionos.com) wrote:
> We hit following error during testing RDMA transport:
> in case of migration error, mgmt daemon pick one migration port,
> incoming rdma:[::]:8089: RDMA ERROR: Error: could not rdma_bind_addr
>
> Then try another -incoming rdma:[::]:8103, sometime it worked,
> sometimes need another try with other ports number.
>
> Set the REUSEADDR option for destination, This allow address could
> be reused to avoid rdma_bind_addr error out.
>
> Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
Queued
> ---
> v2: extend commit message as discussed with Pankaj and David
> ---
> migration/rdma.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/migration/rdma.c b/migration/rdma.c
> index c7c7a384875b..663e1fbb096d 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -2705,6 +2705,7 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp)
> char ip[40] = "unknown";
> struct rdma_addrinfo *res, *e;
> char port_str[16];
> + int reuse = 1;
>
> for (idx = 0; idx < RDMA_WRID_MAX; idx++) {
> rdma->wr_data[idx].control_len = 0;
> @@ -2740,6 +2741,12 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp)
> goto err_dest_init_bind_addr;
> }
>
> + ret = rdma_set_option(listen_id, RDMA_OPTION_ID, RDMA_OPTION_ID_REUSEADDR,
> + &reuse, sizeof reuse);
> + if (ret) {
> + ERROR(errp, "Error: could not set REUSEADDR option");
> + goto err_dest_init_bind_addr;
> + }
> for (e = res; e != NULL; e = e->ai_next) {
> inet_ntop(e->ai_family,
> &((struct sockaddr_in *) e->ai_dst_addr)->sin_addr, ip, sizeof ip);
> --
> 2.25.1
>
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-03-02 13:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-08 8:56 [PATCH v2] migration/rdma: set the REUSEADDR option for destination Jack Wang
2022-02-08 10:58 ` Dr. David Alan Gilbert
2022-02-08 11:04 ` Pankaj Gupta
2022-03-02 11:41 ` Dr. David Alan Gilbert
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).