)]}'
{"specs/ussuri/approved/support-live-migration-with-vpmems.rst":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"3ed6fc9bc5da5bbee739da7c82dd49346b050ce6","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Live migration with virtual persistent memory is supported by QEMU and Libvirt,"},{"line_number":23,"context_line":"but in Nova we haven\u0027t implemented it in Train."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"OpenStack Nova claims resources on destination host and set up new Libvirt"},{"line_number":26,"context_line":"domain xml on the source host used to start live migration. We need updating"},{"line_number":27,"context_line":"virtual persistent memories info when generating the new Libvirt domain xml,"},{"line_number":28,"context_line":"otherwise the virtual persistent memories info will keep constant, which are"},{"line_number":29,"context_line":"claimed on the source host, probably causing the live migration failed."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_676b2fb9","line":26,"range":{"start_line":25,"start_character":56,"end_line":26,"end_character":24},"updated":"2019-11-27 18:54:03.000000000","message":"Is that... true? I admit I don\u0027t know much about transient vs persistent domain, but I\u0027m pretty sure there\u0027s no second domain that pops up on the source when we do a live migration...","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"a298bf13f69bb5d4ca91e0496cb35553994a60b0","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Live migration with virtual persistent memory is supported by QEMU and Libvirt,"},{"line_number":23,"context_line":"but in Nova we haven\u0027t implemented it in Train."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"OpenStack Nova claims resources on destination host and set up new Libvirt"},{"line_number":26,"context_line":"domain xml on the source host used to start live migration. We need updating"},{"line_number":27,"context_line":"virtual persistent memories info when generating the new Libvirt domain xml,"},{"line_number":28,"context_line":"otherwise the virtual persistent memories info will keep constant, which are"},{"line_number":29,"context_line":"claimed on the source host, probably causing the live migration failed."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_e0a7f408","line":26,"range":{"start_line":25,"start_character":56,"end_line":26,"end_character":24},"in_reply_to":"3fa7e38b_676b2fb9","updated":"2019-11-29 06:52:30.000000000","message":"Sorry, I didn\u0027t make me clear. I mean in Nova, the dest xml is updated on source host[1], since source host launch the live migration which need dest xml. There is only one original domain on the source host.\n\n[1]https://github.com/openstack/nova/blob/12e0c04dc04dbc1ec7964e320e2422037a588c88/nova/virt/libvirt/driver.py#L8522","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"3ed6fc9bc5da5bbee739da7c82dd49346b050ce6","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":"* Nova Compute: use resource tracker to claim specific resources on the"},{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_e74f1f33","line":38,"updated":"2019-11-27 18:54:03.000000000","message":"Reading the original PMEM spec, it looks like PMEM resources are handled entirely in placement, which means the resources would get claimed by the conductor when it starts executing the live migration task [1].\n\n[1] https://github.com/openstack/nova/blob/23995b4f9945aa242f6a9e7bd5bc700c27f31eb2/nova/conductor/tasks/live_migrate.py#L114","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fae2d7943650d10f02bc6bd8b7ec693ba6bdb02c","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":"* Nova Compute: use resource tracker to claim specific resources on the"},{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_cf430311","line":38,"in_reply_to":"3fa7e38b_c093d8a3","updated":"2019-11-29 14:31:21.000000000","message":"Oh right, it\u0027s like the situation with PCPUs - placement tracks how many (inventories and allocations), the resource trackers tracks *which specific ones*. You could probably clarify this sentence to avoid further questions from other reviewers.","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"a298bf13f69bb5d4ca91e0496cb35553994a60b0","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":"* Nova Compute: use resource tracker to claim specific resources on the"},{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_c093d8a3","line":38,"in_reply_to":"3fa7e38b_e74f1f33","updated":"2019-11-29 06:52:30.000000000","message":"From placement we just get the allocations, we need Resource Tracker to determine which vpmem will be assigned to instance. You can have a look at [1], it\u0027s initial patch to implement this spec.\n\nhttps://review.opendev.org/#/c/687856/3/nova/compute/resource_tracker.py","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"9b3cacb22011d625191036e185c7b90520167621","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":"* Nova Compute: use resource tracker to claim specific resources on the"},{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_1e30a454","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":17},"updated":"2019-11-26 07:07:36.000000000","message":"I assume this is the libvirt driver on the destination host. Is that correct? Better to say source or destination explicitly.","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"e2fb0c5452b8a00f3b39d4953dab2b692815241a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":"* Nova Compute: use resource tracker to claim specific resources on the"},{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_1faacdd2","line":40,"range":{"start_line":40,"start_character":2,"end_line":40,"end_character":17},"in_reply_to":"3fa7e38b_1e30a454","updated":"2019-11-27 08:25:45.000000000","message":"new xml is built on source host, we bring new vpmems info from dest to source and update the xml. I\u0027ll clarify this.","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6ec124b4bc3c23f76384397cf6c3e1b11838358a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":"* Nova Compute: use resource tracker to claim specific resources on the"},{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_b695e6e5","line":41,"range":{"start_line":40,"start_character":69,"end_line":41,"end_character":20},"updated":"2019-11-27 02:47:27.000000000","message":"similar comment with Rui, update the dest persistent memory into the XML","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"e2fb0c5452b8a00f3b39d4953dab2b692815241a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":"* Nova Compute: use resource tracker to claim specific resources on the"},{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_3fa7890c","line":41,"range":{"start_line":40,"start_character":69,"end_line":41,"end_character":20},"in_reply_to":"3fa7e38b_b695e6e5","updated":"2019-11-27 08:25:45.000000000","message":"Yeah, thanks.","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"9b3cacb22011d625191036e185c7b90520167621","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_5e137cb8","line":42,"updated":"2019-11-26 07:07:36.000000000","message":"Is there going to be any change to the failing code path? \nIf the namespaces have been claimed in the destination, and the live migration fails, how will this case be handled?\nIf any of the persistent memory data has been copied to the destination, and the live migration somehow fails, will the data on the destination be cleaned up? Who will do that?","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"e2fb0c5452b8a00f3b39d4953dab2b692815241a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_5fee0522","line":42,"in_reply_to":"3fa7e38b_5e137cb8","updated":"2019-11-27 08:25:45.000000000","message":"if resources claiming fails, we don\u0027t need do anything, since the live migration does not start yet. Current code patch will reset the instance status.\n\nIf live migration fail during migrating, live migration rollback will handle that and cleanup the destination host. But if rollback fails, it\u0027s another topic, bug fix about \u0027track and cleanup error migrations and orphans\u0027 engaged.","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"3551b345f4cb56da2689776db71ff4824c07ac2e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  destination host, including virtual persistent memory."},{"line_number":40,"context_line":"* Libvirt Driver: generate new domain xml for live migration, update virtual"},{"line_number":41,"context_line":"  persistent memory info inside the original xml."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"},{"line_number":45,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_f319c186","line":42,"in_reply_to":"3fa7e38b_5fee0522","updated":"2019-12-05 08:09:44.000000000","message":"my reply above is inaccurate, please see the updated patch.","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6ec124b4bc3c23f76384397cf6c3e1b11838358a","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Data model impact"},{"line_number":48,"context_line":"-----------------"},{"line_number":49,"context_line":"TBD"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"REST API impact"},{"line_number":52,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_769f6e02","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":3},"updated":"2019-11-27 02:47:27.000000000","message":"we can say we are using the existing instance.migration_context bring the dest vpmem info to the source node.","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"3ed6fc9bc5da5bbee739da7c82dd49346b050ce6","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Performance Impact"},{"line_number":68,"context_line":"------------------"},{"line_number":69,"context_line":"In virtualization layer, QEMU treats virtual persistent memory as volatile"},{"line_number":70,"context_line":"memory in case of live migration. It just takes longer time due to the typical"},{"line_number":71,"context_line":"large capacity of virtual persistent memory."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Other deployer impact"},{"line_number":74,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_670a4fd2","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":44},"updated":"2019-11-27 18:54:03.000000000","message":"Can we just clarify that QEMU will indeed copy PMEM memory over the network like any other memory? That\u0027s a pretty major performance impact, given the sizes we\u0027re talking about.","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"a298bf13f69bb5d4ca91e0496cb35553994a60b0","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Performance Impact"},{"line_number":68,"context_line":"------------------"},{"line_number":69,"context_line":"In virtualization layer, QEMU treats virtual persistent memory as volatile"},{"line_number":70,"context_line":"memory in case of live migration. It just takes longer time due to the typical"},{"line_number":71,"context_line":"large capacity of virtual persistent memory."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Other deployer impact"},{"line_number":74,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_40e5a83d","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":44},"in_reply_to":"3fa7e38b_670a4fd2","updated":"2019-11-29 06:52:30.000000000","message":"Sure. I\u0027ll update","commit_id":"eb9fd393943730b2efd4677fdbf08374eff5651e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"24069e437648990bd67d3ed838151813a97dd420","unresolved":false,"context_lines":[{"line_number":28,"context_line":"or stored in migration_context when migrating. As far as Nova concerned,"},{"line_number":29,"context_line":"several problems need to be addressed:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Reject the request of post-copy live migration with vpmem"},{"line_number":32,"context_line":"* Claim resources from placement when migrating"},{"line_number":33,"context_line":"* Assign specific resources to instance according to the allcations from"},{"line_number":34,"context_line":"  placement and track them"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_b50c26eb","line":31,"range":{"start_line":31,"start_character":1,"end_line":31,"end_character":59},"updated":"2019-12-12 14:48:22.000000000","message":"you could optionally downgrade it to a pre-copy migration if post copy is enabled but im fine with rejecting too.","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"4f240d966e1978bdc1f1271e67eace05fe52a52a","unresolved":false,"context_lines":[{"line_number":28,"context_line":"or stored in migration_context when migrating. As far as Nova concerned,"},{"line_number":29,"context_line":"several problems need to be addressed:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Reject the request of post-copy live migration with vpmem"},{"line_number":32,"context_line":"* Claim resources from placement when migrating"},{"line_number":33,"context_line":"* Assign specific resources to instance according to the allcations from"},{"line_number":34,"context_line":"  placement and track them"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_26f324a1","line":31,"range":{"start_line":31,"start_character":1,"end_line":31,"end_character":59},"in_reply_to":"3fa7e38b_b50c26eb","updated":"2019-12-13 08:18:18.000000000","message":"agree","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"24069e437648990bd67d3ed838151813a97dd420","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"* Nova API: reject post-copy live migration if instance has vpmem resources."},{"line_number":48,"context_line":"* Nova Conduct: claim resources from placement first if specifying target host,"},{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_d52c424b","line":47,"range":{"start_line":47,"start_character":11,"end_line":47,"end_character":76},"updated":"2019-12-12 14:48:22.000000000","message":"this is a per host config option so i dont think you can reject it at the api level as you need to know the host.\n\nyou could proably reject this at the conductor level.\nyou could also just have the libvirt virt driver check if the instnace had a vpmem device and alway use pre copy migration in that case even if post copy is enabled","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"5801925c4afa498f92b664de2148fd16ec29babd","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"* Nova API: reject post-copy live migration if instance has vpmem resources."},{"line_number":48,"context_line":"* Nova Conduct: claim resources from placement first if specifying target host,"},{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_c43f9320","line":47,"range":{"start_line":47,"start_character":11,"end_line":47,"end_character":76},"in_reply_to":"3fa7e38b_0ed4ec4a","updated":"2019-12-16 03:54:23.000000000","message":"Thanks Alex. if post-copy is enabled, it will be will be triggered after pre-copy timeout. I\u0027ll change libvirt driver to disable the post-copy for the instance which has vpmems.","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2a3a704cc6b9645fb558d8b1ec931e10fb1d448e","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"* Nova API: reject post-copy live migration if instance has vpmem resources."},{"line_number":48,"context_line":"* Nova Conduct: claim resources from placement first if specifying target host,"},{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_0ed4ec4a","line":47,"range":{"start_line":47,"start_character":11,"end_line":47,"end_character":76},"in_reply_to":"3fa7e38b_8603f8bd","updated":"2019-12-15 13:37:38.000000000","message":"As my understand, the post-copy is tiggered by live_migration_completion_timeout or force_complete API https://docs.openstack.org/api-ref/compute/?expanded\u003dforce-migration-complete-action-force-complete-action-detail#force-migration-complete-action-force-complete-action\n\nIf that is correct, so yes, we needn\u0027t reject the API, just switch to pause the VM, not the post-copy.","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"4f240d966e1978bdc1f1271e67eace05fe52a52a","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"* Nova API: reject post-copy live migration if instance has vpmem resources."},{"line_number":48,"context_line":"* Nova Conduct: claim resources from placement first if specifying target host,"},{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_8603f8bd","line":47,"range":{"start_line":47,"start_character":11,"end_line":47,"end_character":76},"in_reply_to":"3fa7e38b_d52c424b","updated":"2019-12-13 08:18:18.000000000","message":"yeah you\u0027re right. I need to get host in conductor and then know if the host enable post-copy by nova compute.\n\nI made a mistake that I thought the \u0027live_migration_permit_post_copy\u0027 option is forcing post-copy. So I try to reject the request of vpmem post-copy.\n\nI agree with that downgrade it to pre-copy if there are vpmems, I think this is better/reasonable/easier/ than rejecting request.","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"24069e437648990bd67d3ed838151813a97dd420","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"* Nova API: reject post-copy live migration if instance has vpmem resources."},{"line_number":48,"context_line":"* Nova Conduct: claim resources from placement first if specifying target host,"},{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"},{"line_number":51,"context_line":"  the target host according to the allocations from placement, and stored in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_55205249","line":48,"range":{"start_line":48,"start_character":7,"end_line":48,"end_character":14},"updated":"2019-12-12 14:48:22.000000000","message":"i always misspell this but it should be Conductor?","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"4f240d966e1978bdc1f1271e67eace05fe52a52a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"* Nova API: reject post-copy live migration if instance has vpmem resources."},{"line_number":48,"context_line":"* Nova Conduct: claim resources from placement first if specifying target host,"},{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"},{"line_number":51,"context_line":"  the target host according to the allocations from placement, and stored in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_a60634cc","line":48,"range":{"start_line":48,"start_character":7,"end_line":48,"end_character":14},"in_reply_to":"3fa7e38b_55205249","updated":"2019-12-13 08:18:18.000000000","message":"yes, it\u0027s a typo","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"24069e437648990bd67d3ed838151813a97dd420","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"* Nova API: reject post-copy live migration if instance has vpmem resources."},{"line_number":48,"context_line":"* Nova Conduct: claim resources from placement first if specifying target host,"},{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"},{"line_number":51,"context_line":"  the target host according to the allocations from placement, and stored in"},{"line_number":52,"context_line":"  instance.migration_context"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_35e6f614","line":49,"range":{"start_line":48,"start_character":16,"end_line":49,"end_character":60},"updated":"2019-12-12 14:48:22.000000000","message":"if you don\u0027t specify the target host you still need to claim the resources as part of selecting the destination.","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"4f240d966e1978bdc1f1271e67eace05fe52a52a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":"* Nova API: reject post-copy live migration if instance has vpmem resources."},{"line_number":48,"context_line":"* Nova Conduct: claim resources from placement first if specifying target host,"},{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"},{"line_number":51,"context_line":"  the target host according to the allocations from placement, and stored in"},{"line_number":52,"context_line":"  instance.migration_context"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_a62f143c","line":49,"range":{"start_line":48,"start_character":16,"end_line":49,"end_character":60},"in_reply_to":"3fa7e38b_35e6f614","updated":"2019-12-13 08:18:18.000000000","message":"\"claim resources from placement\" has already a part of selecting the destination, I don\u0027t need change it.\n\nOnly when specifying target host, current code path first\nassign specific resources on target host, then claim resources from placement, I need reverse the order.","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"24069e437648990bd67d3ed838151813a97dd420","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"},{"line_number":51,"context_line":"  the target host according to the allocations from placement, and stored in"},{"line_number":52,"context_line":"  instance.migration_context"},{"line_number":53,"context_line":"* Libvirt Driver change for vpmem xml: prepare dest xml on source host for live"},{"line_number":54,"context_line":"  migration, update the dest virtual persistent memory info into dest xml"},{"line_number":55,"context_line":"* Libvirt Driver change for vpmem cleanup:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_758eae32","line":52,"range":{"start_line":52,"start_character":1,"end_line":52,"end_character":28},"updated":"2019-12-12 14:48:22.000000000","message":"im not sure they should be in the migration_context.\nthey could be but i would have assumed that they would be stored in the live migration data objects \nhttps://github.com/openstack/nova/blob/master/nova/objects/migrate_data.py#L133","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"4f240d966e1978bdc1f1271e67eace05fe52a52a","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  which are used to assign specific resources on target host"},{"line_number":50,"context_line":"* Nova Compute: use resource tracker to assign and track specific resources on"},{"line_number":51,"context_line":"  the target host according to the allocations from placement, and stored in"},{"line_number":52,"context_line":"  instance.migration_context"},{"line_number":53,"context_line":"* Libvirt Driver change for vpmem xml: prepare dest xml on source host for live"},{"line_number":54,"context_line":"  migration, update the dest virtual persistent memory info into dest xml"},{"line_number":55,"context_line":"* Libvirt Driver change for vpmem cleanup:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_66e4bcdf","line":52,"range":{"start_line":52,"start_character":1,"end_line":52,"end_character":28},"in_reply_to":"3fa7e38b_758eae32","updated":"2019-12-13 08:18:18.000000000","message":"For resize implementation, we store them in migration_context, we just need to make live migration use those code introduced by vpmem resize.","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"24069e437648990bd67d3ed838151813a97dd420","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Performance Impact"},{"line_number":90,"context_line":"------------------"},{"line_number":91,"context_line":"In virtualization layer, QEMU will copy vpmem over the network like volatile"},{"line_number":92,"context_line":"memory. But due to the typical large capacity of vpmem, it may takes longer"},{"line_number":93,"context_line":"time for live migration."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Other deployer impact"},{"line_number":96,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_d58d222a","line":93,"range":{"start_line":91,"start_character":0,"end_line":93,"end_character":24},"updated":"2019-12-12 14:48:22.000000000","message":"there given the data volume there would be a high proablity that it might never complete if the instance workload was activly writing to the pmem but that goes for standard memory as well.","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"4f240d966e1978bdc1f1271e67eace05fe52a52a","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Performance Impact"},{"line_number":90,"context_line":"------------------"},{"line_number":91,"context_line":"In virtualization layer, QEMU will copy vpmem over the network like volatile"},{"line_number":92,"context_line":"memory. But due to the typical large capacity of vpmem, it may takes longer"},{"line_number":93,"context_line":"time for live migration."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Other deployer impact"},{"line_number":96,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_06f86879","line":93,"range":{"start_line":91,"start_character":0,"end_line":93,"end_character":24},"in_reply_to":"3fa7e38b_d58d222a","updated":"2019-12-13 08:18:18.000000000","message":"yeah, I can clarify this in next update.","commit_id":"db7029f59868c587bdabedbe1dd4409b67a9c338"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bb2d571051dc9ee7a4d1119719258cf2f4dbf1af","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Proposed change"},{"line_number":47,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":48,"context_line":"* Nova Conductor:"},{"line_number":49,"context_line":"  if we specify target host and force complete for live migration, current"},{"line_number":50,"context_line":"  code will firstly assign specific resources to instance on target host and"},{"line_number":51,"context_line":"  then claim resources from placement, we need reverse the order since we rely"},{"line_number":52,"context_line":"  on allocations getting from placement to assign specific resources, which is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_5c2f3a3d","line":49,"range":{"start_line":49,"start_character":32,"end_line":49,"end_character":46},"updated":"2020-01-08 07:23:54.000000000","message":"I guess you just talk about the parameter \u0027host\u0027 and \u0027force\u0027 are specified. The \u0027force complete\u0027 is confusing here, it is another action for live migration.","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"3828fe4874a77705d5779f0c4398a918fef381a6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Proposed change"},{"line_number":47,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":48,"context_line":"* Nova Conductor:"},{"line_number":49,"context_line":"  if we specify target host and force complete for live migration, current"},{"line_number":50,"context_line":"  code will firstly assign specific resources to instance on target host and"},{"line_number":51,"context_line":"  then claim resources from placement, we need reverse the order since we rely"},{"line_number":52,"context_line":"  on allocations getting from placement to assign specific resources, which is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_df1eaa5c","line":49,"range":{"start_line":49,"start_character":32,"end_line":49,"end_character":46},"in_reply_to":"3fa7e38b_5c2f3a3d","updated":"2020-01-09 04:06:25.000000000","message":"Get it, will update it.","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f9d7e21bb44efb85783ce89a193671ca63c7fb4","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Proposed change"},{"line_number":47,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":48,"context_line":"* Nova Conductor:"},{"line_number":49,"context_line":"  if we specify target host and force complete for live migration, current"},{"line_number":50,"context_line":"  code will firstly assign specific resources to instance on target host and"},{"line_number":51,"context_line":"  then claim resources from placement, we need reverse the order since we rely"},{"line_number":52,"context_line":"  on allocations getting from placement to assign specific resources, which is"},{"line_number":53,"context_line":"  also our proposed change in following Nova compute."},{"line_number":54,"context_line":"* Nova Compute:"},{"line_number":55,"context_line":"  use resource tracker to assign and track specific resources on"},{"line_number":56,"context_line":"  the target host according to the allocations from placement, and stored in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_962a7b2c","line":53,"range":{"start_line":49,"start_character":2,"end_line":53,"end_character":53},"updated":"2020-01-07 14:01:05.000000000","message":"im not sure that is correct. even if we specify a target host the host will still be sent to the schduler so we should get the allocations from placmeent before we return to the conductor to do any claims.\n\n\nbut yes we should be going to placement first im just not sure you original assertion that we claim the resouces on the dest before going to placemnt is correct.\n\ncan you point me to the current code where the claim happens?","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"3828fe4874a77705d5779f0c4398a918fef381a6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Proposed change"},{"line_number":47,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":48,"context_line":"* Nova Conductor:"},{"line_number":49,"context_line":"  if we specify target host and force complete for live migration, current"},{"line_number":50,"context_line":"  code will firstly assign specific resources to instance on target host and"},{"line_number":51,"context_line":"  then claim resources from placement, we need reverse the order since we rely"},{"line_number":52,"context_line":"  on allocations getting from placement to assign specific resources, which is"},{"line_number":53,"context_line":"  also our proposed change in following Nova compute."},{"line_number":54,"context_line":"* Nova Compute:"},{"line_number":55,"context_line":"  use resource tracker to assign and track specific resources on"},{"line_number":56,"context_line":"  the target host according to the allocations from placement, and stored in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_ff4a8658","line":53,"range":{"start_line":49,"start_character":2,"end_line":53,"end_character":53},"in_reply_to":"3fa7e38b_5cbdfad4","updated":"2020-01-09 04:06:25.000000000","message":"Thanks for Alex helping to point that.","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bb2d571051dc9ee7a4d1119719258cf2f4dbf1af","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Proposed change"},{"line_number":47,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":48,"context_line":"* Nova Conductor:"},{"line_number":49,"context_line":"  if we specify target host and force complete for live migration, current"},{"line_number":50,"context_line":"  code will firstly assign specific resources to instance on target host and"},{"line_number":51,"context_line":"  then claim resources from placement, we need reverse the order since we rely"},{"line_number":52,"context_line":"  on allocations getting from placement to assign specific resources, which is"},{"line_number":53,"context_line":"  also our proposed change in following Nova compute."},{"line_number":54,"context_line":"* Nova Compute:"},{"line_number":55,"context_line":"  use resource tracker to assign and track specific resources on"},{"line_number":56,"context_line":"  the target host according to the allocations from placement, and stored in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_5cbdfad4","line":53,"range":{"start_line":49,"start_character":2,"end_line":53,"end_character":53},"in_reply_to":"3fa7e38b_962a7b2c","updated":"2020-01-08 07:23:54.000000000","message":"I think luyao is pointed to this branch https://github.com/openstack/nova/blob/1fed6bd934b79ef22cd3d167a9277f9946b52f74/nova/conductor/tasks/live_migrate.py#L98","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f9d7e21bb44efb85783ce89a193671ca63c7fb4","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* Nova Compute:"},{"line_number":55,"context_line":"  use resource tracker to assign and track specific resources on"},{"line_number":56,"context_line":"  the target host according to the allocations from placement, and stored in"},{"line_number":57,"context_line":"  instance.migration_context (reuse the code introduced by vpmem resize"},{"line_number":58,"context_line":"  implementation)"},{"line_number":59,"context_line":"* Libvirt Driver change for vpmem post-copy disable:"},{"line_number":60,"context_line":"  if the instance has vpmems, disable the post-copy live migration even if"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_b6d45720","line":57,"range":{"start_line":57,"start_character":2,"end_line":57,"end_character":28},"updated":"2020-01-07 14:01:05.000000000","message":"using the context does not seam correct. i would have expect this to be in the live migration data object. we could reuse the context but live migration tend not to share the same code as resize/coldmigrations. im not going to block on this point but i expect all  data relevant to updating the xml for live migration to be stored in the migration data objects.\nin this case i would expect the pmem data to be stored in the \nLibvirtLiveMigrateData object as we do with the numa info.\nhttps://github.com/openstack/nova/blob/92a97799921624ce7a88c0e7633b104c07feb5e1/nova/objects/migrate_data.py#L211","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bb2d571051dc9ee7a4d1119719258cf2f4dbf1af","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* Nova Compute:"},{"line_number":55,"context_line":"  use resource tracker to assign and track specific resources on"},{"line_number":56,"context_line":"  the target host according to the allocations from placement, and stored in"},{"line_number":57,"context_line":"  instance.migration_context (reuse the code introduced by vpmem resize"},{"line_number":58,"context_line":"  implementation)"},{"line_number":59,"context_line":"* Libvirt Driver change for vpmem post-copy disable:"},{"line_number":60,"context_line":"  if the instance has vpmems, disable the post-copy live migration even if"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_dcc80a76","line":57,"range":{"start_line":57,"start_character":2,"end_line":57,"end_character":28},"in_reply_to":"3fa7e38b_b6d45720","updated":"2020-01-08 07:23:54.000000000","message":"I think whatever we need to record the target vpmem in instance.migration_context, since we need to track the usage of vpmem, and we will do some cleanup when something failed in the periodic task based on instance.migration_context. But the LibvirtLiveMigrateData is only passing on the wire and not persistent, it will lost when something failed.","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"3828fe4874a77705d5779f0c4398a918fef381a6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"* Nova Compute:"},{"line_number":55,"context_line":"  use resource tracker to assign and track specific resources on"},{"line_number":56,"context_line":"  the target host according to the allocations from placement, and stored in"},{"line_number":57,"context_line":"  instance.migration_context (reuse the code introduced by vpmem resize"},{"line_number":58,"context_line":"  implementation)"},{"line_number":59,"context_line":"* Libvirt Driver change for vpmem post-copy disable:"},{"line_number":60,"context_line":"  if the instance has vpmems, disable the post-copy live migration even if"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_df6c6ad0","line":57,"range":{"start_line":57,"start_character":2,"end_line":57,"end_character":28},"in_reply_to":"3fa7e38b_dcc80a76","updated":"2020-01-09 04:06:25.000000000","message":"Agree with Alex. \n\nBesides, we must reuse the code introduced by vpmem resize, and store the vpmem info in migration_context, since we need calculate assigned resources based on migration_context, I left a \u0027TODO\u0027 there.[1]\n\nSo store vpmem info in live migration data obj is replicated.\n\n[1]https://github.com/openstack/nova/blob/1fed6bd934b79ef22cd3d167a9277f9946b52f74/nova/compute/resource_tracker.py#L228","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f9d7e21bb44efb85783ce89a193671ca63c7fb4","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  the target host according to the allocations from placement, and stored in"},{"line_number":57,"context_line":"  instance.migration_context (reuse the code introduced by vpmem resize"},{"line_number":58,"context_line":"  implementation)"},{"line_number":59,"context_line":"* Libvirt Driver change for vpmem post-copy disable:"},{"line_number":60,"context_line":"  if the instance has vpmems, disable the post-copy live migration even if"},{"line_number":61,"context_line":"  post-copy is enabled by Nova configration"},{"line_number":62,"context_line":"* Libvirt Driver change for vpmem xml:"},{"line_number":63,"context_line":"  preipare dest xml on source host for live migration, update the dest virtual"},{"line_number":64,"context_line":"  persistent memory info into dest xml"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_369ce759","line":61,"range":{"start_line":59,"start_character":0,"end_line":61,"end_character":43},"updated":"2020-01-07 14:01:05.000000000","message":"+1","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f9d7e21bb44efb85783ce89a193671ca63c7fb4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* Libvirt Driver change for vpmem xml:"},{"line_number":63,"context_line":"  preipare dest xml on source host for live migration, update the dest virtual"},{"line_number":64,"context_line":"  persistent memory info into dest xml"},{"line_number":65,"context_line":"* Libvirt Driver change or vpmem cleanup:"},{"line_number":66,"context_line":"  If live migration fails, rollback_live_migration_at_destination will cleanup"},{"line_number":67,"context_line":"  vpmems from instance.resources, but instance.resources do not belong to"},{"line_number":68,"context_line":"  target host at that time."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_36c5c73d","line":65,"range":{"start_line":65,"start_character":23,"end_line":65,"end_character":26},"updated":"2020-01-07 14:01:05.000000000","message":"for","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"3828fe4874a77705d5779f0c4398a918fef381a6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* Libvirt Driver change for vpmem xml:"},{"line_number":63,"context_line":"  preipare dest xml on source host for live migration, update the dest virtual"},{"line_number":64,"context_line":"  persistent memory info into dest xml"},{"line_number":65,"context_line":"* Libvirt Driver change or vpmem cleanup:"},{"line_number":66,"context_line":"  If live migration fails, rollback_live_migration_at_destination will cleanup"},{"line_number":67,"context_line":"  vpmems from instance.resources, but instance.resources do not belong to"},{"line_number":68,"context_line":"  target host at that time."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_9f6272d8","line":65,"range":{"start_line":65,"start_character":23,"end_line":65,"end_character":26},"in_reply_to":"3fa7e38b_36c5c73d","updated":"2020-01-09 04:06:25.000000000","message":"will fix this typo.","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f9d7e21bb44efb85783ce89a193671ca63c7fb4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  persistent memory info into dest xml"},{"line_number":65,"context_line":"* Libvirt Driver change or vpmem cleanup:"},{"line_number":66,"context_line":"  If live migration fails, rollback_live_migration_at_destination will cleanup"},{"line_number":67,"context_line":"  vpmems from instance.resources, but instance.resources do not belong to"},{"line_number":68,"context_line":"  target host at that time."},{"line_number":69,"context_line":"  If live migration completed, similarly driver.cleanup will be invoked, but"},{"line_number":70,"context_line":"  instance.resources do not belong to source host at that time."},{"line_number":71,"context_line":"  In a word, we should be careful to do the vpmem cleanup, we can pass one more"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_d6d233fe","line":68,"range":{"start_line":67,"start_character":34,"end_line":68,"end_character":27},"updated":"2020-01-07 14:01:05.000000000","message":"this does not make make sense can you expand on this.\n\nare you trying to say that instance.resouce is still pointing at the resouces on the source node.","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"3828fe4874a77705d5779f0c4398a918fef381a6","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  persistent memory info into dest xml"},{"line_number":65,"context_line":"* Libvirt Driver change or vpmem cleanup:"},{"line_number":66,"context_line":"  If live migration fails, rollback_live_migration_at_destination will cleanup"},{"line_number":67,"context_line":"  vpmems from instance.resources, but instance.resources do not belong to"},{"line_number":68,"context_line":"  target host at that time."},{"line_number":69,"context_line":"  If live migration completed, similarly driver.cleanup will be invoked, but"},{"line_number":70,"context_line":"  instance.resources do not belong to source host at that time."},{"line_number":71,"context_line":"  In a word, we should be careful to do the vpmem cleanup, we can pass one more"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_ff9846cc","line":68,"range":{"start_line":67,"start_character":34,"end_line":68,"end_character":27},"in_reply_to":"3fa7e38b_d6d233fe","updated":"2020-01-09 04:06:25.000000000","message":"yes, I\u0027ll reword this.","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f9d7e21bb44efb85783ce89a193671ca63c7fb4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  If live migration fails, rollback_live_migration_at_destination will cleanup"},{"line_number":67,"context_line":"  vpmems from instance.resources, but instance.resources do not belong to"},{"line_number":68,"context_line":"  target host at that time."},{"line_number":69,"context_line":"  If live migration completed, similarly driver.cleanup will be invoked, but"},{"line_number":70,"context_line":"  instance.resources do not belong to source host at that time."},{"line_number":71,"context_line":"  In a word, we should be careful to do the vpmem cleanup, we can pass one more"},{"line_number":72,"context_line":"  parameter to driver.cleanup to tell this cleanup is on source/target host."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_d640f3a5","line":70,"range":{"start_line":69,"start_character":2,"end_line":70,"end_character":63},"updated":"2020-01-07 14:01:05.000000000","message":"and here it is pointign to the dest node.\n\nwe solved this problem in the VIFMigrateData object\n\nhttps://github.com/openstack/nova/blob/92a97799921624ce7a88c0e7633b104c07feb5e1/nova/objects/migrate_data.py#L30-L59\n\nthe VIFMigrateData object containse the updated vif infor for each network interface but each vif has a copy of the souce vif so that when we roleback or complete the migration we both the info for the source and dest resouce in the livemigrate data object. we should ideally do the same with vpmem reosuces.\n\nthat is one of the reasons i would prefer if we stored the vpmem info in the migrate data as a new object so we can maintain the mapping cleanly.","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"3828fe4874a77705d5779f0c4398a918fef381a6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  If live migration fails, rollback_live_migration_at_destination will cleanup"},{"line_number":67,"context_line":"  vpmems from instance.resources, but instance.resources do not belong to"},{"line_number":68,"context_line":"  target host at that time."},{"line_number":69,"context_line":"  If live migration completed, similarly driver.cleanup will be invoked, but"},{"line_number":70,"context_line":"  instance.resources do not belong to source host at that time."},{"line_number":71,"context_line":"  In a word, we should be careful to do the vpmem cleanup, we can pass one more"},{"line_number":72,"context_line":"  parameter to driver.cleanup to tell this cleanup is on source/target host."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_1fde820f","line":70,"range":{"start_line":69,"start_character":2,"end_line":70,"end_character":63},"in_reply_to":"3fa7e38b_3cb6fedd","updated":"2020-01-09 04:06:25.000000000","message":"As I said above, using migration_context is required.\nI gave a possible method to cleanup that we can tell which host we are on, Alex also gave another way that we can use mutated_migration_context. It\u0027s implementation details,\nwe can left them TBD until code writing.\n\nWe just emphasize we should take care of resources cleanup issue in the spec to remind us avoiding cleanup wrong resources.","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a6a39164339adc68003c5c412d3a9c716a95ed43","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  If live migration fails, rollback_live_migration_at_destination will cleanup"},{"line_number":67,"context_line":"  vpmems from instance.resources, but instance.resources do not belong to"},{"line_number":68,"context_line":"  target host at that time."},{"line_number":69,"context_line":"  If live migration completed, similarly driver.cleanup will be invoked, but"},{"line_number":70,"context_line":"  instance.resources do not belong to source host at that time."},{"line_number":71,"context_line":"  In a word, we should be careful to do the vpmem cleanup, we can pass one more"},{"line_number":72,"context_line":"  parameter to driver.cleanup to tell this cleanup is on source/target host."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_3cb6fedd","line":70,"range":{"start_line":69,"start_character":2,"end_line":70,"end_character":63},"in_reply_to":"3fa7e38b_d640f3a5","updated":"2020-01-08 07:36:37.000000000","message":"Can we use Instance.mutated_migration_context at here? to switch migration_context temporarily","commit_id":"b770ee0448deb13eaa364bb6dedb9bfccfdb2263"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"58bb0b06a33ae7f881cfaf3ed3998af479c8e003","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  vpmems from instance.resources, but instance.resources is still pointing at"},{"line_number":72,"context_line":"  the resources on source host. There are other similar cleanup issues."},{"line_number":73,"context_line":"  We can pass one more parameter to driver.cleanup to tell this cleanup is on"},{"line_number":74,"context_line":"  source/target host. Alternatively, we can use mutated_migration_context to"},{"line_number":75,"context_line":"  switch instance.resources to new resources on dest host emporarily. It\u0027s"},{"line_number":76,"context_line":"  implementation detail which should be determined when coding."},{"line_number":77,"context_line":"  In a word, we should be careful about vpmem cleanup, especially during migration."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_cc97d145","line":74,"range":{"start_line":74,"start_character":43,"end_line":74,"end_character":44},"updated":"2020-01-10 13:47:13.000000000","message":"the","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"55fa8f46b42d9ef8bdddf1133ee0a118bb55c974","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  vpmems from instance.resources, but instance.resources is still pointing at"},{"line_number":72,"context_line":"  the resources on source host. There are other similar cleanup issues."},{"line_number":73,"context_line":"  We can pass one more parameter to driver.cleanup to tell this cleanup is on"},{"line_number":74,"context_line":"  source/target host. Alternatively, we can use mutated_migration_context to"},{"line_number":75,"context_line":"  switch instance.resources to new resources on dest host emporarily. It\u0027s"},{"line_number":76,"context_line":"  implementation detail which should be determined when coding."},{"line_number":77,"context_line":"  In a word, we should be careful about vpmem cleanup, especially during migration."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_d6bc176d","line":74,"range":{"start_line":74,"start_character":43,"end_line":74,"end_character":44},"in_reply_to":"3fa7e38b_cc97d145","updated":"2020-01-14 11:49:26.000000000","message":"I guess you mean add \u0027the\u0027 before \u0027mutated_migration_context\u0027, right?","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"58bb0b06a33ae7f881cfaf3ed3998af479c8e003","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  the resources on source host. There are other similar cleanup issues."},{"line_number":73,"context_line":"  We can pass one more parameter to driver.cleanup to tell this cleanup is on"},{"line_number":74,"context_line":"  source/target host. Alternatively, we can use mutated_migration_context to"},{"line_number":75,"context_line":"  switch instance.resources to new resources on dest host emporarily. It\u0027s"},{"line_number":76,"context_line":"  implementation detail which should be determined when coding."},{"line_number":77,"context_line":"  In a word, we should be careful about vpmem cleanup, especially during migration."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_0c7ba928","line":75,"range":{"start_line":75,"start_character":58,"end_line":75,"end_character":68},"updated":"2020-01-10 13:47:13.000000000","message":"temporarily","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"58bb0b06a33ae7f881cfaf3ed3998af479c8e003","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  source/target host. Alternatively, we can use mutated_migration_context to"},{"line_number":75,"context_line":"  switch instance.resources to new resources on dest host emporarily. It\u0027s"},{"line_number":76,"context_line":"  implementation detail which should be determined when coding."},{"line_number":77,"context_line":"  In a word, we should be careful about vpmem cleanup, especially during migration."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Alternatives"},{"line_number":80,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_2c39c5cd","line":77,"updated":"2020-01-10 13:47:13.000000000","message":"this is the pep8 failure","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"55fa8f46b42d9ef8bdddf1133ee0a118bb55c974","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  source/target host. Alternatively, we can use mutated_migration_context to"},{"line_number":75,"context_line":"  switch instance.resources to new resources on dest host emporarily. It\u0027s"},{"line_number":76,"context_line":"  implementation detail which should be determined when coding."},{"line_number":77,"context_line":"  In a word, we should be careful about vpmem cleanup, especially during migration."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Alternatives"},{"line_number":80,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_b65cfb58","line":77,"in_reply_to":"3fa7e38b_2c39c5cd","updated":"2020-01-14 11:49:26.000000000","message":"I\u0027ll fix this and above typo in next patch version.","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7b6075473331fd82b55ec363cdd759934922739d","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Upgrade impact"},{"line_number":121,"context_line":"--------------"},{"line_number":122,"context_line":"None"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Implementation"},{"line_number":125,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_1938ad3a","line":122,"updated":"2020-01-13 20:31:11.000000000","message":"We should address the rolling upgrade scenario. Assuming this lands in U, spelling out what happens in a U -\u003e T or T -\u003e U mixed source/dest situation would be helpful.","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"0d6325e8004c14a2cb025ba61469072e5061a315","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Upgrade impact"},{"line_number":121,"context_line":"--------------"},{"line_number":122,"context_line":"None"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Implementation"},{"line_number":125,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_ea593129","line":122,"in_reply_to":"3fa7e38b_1938ad3a","updated":"2020-01-13 23:59:49.000000000","message":"there is no data migration, so I think it should be easy. The T release node won\u0027t accept the live migration, whatever it is as src or dest node.(we need some kind of reject explicitly for sure).","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f5b13c39c4b9917c5268758deeadb921397ce162","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Upgrade impact"},{"line_number":121,"context_line":"--------------"},{"line_number":122,"context_line":"None"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Implementation"},{"line_number":125,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_d62977f1","line":122,"in_reply_to":"3fa7e38b_8bb51ff3","updated":"2020-01-14 11:20:43.000000000","message":"\u003e you can do a check in the conductor the same way we do for sriov\n \u003e live migration.\n \u003e \n \u003e if either node is not upgraded to U then just reject the\n \u003e migratrion.\n \u003e \n \u003e https://github.com/openstack/nova/blob/67d9b5114e0044ea1135d1797241e883e7646646/nova/conductor/tasks/live_migrate.py#L218-L252\n\nThanks, and discuss with Luyao quickly ensure this (so good can get f2f discussion)\n\nAlso this is a bug, we didn\u0027t reject the LM in T release, we should fix a bug and backport to T.","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"55fa8f46b42d9ef8bdddf1133ee0a118bb55c974","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Upgrade impact"},{"line_number":121,"context_line":"--------------"},{"line_number":122,"context_line":"None"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Implementation"},{"line_number":125,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_11415937","line":122,"in_reply_to":"3fa7e38b_d62977f1","updated":"2020-01-14 11:49:26.000000000","message":"Yes, thanks for Artom to point out this issue, and thanks for sean and alex to help address it.","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b1ee17aceda8b1a9508618132b554fb87f850894","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Upgrade impact"},{"line_number":121,"context_line":"--------------"},{"line_number":122,"context_line":"None"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"Implementation"},{"line_number":125,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_8bb51ff3","line":122,"in_reply_to":"3fa7e38b_ea593129","updated":"2020-01-14 07:02:32.000000000","message":"you can do a check in the conductor the same way we do for sriov live migration.\n\nif either node is not upgraded to U then just reject the migratrion.\n\nhttps://github.com/openstack/nova/blob/67d9b5114e0044ea1135d1797241e883e7646646/nova/conductor/tasks/live_migrate.py#L218-L252","commit_id":"c457463d05235beb2192800ec36c10da2508b764"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4ae4fb78c879d6d36b3827eef3e106eade707153","unresolved":false,"context_lines":[{"line_number":110,"context_line":"memory. But due to the typical large capacity of vpmem, it may takes longer"},{"line_number":111,"context_line":"time for live migration. If the instance workloads was actively writing to"},{"line_number":112,"context_line":"the vpmem, the live migration might never complete which goes for standard"},{"line_number":113,"context_line":"memory as well."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Other deployer impact"},{"line_number":116,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3fa7e38b_0ea185a8","line":113,"updated":"2020-01-27 13:02:21.000000000","message":"I was going to suggest we add a configurable upper limit on the size of vpmem that is allowed to be live migration. However, live migration is an admin only operation so that\u0027s probably overkill","commit_id":"ea5191ccc89a9a644a22357c0b8a53d7d59cde45"}]}
