Message ID | 20230918144206.560120-48-armbru@redhat.com |
---|---|
State | New |
Headers | show |
Series | migration/rdma: Error handling fixes | expand |
On 18/09/2023 22:42, Markus Armbruster wrote: > When qemu_rdma_wait_comp_channel() receives an event from the > completion channel, it reports an error "receive cm event while wait > comp channel,cm event is T", where T is the numeric event type. > However, the function fails only when T is a disconnect or device > removal. Events other than these two are not actually an error, and > reporting them as an error is wrong. If we need to report them to the > user, we should use something else, and what to use depends on why we > need to report them to the user. > > For now, report this error only when the function actually fails. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Li Zhijian <lizhijian@fujitsu.com> > --- > migration/rdma.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/migration/rdma.c b/migration/rdma.c > index 29ad8ae832..cbf5e6b9a8 100644 > --- a/migration/rdma.c > +++ b/migration/rdma.c > @@ -1566,11 +1566,11 @@ static int qemu_rdma_wait_comp_channel(RDMAContext *rdma, > return -1; > } > > - error_report("receive cm event while wait comp channel," > - "cm event is %d", cm_event->event); > if (cm_event->event == RDMA_CM_EVENT_DISCONNECTED || > cm_event->event == RDMA_CM_EVENT_DEVICE_REMOVAL) { > rdma_ack_cm_event(cm_event); > + error_report("receive cm event while wait comp channel," > + "cm event is %d", cm_event->event); > return -1; > } > rdma_ack_cm_event(cm_event);
diff --git a/migration/rdma.c b/migration/rdma.c index 29ad8ae832..cbf5e6b9a8 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -1566,11 +1566,11 @@ static int qemu_rdma_wait_comp_channel(RDMAContext *rdma, return -1; } - error_report("receive cm event while wait comp channel," - "cm event is %d", cm_event->event); if (cm_event->event == RDMA_CM_EVENT_DISCONNECTED || cm_event->event == RDMA_CM_EVENT_DEVICE_REMOVAL) { rdma_ack_cm_event(cm_event); + error_report("receive cm event while wait comp channel," + "cm event is %d", cm_event->event); return -1; } rdma_ack_cm_event(cm_event);
When qemu_rdma_wait_comp_channel() receives an event from the completion channel, it reports an error "receive cm event while wait comp channel,cm event is T", where T is the numeric event type. However, the function fails only when T is a disconnect or device removal. Events other than these two are not actually an error, and reporting them as an error is wrong. If we need to report them to the user, we should use something else, and what to use depends on why we need to report them to the user. For now, report this error only when the function actually fails. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- migration/rdma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)