)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e31f24ce138386ac8e6a47baf73a7df61e3a2d89","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"live_migration_downtime_steps \u0026\u0026 live_migration_downtime_delay"},{"line_number":14,"context_line":"as smaller as possible."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I84cc08d3170be60d70783d4c3808a71d2033a054"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"4268b770_fc179697","line":15,"updated":"2024-11-19 09:28:40.000000000","message":"we need at least a blueprint filed and discussed in one of the nova meetings. \n\nCould you please try to describe what problem you are trying to solve and not just the proposed solution?\n\n[1]https://docs.openstack.org/nova/latest/contributor/process.html#how-do-i-get-my-code-merged","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"},{"author":{"_account_id":35560,"name":"zhou zhong","display_name":"zhouzhong","email":"zhong.zhou@easystack.cn","username":"Mizar"},"change_message_id":"0b9a883b7e90707f496971b11711d8143cf6b0c2","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"live_migration_downtime_steps \u0026\u0026 live_migration_downtime_delay"},{"line_number":14,"context_line":"as smaller as possible."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I84cc08d3170be60d70783d4c3808a71d2033a054"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"fcf29dfa_b6279f66","line":15,"in_reply_to":"4268b770_fc179697","updated":"2025-01-22 08:27:12.000000000","message":"Done","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"}],"nova/conf/libvirt.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e31f24ce138386ac8e6a47baf73a7df61e3a2d89","unresolved":true,"context_lines":[{"line_number":431,"context_line":"    * live_migration_permit_post_copy"},{"line_number":432,"context_line":"\"\"\"),"},{"line_number":433,"context_line":"    cfg.IntOpt(\u0027live_migration_auto_converge_initial\u0027,"},{"line_number":434,"context_line":"               default\u003d20,"},{"line_number":435,"context_line":"               min\u003d20,"},{"line_number":436,"context_line":"               help\u003d\"\"\""},{"line_number":437,"context_line":"The initial percentage guest CPUs are throttled to when auto-convergence"}],"source_content_type":"text/x-python","patch_set":4,"id":"875a3909_feefcfd6","line":434,"updated":"2024-11-19 09:28:40.000000000","message":"does the default aligns with the libvirts default? If not then it should to avoid changed behavior after an upgrade.","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"},{"author":{"_account_id":35560,"name":"zhou zhong","display_name":"zhouzhong","email":"zhong.zhou@easystack.cn","username":"Mizar"},"change_message_id":"0b9a883b7e90707f496971b11711d8143cf6b0c2","unresolved":false,"context_lines":[{"line_number":431,"context_line":"    * live_migration_permit_post_copy"},{"line_number":432,"context_line":"\"\"\"),"},{"line_number":433,"context_line":"    cfg.IntOpt(\u0027live_migration_auto_converge_initial\u0027,"},{"line_number":434,"context_line":"               default\u003d20,"},{"line_number":435,"context_line":"               min\u003d20,"},{"line_number":436,"context_line":"               help\u003d\"\"\""},{"line_number":437,"context_line":"The initial percentage guest CPUs are throttled to when auto-convergence"}],"source_content_type":"text/x-python","patch_set":4,"id":"5b204745_b4118fbf","line":434,"in_reply_to":"875a3909_feefcfd6","updated":"2025-01-22 08:27:12.000000000","message":"yes, they are default by libvirt/qemu, see at QEMU wiki: https://wiki.qemu.org/Features/AutoconvergeLiveMigration","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e31f24ce138386ac8e6a47baf73a7df61e3a2d89","unresolved":true,"context_lines":[{"line_number":442,"context_line":"    * live_migration_permit_auto_converge"},{"line_number":443,"context_line":"\"\"\"),"},{"line_number":444,"context_line":"    cfg.IntOpt(\u0027live_migration_auto_converge_increment\u0027,"},{"line_number":445,"context_line":"               default\u003d10,"},{"line_number":446,"context_line":"               min\u003d10,"},{"line_number":447,"context_line":"               help\u003d\"\"\""},{"line_number":448,"context_line":"The increment added to live_migration_auto_converge_initial whenever the"}],"source_content_type":"text/x-python","patch_set":4,"id":"4a475be2_19e4db4d","line":445,"updated":"2024-11-19 09:28:40.000000000","message":"ditto","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"},{"author":{"_account_id":35560,"name":"zhou zhong","display_name":"zhouzhong","email":"zhong.zhou@easystack.cn","username":"Mizar"},"change_message_id":"0b9a883b7e90707f496971b11711d8143cf6b0c2","unresolved":false,"context_lines":[{"line_number":442,"context_line":"    * live_migration_permit_auto_converge"},{"line_number":443,"context_line":"\"\"\"),"},{"line_number":444,"context_line":"    cfg.IntOpt(\u0027live_migration_auto_converge_increment\u0027,"},{"line_number":445,"context_line":"               default\u003d10,"},{"line_number":446,"context_line":"               min\u003d10,"},{"line_number":447,"context_line":"               help\u003d\"\"\""},{"line_number":448,"context_line":"The increment added to live_migration_auto_converge_initial whenever the"}],"source_content_type":"text/x-python","patch_set":4,"id":"433c07b7_0336d304","line":445,"in_reply_to":"4a475be2_19e4db4d","updated":"2025-01-22 08:27:12.000000000","message":"Done","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e31f24ce138386ac8e6a47baf73a7df61e3a2d89","unresolved":true,"context_lines":[{"line_number":13631,"context_line":"                return_value\u003d\u0027\u0027)"},{"line_number":13632,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.guest.Guest.get_xml_desc\u0027, return_value\u003d\u0027\u0027)"},{"line_number":13633,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":13634,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":13635,"context_line":"    @mock.patch.object(fakelibvirt, \u0027VIR_MIGRATE_COMPRESSED\u0027, True,"},{"line_number":13636,"context_line":"                       create\u003dTrue)"},{"line_number":13637,"context_line":"    def test_live_migration_auto_converge_params("}],"source_content_type":"text/x-python","patch_set":4,"id":"e0679cdb_2d98815c","line":13634,"updated":"2024-11-19 09:28:40.000000000","message":"merge conflict marker","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"},{"author":{"_account_id":35560,"name":"zhou zhong","display_name":"zhouzhong","email":"zhong.zhou@easystack.cn","username":"Mizar"},"change_message_id":"0b9a883b7e90707f496971b11711d8143cf6b0c2","unresolved":false,"context_lines":[{"line_number":13631,"context_line":"                return_value\u003d\u0027\u0027)"},{"line_number":13632,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.guest.Guest.get_xml_desc\u0027, return_value\u003d\u0027\u0027)"},{"line_number":13633,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":13634,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":13635,"context_line":"    @mock.patch.object(fakelibvirt, \u0027VIR_MIGRATE_COMPRESSED\u0027, True,"},{"line_number":13636,"context_line":"                       create\u003dTrue)"},{"line_number":13637,"context_line":"    def test_live_migration_auto_converge_params("}],"source_content_type":"text/x-python","patch_set":4,"id":"41e90d51_042b7451","line":13634,"in_reply_to":"e0679cdb_2d98815c","updated":"2025-01-22 08:27:12.000000000","message":"Done","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e31f24ce138386ac8e6a47baf73a7df61e3a2d89","unresolved":true,"context_lines":[{"line_number":10865,"context_line":"                          migrate_disks\u003ddevice_names,"},{"line_number":10866,"context_line":"                          destination_xml\u003dnew_xml_str,"},{"line_number":10867,"context_line":"                          bandwidth\u003dCONF.libvirt.live_migration_bandwidth,"},{"line_number":10868,"context_line":"                          auto_converge_init\u003dauto_converge_init,"},{"line_number":10869,"context_line":"                          auto_converge_increment\u003dauto_converge_increment)"},{"line_number":10870,"context_line":"            LOG.debug(\"Migrate API has completed\", instance\u003dinstance)"},{"line_number":10871,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"f1b4b6c1_95fcc721","line":10868,"updated":"2024-11-19 09:28:40.000000000","message":"is there any libvirt version dependency for these features? Does nova\u0027s minimum libvirt version already satisfy it?","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"},{"author":{"_account_id":35560,"name":"zhou zhong","display_name":"zhouzhong","email":"zhong.zhou@easystack.cn","username":"Mizar"},"change_message_id":"0b9a883b7e90707f496971b11711d8143cf6b0c2","unresolved":false,"context_lines":[{"line_number":10865,"context_line":"                          migrate_disks\u003ddevice_names,"},{"line_number":10866,"context_line":"                          destination_xml\u003dnew_xml_str,"},{"line_number":10867,"context_line":"                          bandwidth\u003dCONF.libvirt.live_migration_bandwidth,"},{"line_number":10868,"context_line":"                          auto_converge_init\u003dauto_converge_init,"},{"line_number":10869,"context_line":"                          auto_converge_increment\u003dauto_converge_increment)"},{"line_number":10870,"context_line":"            LOG.debug(\"Migrate API has completed\", instance\u003dinstance)"},{"line_number":10871,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"c266604d_e8e457a5","line":10868,"in_reply_to":"f1b4b6c1_95fcc721","updated":"2025-01-22 08:27:12.000000000","message":"auto converge and dynamic throttling[1] were introduced earlier version of libvirt/qemu, but nova only support auto converge now.\n\nI believe nova minimum libvirt version already support the feature, especially dynamic throttling.\n\n[1] https://gitlab.com/libvirt/libvirt/-/commit/f6e12b40295b1601b9911f6ccb46e09bf8e47e85","commit_id":"4b5d754d00bf7c39151e9d12fe563ba7f7d7ffe5"}]}
