Message ID | 20240320064911.545001-1-clg@redhat.com |
---|---|
Headers | show |
Series | migration: Improve error reporting | expand |
On Wed, Mar 20, 2024 at 07:48:56AM +0100, Cédric Le Goater wrote: > Hello, > > The motivation behind these changes is to improve error reporting to > the upper management layer (libvirt) with a more detailed error, this > to let it decide, depending on the reported error, whether to try > migration again later. It would be useful in cases where migration > fails due to lack of HW resources on the host. For instance, some > adapters can only initiate a limited number of simultaneous dirty > tracking requests and this imposes a limit on the the number of VMs > that can be migrated simultaneously. > > We are not quite ready for such a mechanism but what we can do first is > to cleanup the error reporting in the early save_setup sequence. This > is what the following changes propose, by adding an Error** argument to > various handlers and propagating it to the core migration subsystem. > > > Patchset is organized as follow : > > * [1-4] are prerequisite changes in other components related to the > migration save_setup() handler. They make sure a failure is not > returned without setting an error. > > s390/stattrib: Add Error** argument to set_migrationmode() handler > vfio: Always report an error in vfio_save_setup() > migration: Always report an error in block_save_setup() > migration: Always report an error in ram_save_setup() > migration: Add Error** argument to vmstate_save() > > * [5-14] are the core changes in migration and memory components to > propagate an error reported in a save_setup() handler. > > migration: Add Error** argument to qemu_savevm_state_setup() > migration: Add Error** argument to .save_setup() handler > migration: Add Error** argument to .load_setup() handler > memory: Add Error** argument to .log_global_start() handler > migration: Introduce ram_bitmaps_destroy() > memory: Add Error** argument to the global_dirty_log routines > migration: Add Error** argument to ram_state_init() > migration: Add Error** argument to xbzrle_init() > migration: Modify ram_init_bitmaps() to report dirty tracking errors > > The VFIO changes depend on the above. They are simpler and have been > reviewed already. I kept them for another series. queued for 9.1, thanks.