)]}'
{"specs/kilo/approved/sriov-live-migration.rst":[{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"2069bf91754dcbaf80cbc7067963b4b87d47c87b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"using other techniques, such as that suggested in [EDWIN_LIVE]_ and"},{"line_number":32,"context_line":"[COMPS_LIVE]_.  Fortunately, libvirt supports live migration with macvtap"},{"line_number":33,"context_line":"SR-IOV. With macvtap SR-IOV, a macvtap interface residing on the host is"},{"line_number":34,"context_line":"directly connected to an ethernet interface that corresponds to a virtaul"},{"line_number":35,"context_line":"function (VF) on the VIC. the VM runs a virtual ethernet driver (e.g."},{"line_number":36,"context_line":"virtio_net) that delivers the packets to the macvtap interface that passes them"},{"line_number":37,"context_line":"directly to the VIC. With a bit of sacrifice of the packet latency and network"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_4c2c4648","line":34,"updated":"2014-12-09 06:14:17.000000000","message":"s/virtaul/virtual/","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"d4cee7a1242a762ffd7089a4a0de7365425a966d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"using other techniques, such as that suggested in [EDWIN_LIVE]_ and"},{"line_number":32,"context_line":"[COMPS_LIVE]_.  Fortunately, libvirt supports live migration with macvtap"},{"line_number":33,"context_line":"SR-IOV. With macvtap SR-IOV, a macvtap interface residing on the host is"},{"line_number":34,"context_line":"directly connected to an ethernet interface that corresponds to a virtaul"},{"line_number":35,"context_line":"function (VF) on the VIC. the VM runs a virtual ethernet driver (e.g."},{"line_number":36,"context_line":"virtio_net) that delivers the packets to the macvtap interface that passes them"},{"line_number":37,"context_line":"directly to the VIC. With a bit of sacrifice of the packet latency and network"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_fd9ac561","line":34,"in_reply_to":"3a961159_4c2c4648","updated":"2014-12-10 18:00:41.000000000","message":"Done","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"2069bf91754dcbaf80cbc7067963b4b87d47c87b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"-----------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"This was mentioned in the Paris summit, and considered as one of Bugs that"},{"line_number":54,"context_line":"should be tackled in Kilo."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Proposed change"},{"line_number":57,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_6c20224a","line":54,"updated":"2014-12-09 06:14:17.000000000","message":"I\u0027m assuming this was in relation to the work of the group focussed on SR-IOV/Passthrough rather than the overall Nova priorities session? This section is meant to refer to the latter as far as I know.","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"236eb5493e61278897a773eb2867ca933830d8c7","unresolved":false,"context_lines":[{"line_number":51,"context_line":"-----------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"This was mentioned in the Paris summit, and considered as one of Bugs that"},{"line_number":54,"context_line":"should be tackled in Kilo."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Proposed change"},{"line_number":57,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_f3a069f6","line":54,"in_reply_to":"3a961159_6c20224a","updated":"2014-12-09 09:45:58.000000000","message":"As far as I remember this was mentioned in the overall Nova priorities session as a limitation that should dealt with.","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"2069bf91754dcbaf80cbc7067963b4b87d47c87b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Renaming Interface to Keep Domain XML Unchanged"},{"line_number":68,"context_line":"-----------------------------------------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"To live migrate a VM with libvrit, the VM\u0027s domain XML must remain unchanged"},{"line_number":71,"context_line":"after migrating to the destination host. This implies that information that\u0027s"},{"line_number":72,"context_line":"local to the host such as the PCI device address can\u0027t be used in the domain"},{"line_number":73,"context_line":"XML. To meet this requirement, this spec proposes an interface renaming"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_8c1d4e12","line":70,"updated":"2014-12-09 06:14:17.000000000","message":"s/Livrit/Libvirt/","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"d4cee7a1242a762ffd7089a4a0de7365425a966d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Renaming Interface to Keep Domain XML Unchanged"},{"line_number":68,"context_line":"-----------------------------------------------"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"To live migrate a VM with libvrit, the VM\u0027s domain XML must remain unchanged"},{"line_number":71,"context_line":"after migrating to the destination host. This implies that information that\u0027s"},{"line_number":72,"context_line":"local to the host such as the PCI device address can\u0027t be used in the domain"},{"line_number":73,"context_line":"XML. To meet this requirement, this spec proposes an interface renaming"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_5d9f5950","line":70,"in_reply_to":"3a961159_8c1d4e12","updated":"2014-12-10 18:00:41.000000000","message":"Done","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"fcc7549b29518e0927f46f2f0b05b49f9f81c46c","unresolved":false,"context_lines":[{"line_number":115,"context_line":"The possible name collision can be resolved by renaming the original port to"},{"line_number":116,"context_line":"srv\u003cdomain\u003e-\u003cbus\u003e-\u003cslot\u003e-\u003cfunc\u003e after the first migration has been completed."},{"line_number":117,"context_line":"For example, if eth20 has the PCI address as 0000:0a:01.1, it will be renamed"},{"line_number":118,"context_line":"as srv0000-0a-01-1 after migration is completed."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Device/VIF Compatibility"},{"line_number":121,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_6542983f","line":118,"updated":"2014-11-23 07:23:24.000000000","message":"To make this consistent, its possible during the host init   to rename all SR-IOV interfaces from the white-list according to the above convention.","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"d4cee7a1242a762ffd7089a4a0de7365425a966d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"The possible name collision can be resolved by renaming the original port to"},{"line_number":116,"context_line":"srv\u003cdomain\u003e-\u003cbus\u003e-\u003cslot\u003e-\u003cfunc\u003e after the first migration has been completed."},{"line_number":117,"context_line":"For example, if eth20 has the PCI address as 0000:0a:01.1, it will be renamed"},{"line_number":118,"context_line":"as srv0000-0a-01-1 after migration is completed."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Device/VIF Compatibility"},{"line_number":121,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_39b3af4e","line":118,"in_reply_to":"5a890539_6542983f","updated":"2014-12-10 18:00:41.000000000","message":"Yes, this can be done. But this also gave me trouble during coding/testing. The existing Init code was invoked periodically by resource tracker, and the if names were renamed back to srv\u003cd\u003e-\u003cb\u003e-\u003cs\u003e-\u003cf\u003e. It took me a while to realize this.\n\nLet me update the section to say SRIOV interfaces will be renamed during init.","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"236eb5493e61278897a773eb2867ca933830d8c7","unresolved":false,"context_lines":[{"line_number":127,"context_line":"and VIF_TYPE_HW_VEB. Each type has its own interface XML."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"With macvtap, the same virtio driver is used in the VM regardless of the VIF"},{"line_number":130,"context_line":"types. However, to be live migratable, the domain XML must remain the same."},{"line_number":131,"context_line":"This means, the PCI devices on the destination host must be compatible in terms"},{"line_number":132,"context_line":"of VIF types. It\u0027s possible to migrate from a host with intel SR-IOV adpators"},{"line_number":133,"context_line":"to another with Mellanox\u0027s, or vice-versa. Currently, however, it\u0027s not"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_731d590f","line":130,"updated":"2014-12-09 09:45:58.000000000","message":"Just a question.\n\nIs the same XML constraint the only thing preventing live migration from cisco nics to intel nic and vice versa? Would this work with qemu monitor?","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"d4cee7a1242a762ffd7089a4a0de7365425a966d","unresolved":false,"context_lines":[{"line_number":127,"context_line":"and VIF_TYPE_HW_VEB. Each type has its own interface XML."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"With macvtap, the same virtio driver is used in the VM regardless of the VIF"},{"line_number":130,"context_line":"types. However, to be live migratable, the domain XML must remain the same."},{"line_number":131,"context_line":"This means, the PCI devices on the destination host must be compatible in terms"},{"line_number":132,"context_line":"of VIF types. It\u0027s possible to migrate from a host with intel SR-IOV adpators"},{"line_number":133,"context_line":"to another with Mellanox\u0027s, or vice-versa. Currently, however, it\u0027s not"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_6e045dc0","line":130,"in_reply_to":"3a961159_731d590f","updated":"2014-12-10 18:00:41.000000000","message":"If your question is if it works if \u0027sudo virsh migrate\u0027 is used directly, then the answer is no. First of all, the domain XML is different. Second, even if the domain xml is changed to reflect the vif type at the destination host, during migrating, say from using cisco, to intel, libvirt will throw an error indicating the port profile can\u0027t be configured. The VM will be left without connectivity.\n\nAnother obstacle with nova is that during migration, without communicating with neutron, nova doesn\u0027t know the vif type after migrating to the destination host. However, the binding of the destination host to neutron happens after migration has already taken place. Therefore the domain XML cannot be correctly defined.\n\nSo VIF compatibility is a requirement, at least for now.","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"fcc7549b29518e0927f46f2f0b05b49f9f81c46c","unresolved":false,"context_lines":[{"line_number":149,"context_line":"cannot be used as is to schedule the destination host and allocate SR-IOV"},{"line_number":150,"context_line":"devices on it with two reasons:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* they don\u0027t contain information To ensure device compatibility"},{"line_number":153,"context_line":"* they don\u0027t contain information to correlate a request with a neutron port"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"New PCI requests will be created with the flag *is_new* to be true. To ensure"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_e575a898","line":152,"updated":"2014-11-23 07:23:24.000000000","message":"typo To-\u003eto","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"d4cee7a1242a762ffd7089a4a0de7365425a966d","unresolved":false,"context_lines":[{"line_number":149,"context_line":"cannot be used as is to schedule the destination host and allocate SR-IOV"},{"line_number":150,"context_line":"devices on it with two reasons:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* they don\u0027t contain information To ensure device compatibility"},{"line_number":153,"context_line":"* they don\u0027t contain information to correlate a request with a neutron port"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"New PCI requests will be created with the flag *is_new* to be true. To ensure"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_ae2d6548","line":152,"in_reply_to":"5a890539_e575a898","updated":"2014-12-10 18:00:41.000000000","message":"Done","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"2069bf91754dcbaf80cbc7067963b4b87d47c87b","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"The original PCI request ID can be used to correlate the allocated PCI device"},{"line_number":162,"context_line":"with its requested network. Refer to https://review.openstack.org/#/c/86606/"},{"line_number":163,"context_line":"for how a PCI request id is initialy created. To correlate a PCI request and"},{"line_number":164,"context_line":"the allocated SR-IOV device to a neutron port, however, the original PCI"},{"line_number":165,"context_line":"request ID needs to be modified. The neutron port ID can be used as the new PCI"},{"line_number":166,"context_line":"request ID, and update to the PCI request with the new PCI request ID can be"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_ac1a0a15","line":163,"updated":"2014-12-09 06:14:17.000000000","message":"s/initialy/initially/","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"d4cee7a1242a762ffd7089a4a0de7365425a966d","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"The original PCI request ID can be used to correlate the allocated PCI device"},{"line_number":162,"context_line":"with its requested network. Refer to https://review.openstack.org/#/c/86606/"},{"line_number":163,"context_line":"for how a PCI request id is initialy created. To correlate a PCI request and"},{"line_number":164,"context_line":"the allocated SR-IOV device to a neutron port, however, the original PCI"},{"line_number":165,"context_line":"request ID needs to be modified. The neutron port ID can be used as the new PCI"},{"line_number":166,"context_line":"request ID, and update to the PCI request with the new PCI request ID can be"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_ce30f1a0","line":163,"in_reply_to":"3a961159_ac1a0a15","updated":"2014-12-10 18:00:41.000000000","message":"Done","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"2069bf91754dcbaf80cbc7067963b4b87d47c87b","unresolved":false,"context_lines":[{"line_number":269,"context_line":"SR-IOV capable cloud:"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"* live migration is only possible with macvtap SR-IOV with a bit of sacrifice"},{"line_number":272,"context_line":"  of thouroughput compared with direct SR-IOV"},{"line_number":273,"context_line":"* live migration may only be performed with VIF-compatible SR-IOV capable"},{"line_number":274,"context_line":"  adaptors."},{"line_number":275,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_cc1756ec","line":272,"updated":"2014-12-09 06:14:17.000000000","message":"s/thouroughput/throughput/","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"d4cee7a1242a762ffd7089a4a0de7365425a966d","unresolved":false,"context_lines":[{"line_number":269,"context_line":"SR-IOV capable cloud:"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"* live migration is only possible with macvtap SR-IOV with a bit of sacrifice"},{"line_number":272,"context_line":"  of thouroughput compared with direct SR-IOV"},{"line_number":273,"context_line":"* live migration may only be performed with VIF-compatible SR-IOV capable"},{"line_number":274,"context_line":"  adaptors."},{"line_number":275,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_ee276d62","line":272,"in_reply_to":"3a961159_cc1756ec","updated":"2014-12-10 18:00:41.000000000","message":"Done","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"fcc7549b29518e0927f46f2f0b05b49f9f81c46c","unresolved":false,"context_lines":[{"line_number":304,"context_line":"Testing"},{"line_number":305,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"TBD"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_a55f200e","line":307,"updated":"2014-11-23 07:23:24.000000000","message":"It should be tested by 3rd party CI","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"d4cee7a1242a762ffd7089a4a0de7365425a966d","unresolved":false,"context_lines":[{"line_number":304,"context_line":"Testing"},{"line_number":305,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"TBD"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_0e2bd930","line":307,"in_reply_to":"5a890539_a55f200e","updated":"2014-12-10 18:00:41.000000000","message":"will add","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"fcc7549b29518e0927f46f2f0b05b49f9f81c46c","unresolved":false,"context_lines":[{"line_number":310,"context_line":"Documentation Impact"},{"line_number":311,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"TBD"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"References"},{"line_number":316,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a890539_8566a4eb","line":313,"updated":"2014-11-23 07:23:24.000000000","message":"All mentioned limitations and nova.conf flag should be documented","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"2069bf91754dcbaf80cbc7067963b4b87d47c87b","unresolved":false,"context_lines":[{"line_number":311,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"TBD"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"References"},{"line_number":316,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_ecd33236","line":314,"updated":"2014-12-09 06:14:17.000000000","message":"+1, needs to be a release note + coverage in configuration reference guide.","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"d4cee7a1242a762ffd7089a4a0de7365425a966d","unresolved":false,"context_lines":[{"line_number":311,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"TBD"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"References"},{"line_number":316,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a961159_4e1c0114","line":314,"in_reply_to":"3a961159_ecd33236","updated":"2014-12-10 18:00:41.000000000","message":"will add","commit_id":"6ce75c7a16bb2fcd2bbe9339484cb3f87b9a1d64"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"616eaa581b8a4479955792a9527da2f327de9bba","unresolved":false,"context_lines":[{"line_number":51,"context_line":"-----------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"This was mentioned in the Paris summit, and considered as one of Bugs that"},{"line_number":54,"context_line":"should be tackled in Kilo."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Proposed change"},{"line_number":57,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_605a4f2b","line":54,"updated":"2014-12-12 19:01:16.000000000","message":"this should say \"None\", as it\u0027s not a part of one of the things here: http://specs.openstack.org/openstack/nova-specs/priorities/kilo-priorities.html","commit_id":"9b32eece88e5e9ff6de10d917e8879cb6facd284"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"a8a72a746921a4e36bd79e726277e1714f96b9ad","unresolved":false,"context_lines":[{"line_number":147,"context_line":"With macvtap, the same virtio driver is used in the VM regardless of the VIF"},{"line_number":148,"context_line":"types. However, to be live migratable, stable guest ABI needs to be maintained"},{"line_number":149,"context_line":"across the migration.  This means, the PCI devices on the destination host must"},{"line_number":150,"context_line":"be compatible in terms of VIF types. Otherwise, network connectitive may get"},{"line_number":151,"context_line":"lost after migration. It\u0027s possible to migrate from a host with intel SR-IOV"},{"line_number":152,"context_line":"adpators to another with Mellanox\u0027s, or vice-versa. Currently with the existing"},{"line_number":153,"context_line":"scheduler, however, it\u0027s not possible to select the destination host based on"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_491a0d7e","line":150,"updated":"2014-12-11 18:24:22.000000000","message":"Typo: connectivity","commit_id":"9b32eece88e5e9ff6de10d917e8879cb6facd284"},{"author":{"_account_id":11547,"name":"Andy Tylee","email":"andy.tylee@metaswitch.com"},"change_message_id":"84b0fb344a9c86a52c173acf8d93047cbf51421d","unresolved":false,"context_lines":[{"line_number":148,"context_line":"types. However, to be live migratable, stable guest ABI needs to be maintained"},{"line_number":149,"context_line":"across the migration.  This means, the PCI devices on the destination host must"},{"line_number":150,"context_line":"be compatible in terms of VIF types. Otherwise, network connectitive may get"},{"line_number":151,"context_line":"lost after migration. It\u0027s possible to migrate from a host with intel SR-IOV"},{"line_number":152,"context_line":"adpators to another with Mellanox\u0027s, or vice-versa. Currently with the existing"},{"line_number":153,"context_line":"scheduler, however, it\u0027s not possible to select the destination host based on"},{"line_number":154,"context_line":"compatible VIF types. It is possible, though, to relieve this restriction if"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_e55c911b","line":151,"updated":"2014-12-12 19:53:28.000000000","message":"Will migration fail with a suitable error message if VIF types are incompatible?","commit_id":"9b32eece88e5e9ff6de10d917e8879cb6facd284"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"c872823020f5fd60bdf0e8a5a469ba130de3d6bb","unresolved":false,"context_lines":[{"line_number":148,"context_line":"types. However, to be live migratable, stable guest ABI needs to be maintained"},{"line_number":149,"context_line":"across the migration.  This means, the PCI devices on the destination host must"},{"line_number":150,"context_line":"be compatible in terms of VIF types. Otherwise, network connectitive may get"},{"line_number":151,"context_line":"lost after migration. It\u0027s possible to migrate from a host with intel SR-IOV"},{"line_number":152,"context_line":"adpators to another with Mellanox\u0027s, or vice-versa. Currently with the existing"},{"line_number":153,"context_line":"scheduler, however, it\u0027s not possible to select the destination host based on"},{"line_number":154,"context_line":"compatible VIF types. It is possible, though, to relieve this restriction if"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_da43eb69","line":151,"in_reply_to":"3a961159_e55c911b","updated":"2014-12-12 22:04:44.000000000","message":"yes.","commit_id":"9b32eece88e5e9ff6de10d917e8879cb6facd284"},{"author":{"_account_id":11547,"name":"Andy Tylee","email":"andy.tylee@metaswitch.com"},"change_message_id":"84b0fb344a9c86a52c173acf8d93047cbf51421d","unresolved":false,"context_lines":[{"line_number":156,"context_line":"option *ensure_sriov-vif-compatible* will be provided for this purpose."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"If *ensure_sriov-vif-compatible* is true, live migration is only possible with"},{"line_number":159,"context_line":"the same type of SR-IOV capable NIC adaptors."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"In the future, with enhancement in the nova scheduler, the config option may be"},{"line_number":162,"context_line":"removed."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_252db995","line":159,"updated":"2014-12-12 19:53:28.000000000","message":"By the same type do you mean same PCI vendor/device identifier?","commit_id":"9b32eece88e5e9ff6de10d917e8879cb6facd284"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"c872823020f5fd60bdf0e8a5a469ba130de3d6bb","unresolved":false,"context_lines":[{"line_number":156,"context_line":"option *ensure_sriov-vif-compatible* will be provided for this purpose."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"If *ensure_sriov-vif-compatible* is true, live migration is only possible with"},{"line_number":159,"context_line":"the same type of SR-IOV capable NIC adaptors."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"In the future, with enhancement in the nova scheduler, the config option may be"},{"line_number":162,"context_line":"removed."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a961159_1a61f304","line":159,"in_reply_to":"3a961159_252db995","updated":"2014-12-12 22:04:44.000000000","message":"for now, yes. But maybe the same device_id is kind of too restrictive. It\u0027s also possible to maintain a pre-created compatibility table, and specify it in whitelist. But it\u0027s out of scope of this spec, and can be addressed in a follow up spec.","commit_id":"9b32eece88e5e9ff6de10d917e8879cb6facd284"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"72bcdbaf9c18d61903d84fc778e6edeb77fe5112","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  \u003cinterface type\u003d\u0027direct\u0027\u003e"},{"line_number":101,"context_line":"    \u003cmac address\u003d\u0027fa:16:3e:ae:7f:c5\u0027/\u003e"},{"line_number":102,"context_line":"    \u003csource dev\u003d\u0027srv\u003c12 chars from neutron-port-id\u003e\u0027 mode\u003d\u0027passthrough\u0027/\u003e"},{"line_number":103,"context_line":"    \u003cmodel type\u003d\u0027virtio\u0027/\u003e"},{"line_number":104,"context_line":"    \u003cdriver name\u003d\u0027vhost\u0027/\u003e"},{"line_number":105,"context_line":"    \u003calias name\u003d\u0027net0\u0027/\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_0d3b6dd1","line":102,"updated":"2015-01-08 16:23:12.000000000","message":"If we\u0027re only taking a 12-char substring of the neutron port ID, then surely this is not guaranteed to be a unique string any more. A collision may be unlikely, but unlikely things do still happen particularly at high scale.","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"512d4535a755847e5c9049cb7773f83591d196a0","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  \u003cinterface type\u003d\u0027direct\u0027\u003e"},{"line_number":101,"context_line":"    \u003cmac address\u003d\u0027fa:16:3e:ae:7f:c5\u0027/\u003e"},{"line_number":102,"context_line":"    \u003csource dev\u003d\u0027srv\u003c12 chars from neutron-port-id\u003e\u0027 mode\u003d\u0027passthrough\u0027/\u003e"},{"line_number":103,"context_line":"    \u003cmodel type\u003d\u0027virtio\u0027/\u003e"},{"line_number":104,"context_line":"    \u003cdriver name\u003d\u0027vhost\u0027/\u003e"},{"line_number":105,"context_line":"    \u003calias name\u003d\u0027net0\u0027/\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_e2ce2b82","line":102,"in_reply_to":"3a961159_0d3b6dd1","updated":"2015-01-08 17:30:10.000000000","message":"Neutron already uses this convention to construct the tap interface name.","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"5f907f829e0ce6d3510351cb7c2002274881898f","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  \u003cinterface type\u003d\u0027direct\u0027\u003e"},{"line_number":101,"context_line":"    \u003cmac address\u003d\u0027fa:16:3e:ae:7f:c5\u0027/\u003e"},{"line_number":102,"context_line":"    \u003csource dev\u003d\u0027srv\u003c12 chars from neutron-port-id\u003e\u0027 mode\u003d\u0027passthrough\u0027/\u003e"},{"line_number":103,"context_line":"    \u003cmodel type\u003d\u0027virtio\u0027/\u003e"},{"line_number":104,"context_line":"    \u003cdriver name\u003d\u0027vhost\u0027/\u003e"},{"line_number":105,"context_line":"    \u003calias name\u003d\u0027net0\u0027/\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_d589e7ca","line":102,"in_reply_to":"3a961159_e2ce2b82","updated":"2015-01-08 18:02:06.000000000","message":"Actually that code is in Nova\nhttps://github.com/openstack/nova/blob/master/nova/network/neutronv2/api.py#L1460","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"fc7422b154ad4dc31cda582b6144738ddce692df","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  \u003cinterface type\u003d\u0027direct\u0027\u003e"},{"line_number":101,"context_line":"    \u003cmac address\u003d\u0027fa:16:3e:ae:7f:c5\u0027/\u003e"},{"line_number":102,"context_line":"    \u003csource dev\u003d\u0027srv\u003c12 chars from neutron-port-id\u003e\u0027 mode\u003d\u0027passthrough\u0027/\u003e"},{"line_number":103,"context_line":"    \u003cmodel type\u003d\u0027virtio\u0027/\u003e"},{"line_number":104,"context_line":"    \u003cdriver name\u003d\u0027vhost\u0027/\u003e"},{"line_number":105,"context_line":"    \u003calias name\u003d\u0027net0\u0027/\u003e"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_d513a759","line":102,"in_reply_to":"3a961159_e2ce2b82","updated":"2015-01-08 17:39:29.000000000","message":"Oh fun, so it already has a potential bug in this respect :-0","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"72bcdbaf9c18d61903d84fc778e6edeb77fe5112","unresolved":false,"context_lines":[{"line_number":121,"context_line":"srv\u003cdomain\u003e-\u003cbus\u003e-\u003cslot\u003e-\u003cfunc\u003e after the first migration has been completed."},{"line_number":122,"context_line":"For example, if eth20 has the PCI address as 0000:0a:01.1, it will be renamed"},{"line_number":123,"context_line":"as srv0000-0a-01-1 after migration is completed."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Note that after the compute node is initialized and whitelist processed, the"},{"line_number":126,"context_line":"SR-IOV interfaces subject to the whitelist will be renamed to"},{"line_number":127,"context_line":"srv\u003cdomain\u003e-\u003cbus\u003e-\u003cslot\u003e-\u003cfunc\u003e. This makes it easier to check what interfaces"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_6d88716b","line":124,"updated":"2015-01-08 16:23:12.000000000","message":"So the NIC will start out named \u0027ethNNN\u0027 then get renamed to \u0027srvXXXXXXXXXXXXX\u0027 (based on Neutron port ID), and then renamed to \u0027srvNNNN-NN-NN-N\u0027 (based on PCI addr) once unused. I think it would be desirable that the device name gets put back to the original name once unused again, which implies remembering its original name. Alternatively pick a new  ethNNN (for the first value of NNN which is available on the host). That said, it might not be called ethNNN in the first place - systemd host will have an particular NIC naming scheme in effect. We\u0027d really want to trigger the Host OS original NIC naming logic to run again somehow.","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"512d4535a755847e5c9049cb7773f83591d196a0","unresolved":false,"context_lines":[{"line_number":121,"context_line":"srv\u003cdomain\u003e-\u003cbus\u003e-\u003cslot\u003e-\u003cfunc\u003e after the first migration has been completed."},{"line_number":122,"context_line":"For example, if eth20 has the PCI address as 0000:0a:01.1, it will be renamed"},{"line_number":123,"context_line":"as srv0000-0a-01-1 after migration is completed."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Note that after the compute node is initialized and whitelist processed, the"},{"line_number":126,"context_line":"SR-IOV interfaces subject to the whitelist will be renamed to"},{"line_number":127,"context_line":"srv\u003cdomain\u003e-\u003cbus\u003e-\u003cslot\u003e-\u003cfunc\u003e. This makes it easier to check what interfaces"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_62907b43","line":124,"in_reply_to":"3a961159_6d88716b","updated":"2015-01-08 17:30:10.000000000","message":"We thought about putting back to the original name. But it requires adding it into the PCI device table. And interface name is networking specific .....","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"c6128d4a845dda7012c7db342e39d218f7fb02b6","unresolved":false,"context_lines":[{"line_number":132,"context_line":"in which the source device is modified with the target\u0027s interface name."},{"line_number":133,"context_line":"Keeping the domain XML unchanged with interface renaming seems to have another"},{"line_number":134,"context_line":"benefit: due to the renaming, it\u0027s easy to see what interfaces are being used"},{"line_number":135,"context_line":"for SRIOV and by what VMs on a particular host."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Device/VIF Compatibility"},{"line_number":138,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_ea935da0","line":135,"updated":"2014-12-15 09:46:34.000000000","message":"It feels to me that all this NIC renaming is just adding complexity to the code, which will inevitably make it more error prone.  Nova already has to update the XML during migration, so IMHO it is much simpler \u0026 more reliable to just update the NIC name in the XML during migration and ignore all this host device naming.","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"fc7422b154ad4dc31cda582b6144738ddce692df","unresolved":false,"context_lines":[{"line_number":132,"context_line":"in which the source device is modified with the target\u0027s interface name."},{"line_number":133,"context_line":"Keeping the domain XML unchanged with interface renaming seems to have another"},{"line_number":134,"context_line":"benefit: due to the renaming, it\u0027s easy to see what interfaces are being used"},{"line_number":135,"context_line":"for SRIOV and by what VMs on a particular host."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Device/VIF Compatibility"},{"line_number":138,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_55009700","line":135,"in_reply_to":"3a961159_827d67e9","updated":"2015-01-08 17:39:29.000000000","message":"That sounds workable.","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"72bcdbaf9c18d61903d84fc778e6edeb77fe5112","unresolved":false,"context_lines":[{"line_number":132,"context_line":"in which the source device is modified with the target\u0027s interface name."},{"line_number":133,"context_line":"Keeping the domain XML unchanged with interface renaming seems to have another"},{"line_number":134,"context_line":"benefit: due to the renaming, it\u0027s easy to see what interfaces are being used"},{"line_number":135,"context_line":"for SRIOV and by what VMs on a particular host."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Device/VIF Compatibility"},{"line_number":138,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_ed262166","line":135,"in_reply_to":"3a961159_91ada59d","updated":"2015-01-08 16:23:12.000000000","message":"Nova already knows about all the PCI devices available on each host. Is it possible that this database info could be updated to include the NIC device name too ?  Then you wouldn\u0027t need to have interaction between source \u0026 dest hosts. As soon as Nova allocates the PCI devices that the guest will use on the target, it will have the NIC device name available too.","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"27fd43e74f6de40c513c691aa25fedd4d82b245d","unresolved":false,"context_lines":[{"line_number":132,"context_line":"in which the source device is modified with the target\u0027s interface name."},{"line_number":133,"context_line":"Keeping the domain XML unchanged with interface renaming seems to have another"},{"line_number":134,"context_line":"benefit: due to the renaming, it\u0027s easy to see what interfaces are being used"},{"line_number":135,"context_line":"for SRIOV and by what VMs on a particular host."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Device/VIF Compatibility"},{"line_number":138,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_91ada59d","line":135,"in_reply_to":"3a961159_ea935da0","updated":"2014-12-15 13:59:11.000000000","message":"Hi Daniel, to achieve that, it also requires some interaction between the source and the target so that the source would know the interface name on the target host before updating the XML. \n\nI\u0027ve done the majority of the coding to use interface renaming, and it\u0027s working. It\u0027s actually not that bad and complex, but IMHO it\u0027s pretty much modularized. I\u0027ve just pushed up a WIP patch:https://review.openstack.org/#/c/141799/. Please take a look.","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"512d4535a755847e5c9049cb7773f83591d196a0","unresolved":false,"context_lines":[{"line_number":132,"context_line":"in which the source device is modified with the target\u0027s interface name."},{"line_number":133,"context_line":"Keeping the domain XML unchanged with interface renaming seems to have another"},{"line_number":134,"context_line":"benefit: due to the renaming, it\u0027s easy to see what interfaces are being used"},{"line_number":135,"context_line":"for SRIOV and by what VMs on a particular host."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Device/VIF Compatibility"},{"line_number":138,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a961159_827d67e9","line":135,"in_reply_to":"3a961159_ed262166","updated":"2015-01-08 17:30:10.000000000","message":"Looks like that we can modify the domain xml with the interface name to be used on the target. This can be done by utilizing the migrate_data that is returned from the target host during pre_live_migration(). I think that we can add a field such as target_sriov_if into the migrate_data. \n\nWith this approach, Interface name doesn\u0027t need to be renamed any more, and no DB model change is required.If you are ok with it, I can change this spec accordingly.","commit_id":"736cc583e7f5ae15e4f79cc3829aac06fdfe1c79"}],"specs/liberty/approved/sriov-live-migration.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Given that a VM with direct SR-IOV and/or direct PCI passthrough devices can\u0027t"},{"line_number":62,"context_line":"be live migrated, when a user enters the request to live migrate such a VM, the"},{"line_number":63,"context_line":"request will be rejected with proper reason. Live migration will only be"},{"line_number":64,"context_line":"attempted on a VM without direct SR-IOV and/or direct PCI passthrough devices."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Modify Domain XML With Target Interfaces"},{"line_number":67,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_cc164855","line":64,"updated":"2015-04-27 18:42:57.000000000","message":"Where will this check be done? Is this something we need to ask the source host to check, or can we do it from the api/conductor code based on some other attribute (like flavor info) ?","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"a215f2522dd6e9778d4e36e8ffb5f74d8930e973","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Given that a VM with direct SR-IOV and/or direct PCI passthrough devices can\u0027t"},{"line_number":62,"context_line":"be live migrated, when a user enters the request to live migrate such a VM, the"},{"line_number":63,"context_line":"request will be rejected with proper reason. Live migration will only be"},{"line_number":64,"context_line":"attempted on a VM without direct SR-IOV and/or direct PCI passthrough devices."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Modify Domain XML With Target Interfaces"},{"line_number":67,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a016987_512d9c93","line":64,"in_reply_to":"5ad0253b_3eaa8d1a","updated":"2015-05-21 00:03:37.000000000","message":"Done","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"43e82138198845b450d671e0de79552eb1b8e801","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Given that a VM with direct SR-IOV and/or direct PCI passthrough devices can\u0027t"},{"line_number":62,"context_line":"be live migrated, when a user enters the request to live migrate such a VM, the"},{"line_number":63,"context_line":"request will be rejected with proper reason. Live migration will only be"},{"line_number":64,"context_line":"attempted on a VM without direct SR-IOV and/or direct PCI passthrough devices."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Modify Domain XML With Target Interfaces"},{"line_number":67,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5ad0253b_3eaa8d1a","line":64,"in_reply_to":"7ad32947_55997f6d","updated":"2015-04-28 17:04:26.000000000","message":"Me asking was mostly rhetorical so that you\u0027d add it to the text here :)","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Given that a VM with direct SR-IOV and/or direct PCI passthrough devices can\u0027t"},{"line_number":62,"context_line":"be live migrated, when a user enters the request to live migrate such a VM, the"},{"line_number":63,"context_line":"request will be rejected with proper reason. Live migration will only be"},{"line_number":64,"context_line":"attempted on a VM without direct SR-IOV and/or direct PCI passthrough devices."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Modify Domain XML With Target Interfaces"},{"line_number":67,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_55997f6d","line":64,"in_reply_to":"7ad32947_cc164855","updated":"2015-04-28 14:36:33.000000000","message":"Refer to https://review.openstack.org/#/c/141799/2/nova/conductor/tasks/live_migrate.py. The patch was not completed yet due to pending spec review. But as you can see, it\u0027s done in the conductor.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":95,"context_line":"where the domain is hosted. The interface with the same name eth20 on the"},{"line_number":96,"context_line":"destination host may have already been used by other VMs. During"},{"line_number":97,"context_line":"pre_live_migration() (which is a RPC call from the source host to the"},{"line_number":98,"context_line":"destination host), the PCI device used on the target host will be allocated,"},{"line_number":99,"context_line":"and the corresponding interface name becomes known. This information can then"},{"line_number":100,"context_line":"be included in the migrate_data which is passed back to the source host as a"},{"line_number":101,"context_line":"result of pre_live_migration() RPC call. The source host then modifies the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_6734eddd","line":98,"range":{"start_line":98,"start_character":18,"end_line":98,"end_character":75},"updated":"2015-04-27 18:42:57.000000000","message":"How is this done and by who? I.e. what does nova do to allocate the name, prevent it from being used in the meantime, and cleanup the allocation if we don\u0027t finish the migration? Presumably this will be an RPC version bump since we\u0027re expecting back an allocation decision.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":95,"context_line":"where the domain is hosted. The interface with the same name eth20 on the"},{"line_number":96,"context_line":"destination host may have already been used by other VMs. During"},{"line_number":97,"context_line":"pre_live_migration() (which is a RPC call from the source host to the"},{"line_number":98,"context_line":"destination host), the PCI device used on the target host will be allocated,"},{"line_number":99,"context_line":"and the corresponding interface name becomes known. This information can then"},{"line_number":100,"context_line":"be included in the migrate_data which is passed back to the source host as a"},{"line_number":101,"context_line":"result of pre_live_migration() RPC call. The source host then modifies the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_95603737","line":98,"in_reply_to":"7ad32947_6734eddd","updated":"2015-04-28 14:36:33.000000000","message":"This is done on the destination host as part of processing the RPC call. Refer to https://review.openstack.org/#/c/141799/2/nova/compute/manager.py at line 4986\n\nI think that you are right that this may require a RPC version bump.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":99,"context_line":"and the corresponding interface name becomes known. This information can then"},{"line_number":100,"context_line":"be included in the migrate_data which is passed back to the source host as a"},{"line_number":101,"context_line":"result of pre_live_migration() RPC call. The source host then modifies the"},{"line_number":102,"context_line":"above domain xml and replaces the \u0027srouce dev\u0027 with the one used on the"},{"line_number":103,"context_line":"destination host."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note that an interface can be identified by its MAC address. The interface"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_c75bc12d","line":102,"range":{"start_line":102,"start_character":35,"end_line":102,"end_character":41},"updated":"2015-04-27 18:42:57.000000000","message":"\"source\" is misspelled.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":99,"context_line":"and the corresponding interface name becomes known. This information can then"},{"line_number":100,"context_line":"be included in the migrate_data which is passed back to the source host as a"},{"line_number":101,"context_line":"result of pre_live_migration() RPC call. The source host then modifies the"},{"line_number":102,"context_line":"above domain xml and replaces the \u0027srouce dev\u0027 with the one used on the"},{"line_number":103,"context_line":"destination host."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note that an interface can be identified by its MAC address. The interface"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_75659b43","line":102,"in_reply_to":"7ad32947_c75bc12d","updated":"2015-04-28 14:36:33.000000000","message":"Done","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":100,"context_line":"be included in the migrate_data which is passed back to the source host as a"},{"line_number":101,"context_line":"result of pre_live_migration() RPC call. The source host then modifies the"},{"line_number":102,"context_line":"above domain xml and replaces the \u0027srouce dev\u0027 with the one used on the"},{"line_number":103,"context_line":"destination host."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note that an interface can be identified by its MAC address. The interface"},{"line_number":106,"context_line":"information carried in the migrate_data will be a dictionary keyed off by the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_6762adda","line":103,"updated":"2015-04-27 18:42:57.000000000","message":"This is a difference in the result value. Presumably the code on the requesting side will treat the absence of the new chunk of network data as \"this node is too old to do this\" and fail the migration, right?","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":100,"context_line":"be included in the migrate_data which is passed back to the source host as a"},{"line_number":101,"context_line":"result of pre_live_migration() RPC call. The source host then modifies the"},{"line_number":102,"context_line":"above domain xml and replaces the \u0027srouce dev\u0027 with the one used on the"},{"line_number":103,"context_line":"destination host."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note that an interface can be identified by its MAC address. The interface"},{"line_number":106,"context_line":"information carried in the migrate_data will be a dictionary keyed off by the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_909ba5c9","line":103,"in_reply_to":"7ad32947_6762adda","updated":"2015-04-28 14:36:33.000000000","message":"The thought was that the destination host should have the requested device(s) available because the scheduler chose it based on availability. But as you suggested, the requesting host may need to verify it.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":124,"context_line":"scheduler, however, it\u0027s not possible to select the destination host based on"},{"line_number":125,"context_line":"compatible VIF types. It is possible, though, to relieve this restriction if"},{"line_number":126,"context_line":"all the SR-IOV adaptors in a cloud are VIF compatible. A nova boolean config"},{"line_number":127,"context_line":"option *ensure_sriov-vif-compatible* will be provided for this purpose."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"If *ensure_sriov-vif-compatible* is true, live migration is only possible with"},{"line_number":130,"context_line":"the same type (vendor_id/product_id) of SR-IOV capable NIC adaptors."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_e7c91dae","line":127,"updated":"2015-04-27 18:42:57.000000000","message":"How about we just make this a requirement for now and not add this level of complication until we get this working? It seems like moving between them is likely to be easy to screw up, and I think that \"all things have to be the same on the source and destination\" is a well-understood requirement for live migration.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":124,"context_line":"scheduler, however, it\u0027s not possible to select the destination host based on"},{"line_number":125,"context_line":"compatible VIF types. It is possible, though, to relieve this restriction if"},{"line_number":126,"context_line":"all the SR-IOV adaptors in a cloud are VIF compatible. A nova boolean config"},{"line_number":127,"context_line":"option *ensure_sriov-vif-compatible* will be provided for this purpose."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"If *ensure_sriov-vif-compatible* is true, live migration is only possible with"},{"line_number":130,"context_line":"the same type (vendor_id/product_id) of SR-IOV capable NIC adaptors."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_0be886e1","line":127,"in_reply_to":"7ad32947_e7c91dae","updated":"2015-04-28 14:36:33.000000000","message":"Refer to line 131-134 in https://review.openstack.org/#/c/141799/2/nova/conductor/tasks/live_migrate.py. the reference implementation hasn\u0027t added this support yet, but its default behavior is to ensure compatibility by scheduling with \u003cvendor_id, product_id\u003e (assuming ensure-sriov-vif-compatible is true). \n\nIt won\u0027t be a big deal to add support of this config option. When its false, its assumed that all the SR-IOV adaptors in the data center are compatible. Therefore scheduling can be solely based on the physical network connectivity.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":130,"context_line":"the same type (vendor_id/product_id) of SR-IOV capable NIC adaptors."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"In the future, with enhancement in the nova scheduler, the config option may be"},{"line_number":133,"context_line":"removed."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"PCI Requests, Scheduling and SR-IOV Device Allocation"},{"line_number":136,"context_line":"-----------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_273715b2","line":133,"updated":"2015-04-27 18:42:57.000000000","message":"Even more reason to stick to the easy case for now, IMHO :)","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":143,"context_line":"* they don\u0027t contain information to correlate a request with a neutron port"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"New PCI requests will be created with the flag *is_new* to be true. To ensure"},{"line_number":146,"context_line":"device compatiblity, and if *sriov-vif-compatible* is false, the original PCI"},{"line_number":147,"context_line":"requests are added with two new attributes if they are not present in the"},{"line_number":148,"context_line":"requests: vendor_id and product_id, which can be obtained from the neutron"},{"line_number":149,"context_line":"ports or PCI devices allocated for the original requests."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_8bb6d6da","line":146,"updated":"2015-04-28 14:36:33.000000000","message":"need to change this to be ensure-sriov-vif-compatible","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":146,"context_line":"device compatiblity, and if *sriov-vif-compatible* is false, the original PCI"},{"line_number":147,"context_line":"requests are added with two new attributes if they are not present in the"},{"line_number":148,"context_line":"requests: vendor_id and product_id, which can be obtained from the neutron"},{"line_number":149,"context_line":"ports or PCI devices allocated for the original requests."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The original PCI request ID can be used to correlate the allocated PCI device"},{"line_number":152,"context_line":"with its requested network. Refer to https://review.openstack.org/#/c/86606/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_c713c10c","line":149,"updated":"2015-04-27 18:42:57.000000000","message":"So an instance will have, for a short period, a potentially conflicting set of PCI requests that apply to separate hosts? This seems confusing to me. Should the requests have a hostname attached to them so we know which host each applies to, with \u003dNone meaning \"this hasn\u0027t been satisfied yet\" ?","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":146,"context_line":"device compatiblity, and if *sriov-vif-compatible* is false, the original PCI"},{"line_number":147,"context_line":"requests are added with two new attributes if they are not present in the"},{"line_number":148,"context_line":"requests: vendor_id and product_id, which can be obtained from the neutron"},{"line_number":149,"context_line":"ports or PCI devices allocated for the original requests."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"The original PCI request ID can be used to correlate the allocated PCI device"},{"line_number":152,"context_line":"with its requested network. Refer to https://review.openstack.org/#/c/86606/"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_6bc13ae4","line":149,"in_reply_to":"7ad32947_c713c10c","updated":"2015-04-28 14:36:33.000000000","message":"as explained later, the new pci requests are for scheduling purpose and later device allocation on the scheduled destination host.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Based on the current live migration workflow, the new PCI requests for live"},{"line_number":165,"context_line":"migration don\u0027t need to be persisted into the database. The new PCI requests"},{"line_number":166,"context_line":"are saved as part of the instance object and passed along between the source"},{"line_number":167,"context_line":"and destination nodes. Regardless if the migration succeeds or fails, the PCI"},{"line_number":168,"context_line":"requests will be garbage collected together with the instance object."},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_07d89952","line":166,"range":{"start_line":166,"start_character":4,"end_line":166,"end_character":40},"updated":"2015-04-27 18:42:57.000000000","message":"\"saved\" implies DB persistence to me. Do you mean \"stored only in the instance object until they\u0027re written to the DB by the destination host on success\" ?","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Based on the current live migration workflow, the new PCI requests for live"},{"line_number":165,"context_line":"migration don\u0027t need to be persisted into the database. The new PCI requests"},{"line_number":166,"context_line":"are saved as part of the instance object and passed along between the source"},{"line_number":167,"context_line":"and destination nodes. Regardless if the migration succeeds or fails, the PCI"},{"line_number":168,"context_line":"requests will be garbage collected together with the instance object."},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_8bc7f611","line":166,"in_reply_to":"7ad32947_07d89952","updated":"2015-04-28 14:36:33.000000000","message":"will reword it","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":165,"context_line":"migration don\u0027t need to be persisted into the database. The new PCI requests"},{"line_number":166,"context_line":"are saved as part of the instance object and passed along between the source"},{"line_number":167,"context_line":"and destination nodes. Regardless if the migration succeeds or fails, the PCI"},{"line_number":168,"context_line":"requests will be garbage collected together with the instance object."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"If migration to the destination host fails, SR-IOV devices allocated for the"},{"line_number":171,"context_line":"instance must be freed."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_27ba75e2","line":168,"updated":"2015-04-27 18:42:57.000000000","message":"I would avoid the term \"garbage collected\" here and just say \"dropped\" or \"never written to the database\".","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":165,"context_line":"migration don\u0027t need to be persisted into the database. The new PCI requests"},{"line_number":166,"context_line":"are saved as part of the instance object and passed along between the source"},{"line_number":167,"context_line":"and destination nodes. Regardless if the migration succeeds or fails, the PCI"},{"line_number":168,"context_line":"requests will be garbage collected together with the instance object."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"If migration to the destination host fails, SR-IOV devices allocated for the"},{"line_number":171,"context_line":"instance must be freed."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_0b55264f","line":168,"in_reply_to":"7ad32947_27ba75e2","updated":"2015-04-28 14:36:33.000000000","message":"Done","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Although the technique is pretty simple, there is no obvious benefit other than"},{"line_number":210,"context_line":"direct association of an interface with the VM that is using it (due to the"},{"line_number":211,"context_line":"naming convention)."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"There was also discussion about using network XML. It is found, however, the"},{"line_number":214,"context_line":"running domain XML is not equal to the originally defined domain XML when"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_a7f8c57d","line":211,"updated":"2015-04-27 18:42:57.000000000","message":"That actually sounds like it\u0027s potentially a good thing anyway. Instead of seeing macvtap0-N, I\u0027d see actual neutron ports in the listing.\n\nTo be honest, the above alternative has a HUGE benefit of being massively simpler than what you have described above. I think this is important for other reviewers to consider when reading this spec. I think you should at least replace \"no obvious benefit\" with \"obvious benefit of less change and simplicity\" and then explain why the above proposal is *better*. Right now, I\u0027m not sure I see it :)","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"43e82138198845b450d671e0de79552eb1b8e801","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Although the technique is pretty simple, there is no obvious benefit other than"},{"line_number":210,"context_line":"direct association of an interface with the VM that is using it (due to the"},{"line_number":211,"context_line":"naming convention)."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"There was also discussion about using network XML. It is found, however, the"},{"line_number":214,"context_line":"running domain XML is not equal to the originally defined domain XML when"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5ad0253b_1e55911c","line":211,"in_reply_to":"7ad32947_064cfb40","updated":"2015-04-28 17:04:26.000000000","message":"I think the comments or arguments for/against should be in the document here.\n\nI\u0027ll go read the comments, but I can\u0027t imagine how it could be as complex as this.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Although the technique is pretty simple, there is no obvious benefit other than"},{"line_number":210,"context_line":"direct association of an interface with the VM that is using it (due to the"},{"line_number":211,"context_line":"naming convention)."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"There was also discussion about using network XML. It is found, however, the"},{"line_number":214,"context_line":"running domain XML is not equal to the originally defined domain XML when"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_064cfb40","line":211,"in_reply_to":"7ad32947_a7f8c57d","updated":"2015-04-28 14:36:33.000000000","message":"See comments/discussions on patch #3 about interface renaming. I\u0027ve actually tried the approach during the reference implementation. It actually only affects if the domain XML will get changed, and overall there is not much difference in the complexity. With interface renaming, change to the host system due to renaming doesn\u0027t look pretty.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":214,"context_line":"running domain XML is not equal to the originally defined domain XML when"},{"line_number":215,"context_line":"network XMLs are used. The running doamin XML actually directly refers to"},{"line_number":216,"context_line":"interfaces that are allocated from the network XMLs. Therefore, the domain XML"},{"line_number":217,"context_line":"has to be modified before live migration."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_071779a4","line":217,"updated":"2015-04-27 18:42:57.000000000","message":"Could you elaborate on this a bit? I might not know what \"network xml\" means in this context.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":214,"context_line":"running domain XML is not equal to the originally defined domain XML when"},{"line_number":215,"context_line":"network XMLs are used. The running doamin XML actually directly refers to"},{"line_number":216,"context_line":"interfaces that are allocated from the network XMLs. Therefore, the domain XML"},{"line_number":217,"context_line":"has to be modified before live migration."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_46267369","line":217,"in_reply_to":"7ad32947_071779a4","updated":"2015-04-28 14:36:33.000000000","message":"Refer to https://libvirt.org/formatnetwork.html. The network xml is a separate entity that can be referenced by the domain xml.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"35a3ce4fdb0367ba9a7ffd8820a77062ffcd3f4f","unresolved":false,"context_lines":[{"line_number":215,"context_line":"network XMLs are used. The running doamin XML actually directly refers to"},{"line_number":216,"context_line":"interfaces that are allocated from the network XMLs. Therefore, the domain XML"},{"line_number":217,"context_line":"has to be modified before live migration."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a016987_249ae76e","line":218,"updated":"2015-05-20 16:17:51.000000000","message":"I just tried this out - having 2 hypervisors, each having the network \"direct-macvtap defined\". \n\nSource:\n\u003cnetwork\u003e\n        \u003cname\u003edirect-macvtap\u003c/name\u003e\n        \u003cforward mode\u003d\"bridge\"\u003e\n          \u003cinterface dev\u003d\"enccw0.0.1530\"/\u003e\n        \u003c/forward\u003e\n\u003c/network\u003e\n\n\nOn the target hypervisor I modified the interface to use another one\n\u003cnetwork\u003e\n        \u003cname\u003edirect-macvtap\u003c/name\u003e\n        \u003cforward mode\u003d\"bridge\"\u003e\n          \u003cinterface dev\u003d\"enccw0.0.3b00\"/\u003e\n        \u003c/forward\u003e\n\u003c/network\u003e\n\nThen live migrating:\nvirsh migrate --live macvtap qemu+tcp://\u003ctarget\u003e/system\n\n\nLive migration worked without problems. On the target hypervisor, the guest has been attached to the other network interface without problems.\n\nAm I missing anything here?\n\nFrom my thinking, the libvirt network approach would be the more attractive one, as no changes to nova would be required. \n\nMabe some background why I\u0027m doing such tests. For the liberty release we plan to implement a new ml2 plugin and agent for pure macvtap support (on stackforge). This agent works with any ethernet interface (not bound to pci, like the sriov_nic). The idea is to attach guests via macvtap in bridge mode to the networks. So for Live Migration I would face the same/similar issues....","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"a215f2522dd6e9778d4e36e8ffb5f74d8930e973","unresolved":false,"context_lines":[{"line_number":215,"context_line":"network XMLs are used. The running doamin XML actually directly refers to"},{"line_number":216,"context_line":"interfaces that are allocated from the network XMLs. Therefore, the domain XML"},{"line_number":217,"context_line":"has to be modified before live migration."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a016987_4e0bb98e","line":218,"in_reply_to":"7a016987_249ae76e","updated":"2015-05-21 00:03:37.000000000","message":"Can you check your running domain xml after the instance is launched? I do \"sudo virsh dumpxml \u003cinstance-name\u003e\" to check it up. What I found was that the xml is different from the XML that\u0027s used to DEFINE the instance. Also do you have an interface enccw0.0.1530 on your target system?\n\nthe issue is that the running xml is used during migration, and you may end up having issues like unavailable interface at the target system.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"fc4962f821fa4eca3353f4142b020f78dd6c70b6","unresolved":false,"context_lines":[{"line_number":215,"context_line":"network XMLs are used. The running doamin XML actually directly refers to"},{"line_number":216,"context_line":"interfaces that are allocated from the network XMLs. Therefore, the domain XML"},{"line_number":217,"context_line":"has to be modified before live migration."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a016987_3821b89e","line":218,"in_reply_to":"7a016987_25ad2588","updated":"2015-06-01 14:58:36.000000000","message":"Using libvirt version 1.2.13\n\nJust to make sure I get your concerns regarding the network xml approach\n- The libvirt network would contain a list of pci VFs\n- As there are mulitple VFs in the target network, you do not know which of them will be allocated before instance is started on the target - but you need this information for some pci vendor specific actions (not related to macvtap)\n- As there are mulitple VFs in the target network managed by libvirt, you cannot pick one specific of them along attributes like speed and so on - this only works when the nova code has control over it\n\nI think I got your points. Would you mind to make a short update to the your alternatives section in patchset 6 to reflect those 2 problems?","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"cf7f409e3a143f87ed2434cb48765b14f36293a3","unresolved":false,"context_lines":[{"line_number":215,"context_line":"network XMLs are used. The running doamin XML actually directly refers to"},{"line_number":216,"context_line":"interfaces that are allocated from the network XMLs. Therefore, the domain XML"},{"line_number":217,"context_line":"has to be modified before live migration."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a016987_c5acf8ee","line":218,"in_reply_to":"7a016987_3821b89e","updated":"2015-06-01 15:35:12.000000000","message":"When I was doing the work a few months ago, I was using a much older version. \n\nYes, you are correct in the above points. Let me update the doc to make it clear.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"887d4e4704a165301aab684486ebea59bce98429","unresolved":false,"context_lines":[{"line_number":215,"context_line":"network XMLs are used. The running doamin XML actually directly refers to"},{"line_number":216,"context_line":"interfaces that are allocated from the network XMLs. Therefore, the domain XML"},{"line_number":217,"context_line":"has to be modified before live migration."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a016987_dd43dd40","line":218,"in_reply_to":"7a016987_4e0bb98e","updated":"2015-05-21 06:31:04.000000000","message":"Ok, this is my libvirt xml setup\n\nDefined network on source\n\u003cnetwork\u003e\n        \u003cname\u003edirect-macvtap\u003c/name\u003e\n        \u003cforward mode\u003d\"bridge\"\u003e\n          \u003cinterface dev\u003d\"enccw0.0.1530\"/\u003e\n        \u003c/forward\u003e\n\u003c/network\u003e\n\nDefined Network on target\n\u003cnetwork\u003e\n        \u003cname\u003edirect-macvtap\u003c/name\u003e\n        \u003cforward mode\u003d\"bridge\"\u003e\n          \u003cinterface dev\u003d\"enccw0.0.3b00\"/\u003e\n        \u003c/forward\u003e\n\u003c/network\u003e\n\nDefined guest on source with the following attachment\n\u003cinterface type\u003d\u0027network\u0027\u003e\n      \u003csource network\u003d\u0027direct-macvtap\u0027/\u003e\n\u003c/interface\u003e\n\nAfter launch starting the guest, it looks like this:\n   \u003cinterface type\u003d\u0027direct\u0027\u003e\n      \u003cmac address\u003d\u002752:54:00:06:47:93\u0027/\u003e\n      \u003csource network\u003d\u0027direct-macvtap\u0027 dev\u003d\u0027enccw0.0.1530\u0027 mode\u003d\u0027bridge\u0027/\u003e\n      \u003ctarget dev\u003d\u0027macvtap0\u0027/\u003e\n      \u003cmodel type\u003d\u0027virtio\u0027/\u003e\n      \u003calias name\u003d\u0027net0\u0027/\u003e\n      \u003caddress type\u003d\u0027ccw\u0027 cssid\u003d\u00270xfe\u0027 ssid\u003d\u00270x0\u0027 devno\u003d\u00270x0001\u0027/\u003e\n    \u003c/interface\u003e\n\nThen Live migrating:\n\u003e virsh migrate --live macvtap qemu+tcp://\u003ctarget-host\u003e/system\n\nInterface xml of guest on target after successfull migration\n   \u003cinterface type\u003d\u0027direct\u0027\u003e\n      \u003cmac address\u003d\u002752:54:00:06:47:93\u0027/\u003e\n      \u003csource network\u003d\u0027direct-macvtap\u0027 dev\u003d\u0027enccw0.0.3b00\u0027 mode\u003d\u0027bridge\u0027/\u003e\n      \u003ctarget dev\u003d\u0027macvtap0\u0027/\u003e\n      \u003cmodel type\u003d\u0027virtio\u0027/\u003e\n      \u003calias name\u003d\u0027net0\u0027/\u003e\n      \u003caddress type\u003d\u0027ccw\u0027 cssid\u003d\u00270xfe\u0027 ssid\u003d\u00270x0\u0027 devno\u003d\u00270x0001\u0027/\u003e\n    \u003c/interface\u003e\n\n\n--\u003e It seems like that libvirt can handle the different backing devices on its own.\n\n\nNote: \n- enccw0.0.1530 only exists on the source hypervisor\n- (while enccw0.0.3b00 exists on both)\n- I\u0027m running my tests on s390 linux - but I\u0027m not expecting differences to x86 (but haven\u0027t tested it)\n- Migrating back to the original source works also fine\n\n\nTo your statement \"the issue is that the running xml is used during migration, and you may end up having issues like unavailable interface at the target system.\":\n\nYou\u0027re saying the big risk is, that after you defined and started the libvirt network, the interface could go \"down\" without being recognized? - Yes that\u0027s true. I did a sniff test: If the networks backing interface is down then the guest is attached, but it cannot reach the outside world... But I guess this could happen on a direct attachment too, unless you don\u0027t check the the state of the interface regularily.\n\nOr is your fear, that it could completely disappear? I also tested this scenario:\nThe hypervisors changed the roles. My original source (with network using 1530 nic) became the target , as the the vm still is located on the hypervisor with the network using the 3b00 nic.\nNow I deconfigured the enccw0.0.1530 on the new target and tried to migrate back the instance. I got the following error message on the (new) source hypervisor (where I started the migration):\nvirsh migrate --live macvtap qemu+tcp://\u003coriginal-source\u003e/system\nerror: Unable to get index for interface enccw0.0.1530: No such device\n\n\nAnd I have to correct another statement from myself before: I said that with the network approach no changes to nova are required. That\u0027s not true. At least you have to update the vif definitions in nova to use a source network instead of a source device... but that would be a minor change.\n\n\nSo my idea is only having that vif type in nova. Creation of the libvirt network will be handled by the neutron agent. For me that\u0027s perfect as in my agents configuration that would be the interface mapping defined. Not sure how this approach would work out for the sriov scenario. I guess there nova is making decissions which interface to pick, right?","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"fb4e70956049ac506f445a1a07701dde6f71922b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"network XMLs are used. The running doamin XML actually directly refers to"},{"line_number":216,"context_line":"interfaces that are allocated from the network XMLs. Therefore, the domain XML"},{"line_number":217,"context_line":"has to be modified before live migration."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a016987_25ad2588","line":218,"in_reply_to":"7a016987_dd43dd40","updated":"2015-05-21 21:11:27.000000000","message":"Which libvirt version are you using? With the libvirt version I was using, the running xml (after the instance is launched) has no reference to the network xml at all. Glad to know that it works the way you described, which was our initial expectation.\n\nIn a matter of fact, the network xml was our preferred approach when we started the discussion to support migration (also see patch set 1). The major obstacle was that we realized that there didn\u0027t seem to be a libvirt API that can be invoked to get knowledge of the PCI device allocated for each port before the instance is launched. However, such knowledge is critical in properly configuring some vendor-specific devices. Currently, device allocation is done by the PCI manager within nova. With network xml, device allocation will be done by libvirt, and it seems to be lacking the flexibility to support allocation based on various attributes associated with pci devices (such as tso/rso, speed, etc).","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"N/A"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"REST API impact"},{"line_number":225,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_477451fc","line":222,"updated":"2015-04-27 18:42:57.000000000","message":"I\u0027m not sure where exactly to put this, but \"data model\" seems as good as any:\n\nI think I want to see all the proposed changes to the RPC API detailed out. Since the live migration bits are mostly passing around random dicts of madness, I\u0027m concerned about the upgrade impacts here and that you\u0027ve thought them through.\n\nIt also seems to me that the blob of goo that we pass around as part of these migration checks probably needs to be an object pretty soon, and doing that before adding a bunch of the things described here would probably be a good idea.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"4868c3d34454fc21be5584dab664885b77660459","unresolved":false,"context_lines":[{"line_number":219,"context_line":"Data model impact"},{"line_number":220,"context_line":"-----------------"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"N/A"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"REST API impact"},{"line_number":225,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_0801a9ae","line":222,"in_reply_to":"7ad32947_477451fc","updated":"2015-04-28 14:36:33.000000000","message":"RPC API versioning will be addressed","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85a189b18683a99bbb4a7143e795f8868fb01697","unresolved":false,"context_lines":[{"line_number":288,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"In addition to develop unit tests in accordance to the existing live migration"},{"line_number":291,"context_line":"unit tests, if any, it should be tested by third party CIs."},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"Documentation Impact"},{"line_number":294,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7ad32947_a702053d","line":291,"updated":"2015-04-27 18:42:57.000000000","message":"I think we should have some actual plans for this being tested by third party CI systems, and not just hope that it will happen. I don\u0027t know that any of the existing systems test live migration right now, so presumably there is some serious work to be done to make that happen. Upstream now has this ability, but it took a while to get there. If there\u0027s any way this could be leveraged there, that\u0027d be excellent as well, of course.","commit_id":"d5d352e18bc14ea1210bddc4b5dbd05c34cfc7ff"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"b48cba698df27aff48291b8205371f5b1097ce54","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Support live migration with macvtap SR-IOV"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/sriov-live-migration"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_a582b192","line":11,"updated":"2015-06-03 07:26:23.000000000","message":"remove this","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"87fbfbf65abdd2607cc97c47a36e7dd7ba985dab","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Support live migration with macvtap SR-IOV"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/sriov-live-migration"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_8b244daf","line":11,"in_reply_to":"5afe65bd_a582b192","updated":"2015-06-03 16:18:22.000000000","message":"Done","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"b48cba698df27aff48291b8205371f5b1097ce54","unresolved":false,"context_lines":[{"line_number":30,"context_line":"live migration with direct SR-IOV is not possible without hypervisor change or"},{"line_number":31,"context_line":"using other techniques, such as that suggested in [EDWIN_LIVE]_ and"},{"line_number":32,"context_line":"[COMPS_LIVE]_.  Fortunately, libvirt supports live migration with macvtap"},{"line_number":33,"context_line":"SR-IOV. With macvtap SR-IOV, a macvtap interface residing on the host is"},{"line_number":34,"context_line":"directly connected to an ethernet interface that corresponds to a virtual"},{"line_number":35,"context_line":"function (VF) on the VIC. the VM runs a virtual ethernet driver (e.g."},{"line_number":36,"context_line":"virtio_net) that delivers the packets to the macvtap interface that passes them"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_aaab9e1c","line":33,"updated":"2015-06-03 07:26:23.000000000","message":"...a macvtap interface (in passthrough mode) residing ...","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"87fbfbf65abdd2607cc97c47a36e7dd7ba985dab","unresolved":false,"context_lines":[{"line_number":30,"context_line":"live migration with direct SR-IOV is not possible without hypervisor change or"},{"line_number":31,"context_line":"using other techniques, such as that suggested in [EDWIN_LIVE]_ and"},{"line_number":32,"context_line":"[COMPS_LIVE]_.  Fortunately, libvirt supports live migration with macvtap"},{"line_number":33,"context_line":"SR-IOV. With macvtap SR-IOV, a macvtap interface residing on the host is"},{"line_number":34,"context_line":"directly connected to an ethernet interface that corresponds to a virtual"},{"line_number":35,"context_line":"function (VF) on the VIC. the VM runs a virtual ethernet driver (e.g."},{"line_number":36,"context_line":"virtio_net) that delivers the packets to the macvtap interface that passes them"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_eb750198","line":33,"in_reply_to":"5afe65bd_aaab9e1c","updated":"2015-06-03 16:18:22.000000000","message":"Done","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"b48cba698df27aff48291b8205371f5b1097ce54","unresolved":false,"context_lines":[{"line_number":35,"context_line":"function (VF) on the VIC. the VM runs a virtual ethernet driver (e.g."},{"line_number":36,"context_line":"virtio_net) that delivers the packets to the macvtap interface that passes them"},{"line_number":37,"context_line":"directly to the VIC. With a bit of sacrifice of the packet latency and network"},{"line_number":38,"context_line":"thoroughput, it\u0027s possible to live migrate VMs that use it. In this spec, we\u0027ll"},{"line_number":39,"context_line":"focus on the support of live migration with macvtap SR-IOV. Live migration with"},{"line_number":40,"context_line":"direct SR-IOV may be addressed in the future."},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_6a648621","line":38,"updated":"2015-06-03 07:26:23.000000000","message":"s/thoroughput/throughput","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"87fbfbf65abdd2607cc97c47a36e7dd7ba985dab","unresolved":false,"context_lines":[{"line_number":35,"context_line":"function (VF) on the VIC. the VM runs a virtual ethernet driver (e.g."},{"line_number":36,"context_line":"virtio_net) that delivers the packets to the macvtap interface that passes them"},{"line_number":37,"context_line":"directly to the VIC. With a bit of sacrifice of the packet latency and network"},{"line_number":38,"context_line":"thoroughput, it\u0027s possible to live migrate VMs that use it. In this spec, we\u0027ll"},{"line_number":39,"context_line":"focus on the support of live migration with macvtap SR-IOV. Live migration with"},{"line_number":40,"context_line":"direct SR-IOV may be addressed in the future."},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_cb780592","line":38,"in_reply_to":"5afe65bd_6a648621","updated":"2015-06-03 16:18:22.000000000","message":"Done","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"b48cba698df27aff48291b8205371f5b1097ce54","unresolved":false,"context_lines":[{"line_number":129,"context_line":"all the SR-IOV adaptors in a cloud are VIF compatible. A nova boolean config"},{"line_number":130,"context_line":"option *ensure_sriov-vif-compatible* will be provided for this purpose."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"If *ensure_sriov-vif-compatible* is true, live migration is only possible with"},{"line_number":133,"context_line":"the same type (vendor_id/product_id) of SR-IOV capable NIC adaptors."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"In the future, with enhancement in the nova scheduler, the config option may be"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_05e185fe","line":132,"updated":"2015-06-03 07:26:23.000000000","message":"are dashes (-) allowed in config options? I only have seen config options using underscores so far...e.g. \"ensure_sriov_vif_compatible\"","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"87fbfbf65abdd2607cc97c47a36e7dd7ba985dab","unresolved":false,"context_lines":[{"line_number":129,"context_line":"all the SR-IOV adaptors in a cloud are VIF compatible. A nova boolean config"},{"line_number":130,"context_line":"option *ensure_sriov-vif-compatible* will be provided for this purpose."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"If *ensure_sriov-vif-compatible* is true, live migration is only possible with"},{"line_number":133,"context_line":"the same type (vendor_id/product_id) of SR-IOV capable NIC adaptors."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"In the future, with enhancement in the nova scheduler, the config option may be"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_60749067","line":132,"in_reply_to":"5afe65bd_05e185fe","updated":"2015-06-03 16:18:22.000000000","message":"it\u0027s typo, will change","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"b48cba698df27aff48291b8205371f5b1097ce54","unresolved":false,"context_lines":[{"line_number":130,"context_line":"option *ensure_sriov-vif-compatible* will be provided for this purpose."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"If *ensure_sriov-vif-compatible* is true, live migration is only possible with"},{"line_number":133,"context_line":"the same type (vendor_id/product_id) of SR-IOV capable NIC adaptors."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"In the future, with enhancement in the nova scheduler, the config option may be"},{"line_number":136,"context_line":"removed."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_85c0d52b","line":133,"updated":"2015-06-03 07:26:23.000000000","message":"That\u0027s not yet clear to me: \nIf \"ensure_sriov-vif-compatible\" is true you do a check in pre_live_migration to ensure that target and source device have the same vendor/product_id? And if such a device does not exist on the target, you abort live migration? Is that what you\u0027re planning?\n\nWhat if \"ensure_sriov-vif-compatible\" is false? \n- Will live migration be prohibited at all?\n- Or does the admin has to ensure, that all devices support the same VIF types and if not it\u0027s at his own risk?","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"87fbfbf65abdd2607cc97c47a36e7dd7ba985dab","unresolved":false,"context_lines":[{"line_number":130,"context_line":"option *ensure_sriov-vif-compatible* will be provided for this purpose."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"If *ensure_sriov-vif-compatible* is true, live migration is only possible with"},{"line_number":133,"context_line":"the same type (vendor_id/product_id) of SR-IOV capable NIC adaptors."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"In the future, with enhancement in the nova scheduler, the config option may be"},{"line_number":136,"context_line":"removed."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_e0c88024","line":133,"in_reply_to":"5afe65bd_85c0d52b","updated":"2015-06-03 16:18:22.000000000","message":"So if ensure_sriov_vif_compatible is true, the criteria used to find a target machine by the scheduler will include vendor/product_id. If it\u0027s false, the deployer assumes that all the vNICs in the cloud are compatible in terms of vif type, therefore, when scheduling a target, vendor/product_id will not be included.","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"b48cba698df27aff48291b8205371f5b1097ce54","unresolved":false,"context_lines":[{"line_number":146,"context_line":"* they don\u0027t contain information to correlate a request with a neutron port"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"New PCI requests will be created with the flag *is_new* to be true. To ensure"},{"line_number":149,"context_line":"device compatiblity, and if *ensure-sriov-vif-compatible* is false, the"},{"line_number":150,"context_line":"original PCI requests are added with two new attributes if they are not present"},{"line_number":151,"context_line":"in the requests: vendor_id and product_id, which can be obtained from the"},{"line_number":152,"context_line":"neutron ports or PCI devices allocated for the original requests."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_c53b6d37","line":149,"updated":"2015-06-03 07:26:23.000000000","message":"above your where using \"ensure_sriov-vif-compatible\"","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"87fbfbf65abdd2607cc97c47a36e7dd7ba985dab","unresolved":false,"context_lines":[{"line_number":146,"context_line":"* they don\u0027t contain information to correlate a request with a neutron port"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"New PCI requests will be created with the flag *is_new* to be true. To ensure"},{"line_number":149,"context_line":"device compatiblity, and if *ensure-sriov-vif-compatible* is false, the"},{"line_number":150,"context_line":"original PCI requests are added with two new attributes if they are not present"},{"line_number":151,"context_line":"in the requests: vendor_id and product_id, which can be obtained from the"},{"line_number":152,"context_line":"neutron ports or PCI devices allocated for the original requests."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_0055dc1b","line":149,"in_reply_to":"5afe65bd_c53b6d37","updated":"2015-06-03 16:18:22.000000000","message":"will change it to be:\n  and if *ensure_sriov_vif_compatible* is true,","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"b48cba698df27aff48291b8205371f5b1097ce54","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Notifications impact"},{"line_number":243,"context_line":"--------------------"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"N/A"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_85a69551","line":244,"updated":"2015-06-03 07:26:23.000000000","message":"Bump RPC version due to change of migrate_data?","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"87fbfbf65abdd2607cc97c47a36e7dd7ba985dab","unresolved":false,"context_lines":[{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Notifications impact"},{"line_number":243,"context_line":"--------------------"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"N/A"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_4b10954e","line":244,"in_reply_to":"5afe65bd_85a69551","updated":"2015-06-03 16:18:22.000000000","message":"make sense","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"b48cba698df27aff48291b8205371f5b1097ce54","unresolved":false,"context_lines":[{"line_number":302,"context_line":"Documentation Impact"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Restrictions and the configuration option *ensure_sriov_vif_compatible* should"},{"line_number":306,"context_line":"be properly documented"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_e5030941","line":305,"updated":"2015-06-03 07:26:23.000000000","message":"here your parameter only uses underscores \"ensure_sriov_vif_compatible\"","commit_id":"219859d6af9f12550b8bed865f4778fd6c24bb5a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"d7663027b0334aca4b6fb5547849921df03ffc8c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"option *ensure_sriov_vif_compatible* will be provided for this purpose."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"If *ensure_sriov_vif_compatible* is true, live migration is only possible with"},{"line_number":131,"context_line":"the same type (vendor_id/product_id) of SR-IOV capable NIC adaptors."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"In the future, with enhancement in the nova scheduler, the config option may be"},{"line_number":134,"context_line":"removed."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_c515a349","line":131,"updated":"2015-06-08 12:43:35.000000000","message":"ok, got it. \n\nensure_sriov_vif_compatible says, that the scheduler takes care that product/vendor id from source and target are the same. In this case also the supported vif-types are always the same, so no need for vif-type based schedulung\n\nIf it is false vif_compatiblity between source and target cannot be enforced by the Openstack code, but the admin needs has to take care, that all available pci nics support the same vif-type by hand. \n\nIt took me a while to figure it out from the text. Maybe adding the following makes it more clear\n- to the \u003dtrue case something like \"...to ensure the supported vif-types on source and target are compatible.\"\n- add a short description to the \u003dfalse case \"If ensure_sriov_vif_compatible is false, there\u0027s no guarantee that source and target support the same vif-types\".\n\neverything else looks fine from my side!","commit_id":"091631c3df7d0e5d390a9b4ebb63ce7e3814d7ac"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"8c92a866b5c1db7db48ffde25f6e9ac5fee771dc","unresolved":false,"context_lines":[{"line_number":128,"context_line":"option *ensure_sriov_vif_compatible* will be provided for this purpose."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"If *ensure_sriov_vif_compatible* is true, live migration is only possible with"},{"line_number":131,"context_line":"the same type (vendor_id/product_id) of SR-IOV capable NIC adaptors."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"In the future, with enhancement in the nova scheduler, the config option may be"},{"line_number":134,"context_line":"removed."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_5b6d1297","line":131,"in_reply_to":"3afb71cf_c515a349","updated":"2015-06-08 13:21:01.000000000","message":"Ok, let me clear it up a little bit","commit_id":"091631c3df7d0e5d390a9b4ebb63ce7e3814d7ac"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":15,"context_line":"vnic_type being either direct or macvtap. We\u0027ll use the terms direct SR-IOV and"},{"line_number":16,"context_line":"macvtap SR-IOV, respectively, to differentiate the two vnic types in this spec."},{"line_number":17,"context_line":"The port IDs can then be provided in the nova boot API. However, instances"},{"line_number":18,"context_line":"created with SR-IOV ports can not be live migrated in Juno."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_e9e67fe7","line":18,"updated":"2015-06-12 10:29:41.000000000","message":"maybe, \"can not currently be live migrated.\" is that a fair statement?","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"5c06bfabec035639fd63e6c96679ff1f7d447cc6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"vnic_type being either direct or macvtap. We\u0027ll use the terms direct SR-IOV and"},{"line_number":16,"context_line":"macvtap SR-IOV, respectively, to differentiate the two vnic types in this spec."},{"line_number":17,"context_line":"The port IDs can then be provided in the nova boot API. However, instances"},{"line_number":18,"context_line":"created with SR-IOV ports can not be live migrated in Juno."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_1821c04d","line":18,"in_reply_to":"1af86dd1_418d6730","updated":"2015-06-15 18:06:07.000000000","message":"live migration with macvtap is supported by libvirt","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"87f32e9b364acfcfaddf79d3435798853da53e0c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"vnic_type being either direct or macvtap. We\u0027ll use the terms direct SR-IOV and"},{"line_number":16,"context_line":"macvtap SR-IOV, respectively, to differentiate the two vnic types in this spec."},{"line_number":17,"context_line":"The port IDs can then be provided in the nova boot API. However, instances"},{"line_number":18,"context_line":"created with SR-IOV ports can not be live migrated in Juno."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_418d6730","line":18,"in_reply_to":"1af86dd1_e9e67fe7","updated":"2015-06-12 15:21:57.000000000","message":"I think it is not supported by libvirt at all so should be rejected ASAP (not by libvirt failing to do it), but that\u0027s a different bug/story","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":37,"context_line":"focus on the support of live migration with macvtap SR-IOV. Live migration with"},{"line_number":38,"context_line":"direct SR-IOV may be addressed in the future."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Also note that VMs with direct PCI passthrough devices can\u0027t be live migrated."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Use Cases"},{"line_number":43,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_09179ba4","line":40,"updated":"2015-06-12 10:29:41.000000000","message":"not sure this section flows very well with the repartition, but its a minor nit, the detail and content is quite good, if anything, a little too much.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"87f32e9b364acfcfaddf79d3435798853da53e0c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"Given that a VM with direct SR-IOV and/or direct PCI passthrough devices can\u0027t"},{"line_number":60,"context_line":"be live migrated, when a user enters the request to live migrate such a VM, the"},{"line_number":61,"context_line":"request will be rejected with proper reason. This check will be performed in"},{"line_number":62,"context_line":"the Nova conductor before scheduling decision is made."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Modify Domain XML With Target Interfaces"},{"line_number":65,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_0f631bb3","line":62,"updated":"2015-06-12 15:21:57.000000000","message":"Can we reject this in the API? The user experience will be much better and _I t hink_ we have all the info there already (right)?","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":59,"context_line":"Given that a VM with direct SR-IOV and/or direct PCI passthrough devices can\u0027t"},{"line_number":60,"context_line":"be live migrated, when a user enters the request to live migrate such a VM, the"},{"line_number":61,"context_line":"request will be rejected with proper reason. This check will be performed in"},{"line_number":62,"context_line":"the Nova conductor before scheduling decision is made."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Modify Domain XML With Target Interfaces"},{"line_number":65,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_69584f57","line":62,"updated":"2015-06-12 10:29:41.000000000","message":"Probably better to talk about the virt driver check_can_live_migrate call, which is there this needs to go.\n\nHowever, thats way too much detail for a spec really.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"5c06bfabec035639fd63e6c96679ff1f7d447cc6","unresolved":false,"context_lines":[{"line_number":59,"context_line":"Given that a VM with direct SR-IOV and/or direct PCI passthrough devices can\u0027t"},{"line_number":60,"context_line":"be live migrated, when a user enters the request to live migrate such a VM, the"},{"line_number":61,"context_line":"request will be rejected with proper reason. This check will be performed in"},{"line_number":62,"context_line":"the Nova conductor before scheduling decision is made."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Modify Domain XML With Target Interfaces"},{"line_number":65,"context_line":"----------------------------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_187d401c","line":62,"in_reply_to":"1af86dd1_0f631bb3","updated":"2015-06-15 18:06:07.000000000","message":"It seems to be implementation detail. But checking it in conductor is consistent with the existing design \u003d","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":100,"context_line":"above domain xml and replaces the \u0027source dev\u0027 with the one used on the"},{"line_number":101,"context_line":"destination host. All of the above described operations take place in the"},{"line_number":102,"context_line":"compute manager, resource tracker and the libvirt driver on both the source and"},{"line_number":103,"context_line":"the destination hosts."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note that an interface can be identified by its MAC address. The interface"},{"line_number":106,"context_line":"information carried in the migrate_data will be a dictionary keyed off by the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_2995b7e3","line":103,"updated":"2015-06-12 10:29:41.000000000","message":"This is way too much detail for the spec really, but I guess its here now.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"87f32e9b364acfcfaddf79d3435798853da53e0c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"above domain xml and replaces the \u0027source dev\u0027 with the one used on the"},{"line_number":101,"context_line":"destination host. All of the above described operations take place in the"},{"line_number":102,"context_line":"compute manager, resource tracker and the libvirt driver on both the source and"},{"line_number":103,"context_line":"the destination hosts."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note that an interface can be identified by its MAC address. The interface"},{"line_number":106,"context_line":"information carried in the migrate_data will be a dictionary keyed off by the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_83db5f1b","line":103,"in_reply_to":"1af86dd1_2995b7e3","updated":"2015-06-12 15:21:57.000000000","message":"This needs to be done while holding COMPUTE_RESOURCE_SEMAPHORE (so basically we need to do an instance claim) which brings us to the larger point that live migration does not use instance claims at all, and I don\u0027t like the fact that this proposes to only do PCI claiming.\n\nThat\u0027s just not something that we should be doing, as live migration is still broken and racy without full blown claims. Bolting on just pci device claiming seems like a classic example of incurring tech debt.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Note that an interface can be identified by its MAC address. The interface"},{"line_number":106,"context_line":"information carried in the migrate_data will be a dictionary keyed off by the"},{"line_number":107,"context_line":"interface\u0027s MAC address. RPC version needs to be bumped due to change of"},{"line_number":108,"context_line":"migrate_date."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Device/VIF Compatibility"},{"line_number":111,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_4990f3ec","line":108,"updated":"2015-06-12 10:29:41.000000000","message":"please consider the backwards compatibility concerns here. You should really just be adding data for a new case you have enabled.\n\nThis is why this is too much detail. This is better discussed in code review, but now you raised the issue, we need to get the content of the spec correct because it would be miss leading to agree on this.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"adpators to another with Mellanox\u0027s, or vice-versa. Currently with the existing"},{"line_number":125,"context_line":"scheduler, however, it\u0027s not possible to select the destination host based on"},{"line_number":126,"context_line":"compatible VIF types. To ensure VIF compatibity, add A nova boolean config"},{"line_number":127,"context_line":"option *ensure_sriov_vif_compatible*:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* If it is true, live migration is only possible with the same type"},{"line_number":130,"context_line":"  (vendor_id/product_id) of SR-IOV capable NIC adaptors."}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_c97183e2","line":127,"updated":"2015-06-12 10:29:41.000000000","message":"Why have an extra config here? don\u0027t you always want that if you are doing sriov? Ideally we would just relax the constraint for combinations we know work, or get the virt driver to work that out, eventually.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"5c06bfabec035639fd63e6c96679ff1f7d447cc6","unresolved":false,"context_lines":[{"line_number":124,"context_line":"adpators to another with Mellanox\u0027s, or vice-versa. Currently with the existing"},{"line_number":125,"context_line":"scheduler, however, it\u0027s not possible to select the destination host based on"},{"line_number":126,"context_line":"compatible VIF types. To ensure VIF compatibity, add A nova boolean config"},{"line_number":127,"context_line":"option *ensure_sriov_vif_compatible*:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* If it is true, live migration is only possible with the same type"},{"line_number":130,"context_line":"  (vendor_id/product_id) of SR-IOV capable NIC adaptors."}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_78d6ccc6","line":127,"in_reply_to":"1af86dd1_c97183e2","updated":"2015-06-15 18:06:07.000000000","message":"When SR-IOV was added, one of the requirements was to support multi-vendor in the same cloud. If the assumption is the the cloud operator would make sure compatibility, and migrating on a host with vNICs from different vendors are desired, then there is no need for this flag.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"0957097982328453a794b73d1d2c8a499e8f3441","unresolved":false,"context_lines":[{"line_number":124,"context_line":"adpators to another with Mellanox\u0027s, or vice-versa. Currently with the existing"},{"line_number":125,"context_line":"scheduler, however, it\u0027s not possible to select the destination host based on"},{"line_number":126,"context_line":"compatible VIF types. To ensure VIF compatibity, add A nova boolean config"},{"line_number":127,"context_line":"option *ensure_sriov_vif_compatible*:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* If it is true, live migration is only possible with the same type"},{"line_number":130,"context_line":"  (vendor_id/product_id) of SR-IOV capable NIC adaptors."}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_dd4a40c5","line":127,"in_reply_to":"fa32b979_746eb730","updated":"2015-06-16 12:48:33.000000000","message":"This flag is for scheduling purpose. Say if you have an sr-iov port  on a intel card, then when migrating, you want it to be scheduled to a host that has the same type of intel card. Otherwise, it could be scheduled to any host as long as it has a SR-IOV port.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"b9447a141561f2c20d7b7e3eb59188afa1d01b9f","unresolved":false,"context_lines":[{"line_number":124,"context_line":"adpators to another with Mellanox\u0027s, or vice-versa. Currently with the existing"},{"line_number":125,"context_line":"scheduler, however, it\u0027s not possible to select the destination host based on"},{"line_number":126,"context_line":"compatible VIF types. To ensure VIF compatibity, add A nova boolean config"},{"line_number":127,"context_line":"option *ensure_sriov_vif_compatible*:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* If it is true, live migration is only possible with the same type"},{"line_number":130,"context_line":"  (vendor_id/product_id) of SR-IOV capable NIC adaptors."}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_746eb730","line":127,"in_reply_to":"fa32b979_78d6ccc6","updated":"2015-06-16 10:00:00.000000000","message":"Yeah, I\u0027m pretty unclear on just what this config option is trying to enforce. In particular what does \"This means, the PCI devices on the destination host must be compatible in terms of VIF types.\" actually mean - is this referring to different libvirt NIC configurations - if so, libvirt should already be enforcing migration compatibility there.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":196,"context_line":"new PCI information, operations on the hardware or remote devices may be taking"},{"line_number":197,"context_line":"place. Success of those operations are not guaranteed. This is an existing"},{"line_number":198,"context_line":"limitation in the current workflow to support migration, and is out of the"},{"line_number":199,"context_line":"scope of this specification."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Alternatives"},{"line_number":202,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_c40dea38","line":199,"updated":"2015-06-12 10:29:41.000000000","message":"I really don\u0027t get what you mean here.\n\nThat needs to work, else live-migrate is not live right?","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"5c06bfabec035639fd63e6c96679ff1f7d447cc6","unresolved":false,"context_lines":[{"line_number":196,"context_line":"new PCI information, operations on the hardware or remote devices may be taking"},{"line_number":197,"context_line":"place. Success of those operations are not guaranteed. This is an existing"},{"line_number":198,"context_line":"limitation in the current workflow to support migration, and is out of the"},{"line_number":199,"context_line":"scope of this specification."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Alternatives"},{"line_number":202,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_9a14e544","line":199,"in_reply_to":"1af86dd1_c40dea38","updated":"2015-06-15 18:06:07.000000000","message":"Yes it should work. I originally suspect that hardware operation would be executed out of band. I will remove the above paragraph.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":228,"context_line":"Data model impact"},{"line_number":229,"context_line":"-----------------"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"N/A"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"REST API impact"},{"line_number":234,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_a441ce3b","line":231,"updated":"2015-06-12 10:29:41.000000000","message":"Nit: please use None and not N/A for all of these sections, to be consisted with other specs.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"5c06bfabec035639fd63e6c96679ff1f7d447cc6","unresolved":false,"context_lines":[{"line_number":228,"context_line":"Data model impact"},{"line_number":229,"context_line":"-----------------"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"N/A"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"REST API impact"},{"line_number":234,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_9ab06545","line":231,"in_reply_to":"1af86dd1_a441ce3b","updated":"2015-06-15 18:06:07.000000000","message":"sure","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":242,"context_line":"Notifications impact"},{"line_number":243,"context_line":"--------------------"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Bump RPC version due to change of migrate_data."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Other end user impact"},{"line_number":248,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_8437f2e2","line":245,"updated":"2015-06-12 10:29:41.000000000","message":"Thats not a notification.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"5c06bfabec035639fd63e6c96679ff1f7d447cc6","unresolved":false,"context_lines":[{"line_number":242,"context_line":"Notifications impact"},{"line_number":243,"context_line":"--------------------"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Bump RPC version due to change of migrate_data."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"Other end user impact"},{"line_number":248,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_1a83f557","line":245,"in_reply_to":"1af86dd1_8437f2e2","updated":"2015-06-15 18:06:07.000000000","message":"will put it somewhere appropriate.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c8d2c32320ab7ba594430890394d1b596d6305c3","unresolved":false,"context_lines":[{"line_number":297,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"In addition to develop unit tests in accordance to the existing live migration"},{"line_number":300,"context_line":"unit tests, it will be tested by third party CIs."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"Documentation Impact"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1af86dd1_29b6d7dc","line":300,"updated":"2015-06-12 10:29:41.000000000","message":"Can we please be more specific on the testing plan?\n\nWhich of the currently running CIs have agreed to testing this, or is this a new CI you are planning to setup.\n\nNote: this will probably require two nodes, for the best sort of testing.\n\nEither way, we have problems with this code not getting tested, so I am holding this to a higher bar, while we regain trust on following through with getting the tests up.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"5c06bfabec035639fd63e6c96679ff1f7d447cc6","unresolved":false,"context_lines":[{"line_number":297,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"In addition to develop unit tests in accordance to the existing live migration"},{"line_number":300,"context_line":"unit tests, it will be tested by third party CIs."},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"Documentation Impact"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_5a6dfd96","line":300,"in_reply_to":"1af86dd1_29b6d7dc","updated":"2015-06-15 18:06:07.000000000","message":"This requires a CI testbed with SR-IOV networking, and the existing live migration testing cases may suffice. We\u0027re trying to setup one.","commit_id":"2a52d3cfcccbb2609646e8a42f72f231a08b79fd"}]}
