qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/52] migration/rdma: Error handling fixes
@ 2023-09-18 14:41 Markus Armbruster
  2023-09-18 14:41 ` [PATCH 01/52] migration/rdma: Clean up qemu_rdma_poll()'s return type Markus Armbruster
                   ` (53 more replies)
  0 siblings, 54 replies; 174+ messages in thread
From: Markus Armbruster @ 2023-09-18 14:41 UTC (permalink / raw)
  To: qemu-devel; +Cc: quintela, peterx, leobras

Oh dear, where to start.  There's so much wrong, and in pretty obvious
ways.  This code should never have passed review.  I'm refraining from
saying more; see the commit messages instead.

Issues remaining after this series include:

* Terrible error messages

* Some error message cascades remain

* There is no written contract for QEMUFileHooks, and the
  responsibility for reporting errors is unclear

* There seem to be no tests whatsoever

Related: [PATCH 1/7] migration/rdma: Fix save_page method to fail on
polling error

Markus Armbruster (52):
  migration/rdma: Clean up qemu_rdma_poll()'s return type
  migration/rdma: Clean up qemu_rdma_data_init()'s return type
  migration/rdma: Clean up rdma_delete_block()'s return type
  migration/rdma: Drop fragile wr_id formatting
  migration/rdma: Consistently use uint64_t for work request IDs
  migration/rdma: Clean up two more harmless signed vs. unsigned issues
  migration/rdma: Give qio_channel_rdma_source_funcs internal linkage
  migration/rdma: Fix qemu_rdma_accept() to return failure on errors
  migration/rdma: Put @errp parameter last
  migration/rdma: Eliminate error_propagate()
  migration/rdma: Drop rdma_add_block() error handling
  migration/rdma: Drop qemu_rdma_search_ram_block() error handling
  migration/rdma: Make qemu_rdma_buffer_mergable() return bool
  migration/rdma: Use bool for two RDMAContext flags
  migration/rdma: Ditch useless numeric error codes in error messages
  migration/rdma: Fix io_writev(), io_readv() methods to obey contract
  migration/rdma: Replace dangerous macro CHECK_ERROR_STATE()
  migration/rdma: Fix qemu_rdma_broken_ipv6_kernel() to set error
  migration/rdma: Fix qemu_get_cm_event_timeout() to always set error
  migration/rdma: Drop dead qemu_rdma_data_init() code for !@host_port
  migration/rdma: Fix QEMUFileHooks method return values
  migration/rdma: Fix rdma_getaddrinfo() error checking
  migration/rdma: Clean up qemu_rdma_wait_comp_channel()'s error value
  migration/rdma: Return -1 instead of negative errno code
  migration/rdma: Dumb down remaining int error values to -1
  migration/rdma: Replace int error_state by bool errored
  migration/rdma: Drop superfluous assignments to @ret
  migration/rdma: Check negative error values the same way everywhere
  migration/rdma: Plug a memory leak and improve a message
  migration/rdma: Delete inappropriate error_report() in macro ERROR()
  migration/rdma: Retire macro ERROR()
  migration/rdma: Fix error handling around rdma_getaddrinfo()
  migration/rdma: Drop "@errp is clear" guards around error_setg()
  migration/rdma: Convert qemu_rdma_exchange_recv() to Error
  migration/rdma: Convert qemu_rdma_exchange_send() to Error
  migration/rdma: Convert qemu_rdma_exchange_get_response() to Error
  migration/rdma: Convert qemu_rdma_reg_whole_ram_blocks() to Error
  migration/rdma: Convert qemu_rdma_write_flush() to Error
  migration/rdma: Convert qemu_rdma_write_one() to Error
  migration/rdma: Convert qemu_rdma_write() to Error
  migration/rdma: Convert qemu_rdma_post_send_control() to Error
  migration/rdma: Convert qemu_rdma_post_recv_control() to Error
  migration/rdma: Convert qemu_rdma_alloc_pd_cq() to Error
  migration/rdma: Silence qemu_rdma_resolve_host()
  migration/rdma: Silence qemu_rdma_connect()
  migration/rdma: Silence qemu_rdma_reg_control()
  migration/rdma: Don't report received completion events as error
  migration/rdma: Silence qemu_rdma_block_for_wrid()
  migration/rdma: Silence qemu_rdma_register_and_get_keys()
  migration/rdma: Silence qemu_rdma_cleanup()
  migration/rdma: Use error_report() & friends instead of stderr
  migration/rdma: Fix how we show device details on open

 migration/rdma.c       | 977 ++++++++++++++++++++---------------------
 migration/trace-events |   8 +-
 2 files changed, 487 insertions(+), 498 deletions(-)

-- 
2.41.0



^ permalink raw reply	[flat|nested] 174+ messages in thread

end of thread, other threads:[~2023-10-31 10:26 UTC | newest]

Thread overview: 174+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-18 14:41 [PATCH 00/52] migration/rdma: Error handling fixes Markus Armbruster
2023-09-18 14:41 ` [PATCH 01/52] migration/rdma: Clean up qemu_rdma_poll()'s return type Markus Armbruster
2023-09-18 16:50   ` Fabiano Rosas
2023-09-21  8:52   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 02/52] migration/rdma: Clean up qemu_rdma_data_init()'s " Markus Armbruster
2023-09-18 16:51   ` Fabiano Rosas
2023-09-21  8:52   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 03/52] migration/rdma: Clean up rdma_delete_block()'s " Markus Armbruster
2023-09-18 16:53   ` Fabiano Rosas
2023-09-21  8:53   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 04/52] migration/rdma: Drop fragile wr_id formatting Markus Armbruster
2023-09-18 17:01   ` Fabiano Rosas
2023-09-21  8:54   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 05/52] migration/rdma: Consistently use uint64_t for work request IDs Markus Armbruster
2023-09-18 17:03   ` Fabiano Rosas
2023-09-19  5:39   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 06/52] migration/rdma: Clean up two more harmless signed vs. unsigned issues Markus Armbruster
2023-09-18 17:10   ` Fabiano Rosas
2023-09-20 13:11     ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 07/52] migration/rdma: Give qio_channel_rdma_source_funcs internal linkage Markus Armbruster
2023-09-18 17:11   ` Fabiano Rosas
2023-09-21  9:00   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 08/52] migration/rdma: Fix qemu_rdma_accept() to return failure on errors Markus Armbruster
2023-09-18 17:15   ` Fabiano Rosas
2023-09-21  9:07   ` Zhijian Li (Fujitsu)
2023-09-28 10:53     ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 09/52] migration/rdma: Put @errp parameter last Markus Armbruster
2023-09-18 17:17   ` Fabiano Rosas
2023-09-21  9:08   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 10/52] migration/rdma: Eliminate error_propagate() Markus Armbruster
2023-09-18 17:20   ` Fabiano Rosas
2023-09-21  9:31   ` Zhijian Li (Fujitsu)
2023-09-27 16:20   ` Eric Blake
2023-09-27 19:02     ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 11/52] migration/rdma: Drop rdma_add_block() error handling Markus Armbruster
2023-09-18 17:32   ` Fabiano Rosas
2023-09-21  9:39   ` Zhijian Li (Fujitsu)
2023-09-21 11:15     ` Markus Armbruster
2023-09-22  7:49       ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 12/52] migration/rdma: Drop qemu_rdma_search_ram_block() " Markus Armbruster
2023-09-18 17:35   ` Fabiano Rosas
2023-09-20 13:11     ` Markus Armbruster
2023-09-22  7:50   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 13/52] migration/rdma: Make qemu_rdma_buffer_mergable() return bool Markus Armbruster
2023-09-18 17:36   ` Fabiano Rosas
2023-09-22  7:51   ` Zhijian Li (Fujitsu)
2023-09-27 16:26   ` Eric Blake
2023-09-27 19:04     ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 14/52] migration/rdma: Use bool for two RDMAContext flags Markus Armbruster
2023-09-18 17:37   ` Fabiano Rosas
2023-09-22  7:54   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 15/52] migration/rdma: Ditch useless numeric error codes in error messages Markus Armbruster
2023-09-18 18:47   ` Fabiano Rosas
2023-09-22  8:44   ` Zhijian Li (Fujitsu)
2023-09-22  9:43     ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 16/52] migration/rdma: Fix io_writev(), io_readv() methods to obey contract Markus Armbruster
2023-09-18 18:57   ` Fabiano Rosas
2023-09-22  8:59   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 17/52] migration/rdma: Replace dangerous macro CHECK_ERROR_STATE() Markus Armbruster
2023-09-18 18:57   ` Fabiano Rosas
2023-09-22  9:01   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 18/52] migration/rdma: Fix qemu_rdma_broken_ipv6_kernel() to set error Markus Armbruster
2023-09-18 19:00   ` Fabiano Rosas
2023-09-22  9:10   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 19/52] migration/rdma: Fix qemu_get_cm_event_timeout() to always " Markus Armbruster
2023-09-19 16:02   ` Peter Xu
2023-09-22  9:12   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 20/52] migration/rdma: Drop dead qemu_rdma_data_init() code for !@host_port Markus Armbruster
2023-09-19 16:02   ` Peter Xu
2023-09-20 13:13     ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 21/52] migration/rdma: Fix QEMUFileHooks method return values Markus Armbruster
2023-09-25  4:08   ` Zhijian Li (Fujitsu)
2023-09-25  6:36     ` Markus Armbruster
2023-09-25  7:03       ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 22/52] migration/rdma: Fix rdma_getaddrinfo() error checking Markus Armbruster
2023-09-25  5:21   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 23/52] migration/rdma: Clean up qemu_rdma_wait_comp_channel()'s error value Markus Armbruster
2023-09-25  5:43   ` Zhijian Li (Fujitsu)
2023-09-25  6:55     ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 24/52] migration/rdma: Return -1 instead of negative errno code Markus Armbruster
2023-09-26 10:15   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 25/52] migration/rdma: Dumb down remaining int error values to -1 Markus Armbruster
2023-09-26 10:16   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 26/52] migration/rdma: Replace int error_state by bool errored Markus Armbruster
2023-09-25  6:17   ` Zhijian Li (Fujitsu)
2023-09-25  7:09     ` Markus Armbruster
2023-09-26 10:18       ` Zhijian Li (Fujitsu)
2023-09-27 17:38   ` Eric Blake
2023-09-27 19:04     ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 27/52] migration/rdma: Drop superfluous assignments to @ret Markus Armbruster
2023-09-25  6:20   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 28/52] migration/rdma: Check negative error values the same way everywhere Markus Armbruster
2023-09-25  6:26   ` Zhijian Li (Fujitsu)
2023-09-25  7:29     ` Markus Armbruster
2023-10-04 16:32       ` Juan Quintela
2023-10-04 16:57         ` Peter Xu
2023-10-05  5:45           ` Markus Armbruster
2023-10-05 14:52             ` Peter Xu
2023-10-05 16:06               ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 29/52] migration/rdma: Plug a memory leak and improve a message Markus Armbruster
2023-09-25  6:31   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 30/52] migration/rdma: Delete inappropriate error_report() in macro ERROR() Markus Armbruster
2023-09-25  6:35   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 31/52] migration/rdma: Retire " Markus Armbruster
2023-09-25  7:31   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 32/52] migration/rdma: Fix error handling around rdma_getaddrinfo() Markus Armbruster
2023-09-25  7:32   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 33/52] migration/rdma: Drop "@errp is clear" guards around error_setg() Markus Armbruster
2023-09-25  7:32   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 34/52] migration/rdma: Convert qemu_rdma_exchange_recv() to Error Markus Armbruster
2023-09-26  1:37   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 35/52] migration/rdma: Convert qemu_rdma_exchange_send() " Markus Armbruster
2023-09-26  1:42   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 36/52] migration/rdma: Convert qemu_rdma_exchange_get_response() " Markus Armbruster
2023-09-26  1:45   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 37/52] migration/rdma: Convert qemu_rdma_reg_whole_ram_blocks() " Markus Armbruster
2023-09-26  1:51   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 38/52] migration/rdma: Convert qemu_rdma_write_flush() " Markus Armbruster
2023-09-26  1:56   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 39/52] migration/rdma: Convert qemu_rdma_write_one() " Markus Armbruster
2023-09-26  5:24   ` Zhijian Li (Fujitsu)
2023-09-26  5:50   ` Zhijian Li (Fujitsu)
2023-09-26  5:55     ` Zhijian Li (Fujitsu)
2023-09-26  9:26       ` Markus Armbruster
2023-09-27 11:46         ` Markus Armbruster
2023-09-28  6:49           ` Markus Armbruster
2023-10-07  3:40           ` Zhijian Li (Fujitsu)
2023-10-16 12:11             ` Jason Gunthorpe
2023-10-17  5:22               ` Zhijian Li (Fujitsu)
2023-09-26  6:40     ` Markus Armbruster
2023-09-18 14:41 ` [PATCH 40/52] migration/rdma: Convert qemu_rdma_write() " Markus Armbruster
2023-09-26  5:25   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 41/52] migration/rdma: Convert qemu_rdma_post_send_control() " Markus Armbruster
2023-09-26  5:29   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 42/52] migration/rdma: Convert qemu_rdma_post_recv_control() " Markus Armbruster
2023-09-26  5:31   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 43/52] migration/rdma: Convert qemu_rdma_alloc_pd_cq() " Markus Armbruster
2023-09-26  5:43   ` Zhijian Li (Fujitsu)
2023-09-26  6:41     ` Markus Armbruster
2023-09-26  6:55       ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 44/52] migration/rdma: Silence qemu_rdma_resolve_host() Markus Armbruster
2023-09-26  5:44   ` Zhijian Li (Fujitsu)
2023-09-18 14:41 ` [PATCH 45/52] migration/rdma: Silence qemu_rdma_connect() Markus Armbruster
2023-09-26  6:00   ` Zhijian Li (Fujitsu)
2023-09-18 14:42 ` [PATCH 46/52] migration/rdma: Silence qemu_rdma_reg_control() Markus Armbruster
2023-09-26  6:00   ` Zhijian Li (Fujitsu)
2023-09-18 14:42 ` [PATCH 47/52] migration/rdma: Don't report received completion events as error Markus Armbruster
2023-09-26  6:06   ` Zhijian Li (Fujitsu)
2023-09-18 14:42 ` [PATCH 48/52] migration/rdma: Silence qemu_rdma_block_for_wrid() Markus Armbruster
2023-09-26  6:17   ` Zhijian Li (Fujitsu)
2023-09-18 14:42 ` [PATCH 49/52] migration/rdma: Silence qemu_rdma_register_and_get_keys() Markus Armbruster
2023-09-26  6:21   ` Zhijian Li (Fujitsu)
2023-09-18 14:42 ` [PATCH 50/52] migration/rdma: Silence qemu_rdma_cleanup() Markus Armbruster
2023-09-26 10:12   ` Zhijian Li (Fujitsu)
2023-09-26 11:52     ` Markus Armbruster
2023-09-27  1:41       ` Zhijian Li (Fujitsu)
2023-09-27  5:30         ` Markus Armbruster
2023-09-18 14:42 ` [PATCH 51/52] migration/rdma: Use error_report() & friends instead of stderr Markus Armbruster
2023-09-26  6:35   ` Zhijian Li (Fujitsu)
2023-09-27 12:16     ` Markus Armbruster
2023-09-18 14:42 ` [PATCH 52/52] migration/rdma: Fix how we show device details on open Markus Armbruster
2023-09-26  6:49   ` Zhijian Li (Fujitsu)
2023-09-26  9:19     ` Markus Armbruster
2023-09-19 16:49 ` [PATCH 00/52] migration/rdma: Error handling fixes Peter Xu
2023-09-19 18:29   ` Daniel P. Berrangé
2023-09-19 18:57     ` Fabiano Rosas
2023-09-20 13:22     ` Markus Armbruster
2023-10-04 18:00     ` Juan Quintela
2023-10-05  7:14       ` Daniel P. Berrangé
2023-10-31 10:25         ` Juan Quintela
2023-09-21  8:27   ` Zhijian Li (Fujitsu)
2023-09-22 15:21     ` Peter Xu
2023-09-25  8:06       ` Zhijian Li (Fujitsu)
2023-09-28 11:08 ` Markus Armbruster

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).