)]}'
{"specs/stein/approved/gracefully-handle-qemu-machine-types.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"63a6ce74504b0dc23510b678b2ec7edc87b27a2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bfdaf3ff_3e4df599","updated":"2019-01-16 13:21:11.000000000","message":"this needs to be retargeted to train as we are past the spec freeze for stein.","commit_id":"eb04a642966b1ab21782a3dfe5be3a0c9b41094b"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"85ddf01381cd52a033671a6455d27d698418c97c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9fdfeff1_59736a81","in_reply_to":"bfdaf3ff_3e4df599","updated":"2019-01-22 14:26:18.000000000","message":"Yeah, I was waiting for the Train specs directory to be merged.  (I inadvertently submitted a duplicate patch for it, without realizing it already exists; `grep` fail.)\n\nNow it is merged: https://review.openstack.org/#/c/630037/","commit_id":"eb04a642966b1ab21782a3dfe5be3a0c9b41094b"}],"specs/train/approved/gracefully-handle-qemu-machine-types.rst":[{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a671c21ece403563a4918d08839dc8e0c5d4a3f1","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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":8,"context_line":"Example Spec - The title of your blueprint"},{"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:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_74e66c47","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":42},"updated":"2019-03-07 16:56:55.000000000","message":"I\u0027m aware this is marked WIP so I\u0027m sure you\u0027re already aware of which areas need work, but just to cover the small chance that you missed it, this title needs changing :-)  Currently the Train approved index appears to list two example specs:\n\nhttp://logs.openstack.org/54/631154/2/check/openstack-tox-docs/b08570d/html/specs/train/index.html","commit_id":"dd01fd9bf64ff8b692d2090744c65c1a4c7fab95"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a671c21ece403563a4918d08839dc8e0c5d4a3f1","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Example Spec - The title of your blueprint"},{"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/handle-default-machine-type-as-q35"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_54d7b04c","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":44},"updated":"2019-03-07 16:56:55.000000000","message":"Ditch this line too.  Sorry if I\u0027m stating the obvious ;-)","commit_id":"dd01fd9bf64ff8b692d2090744c65c1a4c7fab95"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a671c21ece403563a4918d08839dc8e0c5d4a3f1","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Background: QEMU supports two main variants of \"machine type\" (think of"},{"line_number":19,"context_line":"it as a virtual chipset that provides certain default devices) for x86"},{"line_number":20,"context_line":"hosts: (a) \u0027pc\u0027, which corresponds to Intel\u0027s \u0027I440FX\u0027 chipset, which is"},{"line_number":21,"context_line":"twenty-two years old as of this writing; and (b) \u0027q35\u0027, which"},{"line_number":22,"context_line":"corresponds to Intel\u0027s 82Q35 chipset (released in 2007; a relatively"},{"line_number":23,"context_line":"modern chipset).  For AArch64 hosts, the machine type is called: \u0027virt\u0027."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_14460825","line":20,"range":{"start_line":20,"start_character":11,"end_line":20,"end_character":15},"updated":"2019-03-07 16:56:55.000000000","message":"Maybe use double backticks instead of single quotes for all references to machine types?","commit_id":"dd01fd9bf64ff8b692d2090744c65c1a4c7fab95"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a671c21ece403563a4918d08839dc8e0c5d4a3f1","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"- Native PCIe support.  This allows the use of PCI \"Extended Config"},{"line_number":40,"context_line":"  Space\", which *cannot* be used by legacy PCI.  Use case: Sometimes"},{"line_number":41,"context_line":"  certain PCIe devices probe for \u0027extended\u0027 features that determine the"},{"line_number":42,"context_line":"  support and / or operation of the said device.  Also, the native PCIe"},{"line_number":43,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_94d758ee","line":40,"range":{"start_line":40,"start_character":4,"end_line":40,"end_character":10},"updated":"2019-03-07 16:56:55.000000000","message":"Missing link to [1] here?","commit_id":"dd01fd9bf64ff8b692d2090744c65c1a4c7fab95"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"- Native PCIe support.  This allows the use of PCI \"Extended Config"},{"line_number":40,"context_line":"  Space\", which *cannot* be used by legacy PCI.  Use case: Sometimes"},{"line_number":41,"context_line":"  certain PCIe devices probe for \u0027extended\u0027 features that determine the"},{"line_number":42,"context_line":"  support and / or operation of the said device.  Also, the native PCIe"},{"line_number":43,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_3650a7d4","line":40,"range":{"start_line":40,"start_character":4,"end_line":40,"end_character":10},"in_reply_to":"5fc1f717_94d758ee","updated":"2020-04-22 16:15:21.000000000","message":"Yes; will fix.","commit_id":"dd01fd9bf64ff8b692d2090744c65c1a4c7fab95"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a671c21ece403563a4918d08839dc8e0c5d4a3f1","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"},{"line_number":44,"context_line":"  that is used by the legacy \u0027pc\u0027 machine type."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"- vIOMMU emulation.  This has a few use cases[2]_, namely: (a)"},{"line_number":47,"context_line":"  protecting the guest memory from untrusted devices that are directly"},{"line_number":48,"context_line":"  assigned to the guest; (b) protecting guests from untrusted user space"},{"line_number":49,"context_line":"  drivers (e.g. DPDK); (c) assigning devices to nested virtual guests."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_b4d054f9","line":46,"range":{"start_line":46,"start_character":45,"end_line":46,"end_character":49},"updated":"2019-03-07 16:56:55.000000000","message":"Needs to be preceded by a space ` ` or even an escaped space `\\ ` for this to hyperlink.","commit_id":"dd01fd9bf64ff8b692d2090744c65c1a4c7fab95"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a671c21ece403563a4918d08839dc8e0c5d4a3f1","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  have the necessary (virtual) hardware.  (Thanks to Laszlo Ersek, OVMF"},{"line_number":66,"context_line":"  maintainer, for this explanation.)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"[1] https://wiki.osdev.org/PCI_Express#Extended_Configuration_Space"},{"line_number":69,"context_line":"[2] https://wiki.qemu.org/Features/VT-d#Use_Case_1:_Guest_Device_Assignment_with_vIOMMU"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Proposed change"},{"line_number":72,"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":"5fc1f717_3406a488","line":69,"range":{"start_line":68,"start_character":0,"end_line":69,"end_character":87},"updated":"2019-03-07 16:56:55.000000000","message":"These both need to be preceded by `.. `.","commit_id":"dd01fd9bf64ff8b692d2090744c65c1a4c7fab95"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a671c21ece403563a4918d08839dc8e0c5d4a3f1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"happens.  (Refer the \"What will break?\" section below.)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"(1) Use the Nova metadata property: \u0027hw_machine_type\u0027 to set the machine"},{"line_number":82,"context_line":"    type on the guest."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"(2) Ask \u0027libosinfo\u0027, and pick q35 if it says guest can do both \u0027pc\u0027 or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_d4f64090","line":81,"range":{"start_line":81,"start_character":36,"end_line":81,"end_character":53},"updated":"2019-03-07 16:56:55.000000000","message":"Suggest double backticks here and similar places, too.","commit_id":"dd01fd9bf64ff8b692d2090744c65c1a4c7fab95"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"a671c21ece403563a4918d08839dc8e0c5d4a3f1","unresolved":false,"context_lines":[{"line_number":229,"context_line":"[1] An overview of Q35 machine type:"},{"line_number":230,"context_line":"    https://wiki.qemu.org/images/4/4e/Q35.pdf"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"[*] Emumlated Q35 config:"},{"line_number":233,"context_line":"    https://git.qemu.org/?p\u003dqemu.git;a\u003dblob;f\u003ddocs/config/q35-emulated.cfg"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"[*] libosinfo: https://bugzilla.redhat.com/show_bug.cgi?id\u003d1623501 (RFE:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_94e1989d","line":232,"range":{"start_line":232,"start_character":4,"end_line":232,"end_character":13},"updated":"2019-03-07 16:56:55.000000000","message":"Emulated","commit_id":"dd01fd9bf64ff8b692d2090744c65c1a4c7fab95"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"4018c9bceefe8331f532f32933146fa3aa96ea47","unresolved":false,"context_lines":[{"line_number":74,"context_line":"happens.  (Refer the \"What will break?\" section below.)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"(1) Use the Nova metadata property: ``hw_machine_type`` to set the machine"},{"line_number":78,"context_line":"    type on the guest."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"(2) Ask \u0027libosinfo\u0027, and pick q35 if it says guest can do both \u0027pc\u0027 or"},{"line_number":81,"context_line":"    \u0027q35\u0027."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"(3) Or Operators can just use \u0027q35\u0027 (this shouldn\u0027t need code changes,"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"propose to solve this problem?"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_d5a9d48f","line":83,"range":{"start_line":77,"start_character":0,"end_line":83,"end_character":70},"updated":"2019-03-14 17:42:56.000000000","message":"It\u0027s not explicit what these bullet points represent.  It appears that they are possible ways of dealing with the issue but it might make sense to explicitly state this.","commit_id":"ceb307077783327ec022ab2505d3bf121e0df5d5"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"4018c9bceefe8331f532f32933146fa3aa96ea47","unresolved":false,"context_lines":[{"line_number":80,"context_line":"(2) Ask \u0027libosinfo\u0027, and pick q35 if it says guest can do both \u0027pc\u0027 or"},{"line_number":81,"context_line":"    \u0027q35\u0027."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"(3) Or Operators can just use \u0027q35\u0027 (this shouldn\u0027t need code changes,"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"propose to solve this problem?"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_75c34058","line":83,"range":{"start_line":83,"start_character":36,"end_line":83,"end_character":37},"updated":"2019-03-14 17:42:56.000000000","message":"missing closing parenthesis","commit_id":"ceb307077783327ec022ab2505d3bf121e0df5d5"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"4018c9bceefe8331f532f32933146fa3aa96ea47","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"(3) Or Operators can just use \u0027q35\u0027 (this shouldn\u0027t need code changes,"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"propose to solve this problem?"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If this is one part of a larger effort make it clear where this piece ends. In"},{"line_number":88,"context_line":"other words, what\u0027s the scope of this effort?"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"At this point, if you would like to just get feedback on if the problem"},{"line_number":91,"context_line":"and proposed change fit in nova, you can stop here and post this for"},{"line_number":92,"context_line":"review to get preliminary feedback. If so please say: Posting to get"},{"line_number":93,"context_line":"preliminary feedback on the scope of this spec."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Alternatives"},{"line_number":96,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_b5920856","line":93,"range":{"start_line":85,"start_character":0,"end_line":93,"end_character":47},"updated":"2019-03-14 17:42:56.000000000","message":"looks like template text that should be removed.","commit_id":"ceb307077783327ec022ab2505d3bf121e0df5d5"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"4018c9bceefe8331f532f32933146fa3aa96ea47","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Security impact"},{"line_number":111,"context_line":"---------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"FIXME: Since Q35 indirectly enables Secure Boot, wonder if that should"},{"line_number":114,"context_line":"be mentioned here.  My guess: \"no\" -- because, the change itself isn\u0027t"},{"line_number":115,"context_line":"introducing any security-sensitive code."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Notifications impact"},{"line_number":118,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_55764440","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":40},"updated":"2019-03-14 17:42:56.000000000","message":"I think it\u0027d be fair to mention that it enables better security by default.","commit_id":"ceb307077783327ec022ab2505d3bf121e0df5d5"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"b78a868a02bd23c3d682915b16fbc30697bc482c","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"},{"line_number":42,"context_line":"  that is used by the legacy \u0027pc\u0027 machine type."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"- vIOMMU emulation.  This has a few use cases[2]_, namely: (a)"},{"line_number":45,"context_line":"  protecting the guest memory from untrusted devices that are directly"},{"line_number":46,"context_line":"  assigned to the guest; (b) protecting guests from untrusted user space"},{"line_number":47,"context_line":"  drivers (e.g. DPDK); (c) assigning devices to nested virtual guests."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_0467f1ea","line":44,"range":{"start_line":44,"start_character":45,"end_line":44,"end_character":49},"updated":"2019-03-18 19:38:27.000000000","message":"This is still broken as noted in patch set 2:\n\nhttp://logs.openstack.org/54/631154/4/check/openstack-tox-docs/9343d2c/html/specs/train/approved/gracefully-handle-qemu-machine-types.html","commit_id":"33b70c09ea150fad46e78f2d68d7d8820351d5e2"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"b78a868a02bd23c3d682915b16fbc30697bc482c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"(2) Ask \u0027libosinfo\u0027, and pick q35 if it says guest can do both \u0027pc\u0027 or"},{"line_number":81,"context_line":"    \u0027q35\u0027."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"(3) Or Operators can just use \u0027q35\u0027 (this shouldn\u0027t need code changes,"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"propose to solve this problem?"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_44f419f1","line":83,"range":{"start_line":83,"start_character":36,"end_line":83,"end_character":70},"updated":"2019-03-18 19:38:27.000000000","message":"unfinished sentence?","commit_id":"33b70c09ea150fad46e78f2d68d7d8820351d5e2"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"b78a868a02bd23c3d682915b16fbc30697bc482c","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"(3) Or Operators can just use \u0027q35\u0027 (this shouldn\u0027t need code changes,"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"propose to solve this problem?"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If this is one part of a larger effort make it clear where this piece ends. In"},{"line_number":88,"context_line":"other words, what\u0027s the scope of this effort?"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"At this point, if you would like to just get feedback on if the problem"},{"line_number":91,"context_line":"and proposed change fit in nova, you can stop here and post this for"},{"line_number":92,"context_line":"review to get preliminary feedback. If so please say: Posting to get"},{"line_number":93,"context_line":"preliminary feedback on the scope of this spec."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_24f1cd01","line":92,"range":{"start_line":85,"start_character":0,"end_line":92,"end_character":54},"updated":"2019-03-18 19:38:27.000000000","message":"This boilerplate can go, I guess.","commit_id":"33b70c09ea150fad46e78f2d68d7d8820351d5e2"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"b78a868a02bd23c3d682915b16fbc30697bc482c","unresolved":false,"context_lines":[{"line_number":174,"context_line":"  QEMU changes theirs, work out what precise policy we want to make for"},{"line_number":175,"context_line":"  Nova to allow"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* Consider whether to use libosinfo to get recommendations for machine"},{"line_number":178,"context_line":"  types"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Potentially allow setting machine type via flavor \"extra specs\".  The"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_44cdf9b4","line":177,"updated":"2019-03-18 19:38:27.000000000","message":"Are some pros and cons already known?  If so, worth listing them in the spec.  If not, what concrete work items can be done to discover them and make a decision on this?  I\u0027m not sure \"thinking\" counts as a work item ;-)","commit_id":"33b70c09ea150fad46e78f2d68d7d8820351d5e2"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"b78a868a02bd23c3d682915b16fbc30697bc482c","unresolved":false,"context_lines":[{"line_number":223,"context_line":".. [6] https://bugs.launchpad.net/nova/+bug/1780138 -- Don\u0027t assume the"},{"line_number":224,"context_line":"       guest machine type to be of \u0027pc\u0027"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":".. [7] Upstream discssion on libvirt and QEMU lists about supporting OSes:"},{"line_number":227,"context_line":"       https://www.redhat.com/archives/libvir-list/2018-August/msg01073.html"},{"line_number":228,"context_line":"       -- \"[libvirt] clean/simple Q35 support in libvirt+QEMU for guest"},{"line_number":229,"context_line":"       OSes that don\u0027t support virtio-1.0\""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_0495b186","line":226,"range":{"start_line":226,"start_character":16,"end_line":226,"end_character":25},"updated":"2019-03-18 19:38:27.000000000","message":"discussion typo","commit_id":"33b70c09ea150fad46e78f2d68d7d8820351d5e2"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"b78a868a02bd23c3d682915b16fbc30697bc482c","unresolved":false,"context_lines":[{"line_number":228,"context_line":"       -- \"[libvirt] clean/simple Q35 support in libvirt+QEMU for guest"},{"line_number":229,"context_line":"       OSes that don\u0027t support virtio-1.0\""},{"line_number":230,"context_line":""},{"line_number":231,"context_line":".. [8] Emumlated Q35 config:"},{"line_number":232,"context_line":"       https://git.qemu.org/?p\u003dqemu.git;a\u003dblob;f\u003ddocs/config/q35-emulated.cfg"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":".. [9] libosinfo: https://bugzilla.redhat.com/show_bug.cgi?id\u003d1623501 (RFE:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_247c6d70","line":231,"range":{"start_line":231,"start_character":7,"end_line":231,"end_character":16},"updated":"2019-03-18 19:38:27.000000000","message":"Typo as noted in patch set 2","commit_id":"33b70c09ea150fad46e78f2d68d7d8820351d5e2"}],"specs/victoria/approved/q35_qemu_machine_type_as_the_default.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"50a7cbb374f3208e25530ac1a9f96ba9be478897","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"QEMU \u0027q35\u0027 machine type as the default for x86"},{"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\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/gracefully-handle-qemu-machine-types"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_21aba1d6","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":46},"updated":"2020-04-23 09:52:00.000000000","message":"im not sure we shoudl change the defaults in nova without an opt in by the operator as it would break people on upgrade otherwise.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":8,"context_line":"QEMU \u0027q35\u0027 machine type as the default for x86"},{"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\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/gracefully-handle-qemu-machine-types"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Problem description"},{"line_number":14,"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":5,"id":"1f493fa4_524af926","line":11,"range":{"start_line":11,"start_character":44,"end_line":11,"end_character":80},"updated":"2020-04-22 13:55:28.000000000","message":"libvirt-make-q35-default-x86-machine-type ?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":8,"context_line":"QEMU \u0027q35\u0027 machine type as the default for x86"},{"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\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/gracefully-handle-qemu-machine-types"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Problem description"},{"line_number":14,"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":5,"id":"1f493fa4_572786b4","line":11,"range":{"start_line":11,"start_character":44,"end_line":11,"end_character":80},"in_reply_to":"1f493fa4_524af926","updated":"2020-04-22 16:15:21.000000000","message":"Yeah, I changed it in a draft, but didn\u0027t commit.  Will fix.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"QEMU supports two main variants of \"machine type\" (think of it as a"},{"line_number":17,"context_line":"virtual chipset that provides certain default devices) for x86 hosts:"},{"line_number":18,"context_line":"(a) ``pc``, which corresponds to Intel\u0027s I440FX chipset, which is"},{"line_number":19,"context_line":"twenty-two years old as of this writing; and (b) ``q35``, which"},{"line_number":20,"context_line":"corresponds to Intel\u0027s 82Q35 chipset (released in 2007; a relatively"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_dd9e1062","line":17,"range":{"start_line":16,"start_character":50,"end_line":17,"end_character":54},"updated":"2020-04-22 21:05:09.000000000","message":"nit: Personal pet peeve of mine: if you feel the need to use parenthesis, you\u0027re presenting the information in the wrong order. How about:\n\nQEMU\u0027s \"machine type\" concept can be thought of a virtual chipset that provides certain default devices [though my question then is: what devices, can you give a few examples]. QEMU supports two main variants of \"machine type\".","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"QEMU supports two main variants of \"machine type\" (think of it as a"},{"line_number":17,"context_line":"virtual chipset that provides certain default devices) for x86 hosts:"},{"line_number":18,"context_line":"(a) ``pc``, which corresponds to Intel\u0027s I440FX chipset, which is"},{"line_number":19,"context_line":"twenty-two years old as of this writing; and (b) ``q35``, which"},{"line_number":20,"context_line":"corresponds to Intel\u0027s 82Q35 chipset (released in 2007; a relatively"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_7c9535e4","line":17,"range":{"start_line":16,"start_character":50,"end_line":17,"end_character":54},"in_reply_to":"1f493fa4_dd9e1062","updated":"2020-04-23 11:06:37.000000000","message":"In this case, you\u0027re right.  I\u0027ll fix the order and provide an example devices.  \n\nBut I don\u0027t agree with the general claims that \"if you feel the need for parenthesis, you\u0027re presenting info in the wrong order\" or \"parenthesis are bad\"—they\u0027re fine, if you use them sensibly; I know I always don\u0027t. Still learning.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":22,"context_line":"``virt``."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The ``pc`` machine type is considerd \"legacy\", and does not support some"},{"line_number":25,"context_line":"of the modern features (refer the `Use Cases`_ section).  The upstream"},{"line_number":26,"context_line":"QEMU is considering to stop adding new variants of the ``pc`` machine"},{"line_number":27,"context_line":"type."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_fd8e6c2c","line":25,"range":{"start_line":25,"start_character":30,"end_line":25,"end_character":33},"updated":"2020-04-22 21:05:09.000000000","message":"nit: to the","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":22,"context_line":"``virt``."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The ``pc`` machine type is considerd \"legacy\", and does not support some"},{"line_number":25,"context_line":"of the modern features (refer the `Use Cases`_ section).  The upstream"},{"line_number":26,"context_line":"QEMU is considering to stop adding new variants of the ``pc`` machine"},{"line_number":27,"context_line":"type."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_b2d6dd4e","line":27,"range":{"start_line":25,"start_character":57,"end_line":27,"end_character":5},"updated":"2020-04-22 13:55:28.000000000","message":"A reference here would be handy.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"239bc7e1cabce50a3e8d19693724412e4794c526","unresolved":false,"context_lines":[{"line_number":22,"context_line":"``virt``."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The ``pc`` machine type is considerd \"legacy\", and does not support some"},{"line_number":25,"context_line":"of the modern features (refer the `Use Cases`_ section).  The upstream"},{"line_number":26,"context_line":"QEMU is considering to stop adding new variants of the ``pc`` machine"},{"line_number":27,"context_line":"type."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_9f2bcee9","line":27,"range":{"start_line":25,"start_character":57,"end_line":27,"end_character":5},"in_reply_to":"1f493fa4_077e5e18","updated":"2020-04-23 13:29:37.000000000","message":"Ah, thanks for the explanation. Maybe include some version of that in the spec, for ignoramuses like me who aren\u0027t familiar (or have forgotten, because I swear I knew this at one point) with this stuff?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":22,"context_line":"``virt``."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The ``pc`` machine type is considerd \"legacy\", and does not support some"},{"line_number":25,"context_line":"of the modern features (refer the `Use Cases`_ section).  The upstream"},{"line_number":26,"context_line":"QEMU is considering to stop adding new variants of the ``pc`` machine"},{"line_number":27,"context_line":"type."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_ddac508e","line":27,"range":{"start_line":25,"start_character":57,"end_line":27,"end_character":5},"in_reply_to":"1f493fa4_17521e14","updated":"2020-04-22 21:05:09.000000000","message":"What does \"stop adding new variants of the pc machine type\" entail? I\u0027m being a bit of a devil\u0027s advocate PITA here, because I I fully agree that we want to move away from it, but concrete examples of \"X will become really painful\" would help convince folks that the effort is worth it.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f119322052e725196b38d229ca384b112906aeb4","unresolved":false,"context_lines":[{"line_number":22,"context_line":"``virt``."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The ``pc`` machine type is considerd \"legacy\", and does not support some"},{"line_number":25,"context_line":"of the modern features (refer the `Use Cases`_ section).  The upstream"},{"line_number":26,"context_line":"QEMU is considering to stop adding new variants of the ``pc`` machine"},{"line_number":27,"context_line":"type."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_13e7a542","line":27,"range":{"start_line":25,"start_character":57,"end_line":27,"end_character":5},"in_reply_to":"1f493fa4_9f2bcee9","updated":"2020-04-24 09:05:14.000000000","message":"Yeah, will add a section on \"What are versioned machine types\"","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":22,"context_line":"``virt``."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The ``pc`` machine type is considerd \"legacy\", and does not support some"},{"line_number":25,"context_line":"of the modern features (refer the `Use Cases`_ section).  The upstream"},{"line_number":26,"context_line":"QEMU is considering to stop adding new variants of the ``pc`` machine"},{"line_number":27,"context_line":"type."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_17521e14","line":27,"range":{"start_line":25,"start_character":57,"end_line":27,"end_character":5},"in_reply_to":"1f493fa4_b2d6dd4e","updated":"2020-04-22 16:15:21.000000000","message":"Will have to dig; it is buried somewhere in this top-level thread of QEMU (which didn\u0027t merge) that I posted in the v4 of the spec but removed in v5; will add it back:\n\nhttps://lists.gnu.org/archive/html/qemu-devel/2018-06/msg00418.html","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":22,"context_line":"``virt``."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The ``pc`` machine type is considerd \"legacy\", and does not support some"},{"line_number":25,"context_line":"of the modern features (refer the `Use Cases`_ section).  The upstream"},{"line_number":26,"context_line":"QEMU is considering to stop adding new variants of the ``pc`` machine"},{"line_number":27,"context_line":"type."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_077e5e18","line":27,"range":{"start_line":25,"start_character":57,"end_line":27,"end_character":5},"in_reply_to":"1f493fa4_ddac508e","updated":"2020-04-23 11:06:37.000000000","message":"It means this:\n\nAt the start each release, QEMU creates a new machine type, matching the particular release name – for each of the two chipset variants: \u0027i440fx\u0027 (or \u0027pc\u0027) and \u0027q35\u0027 (not shown below). For example, on my F30 laptop:\n\n    $\u003e qemu-system-x86_64 -machine help | head -10\n    Supported machines are:\n    microvm              microvm (i386)\n    pc                   Standard PC (i440FX + PIIX, 1996) (alias of pc-i440fx-4.2)\n    pc-i440fx-4.2        Standard PC (i440FX + PIIX, 1996) (default)\n    pc-i440fx-4.1        Standard PC (i440FX + PIIX, 1996)\n    pc-i440fx-4.0        Standard PC (i440FX + PIIX, 1996)\n    pc-i440fx-3.1        Standard PC (i440FX + PIIX, 1996)\n    pc-i440fx-3.0        Standard PC (i440FX + PIIX, 1996)\n    pc-i440fx-2.9        Standard PC (i440FX + PIIX, 1996)\n    pc-i440fx-2.8        Standard PC (i440FX + PIIX, 1996)\n\nYou see that for the \u0027pc\u0027 machine type, \"pc-i440fx-4.2\" is the latest versioned machine type, which corresponds to the QEMU version on my system (notice the \"4.2\"):\n\n    $\u003e rpm -q qemu-system-x86\n    qemu-system-x86-4.2.0-6.fc30.x86_64\n    \nSometimes a new versioned machine type contains important bug fixes, or even CPU fixes—refer to slides 30-32 here[1].  Especially the slides \"Why bother with machine types\".  So for future versions of QEMU (6.1, 6.2) if \u0027pc\u0027 does not get their versioned variants (\"pc-i440fx-6.1, pc-i440fx-6.2), then users will be left in the dark.\n    \nHope that explains.\n\nPS1: to maximize confusion: versioned \u0027q35\u0027 machine types are rendered as \u0027pc-q35-4.2\u0027 — notice the needless name \u0027pc\u0027 there.  \"Hysterical Raisins(tm)\"\n\nPS2: Also, \u0027q35\u0027 itself is not real q35:\n\n\n\n[1] https://kashyapc.fedorapeople.org/Secure-CPU-config-for-KVM-based-guests-RHT_TechDay_Brussels_2020.pdf","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":27,"context_line":"type."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Operators today can explicitly choose to use ``q35`` via the config"},{"line_number":33,"context_line":"attribute ``[libvirt]/hw_machine_type`` but stick to the legacy ``pc``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_1db878c6","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":6},"updated":"2020-04-22 21:05:09.000000000","message":"nit: making the","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":27,"context_line":"type."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Operators today can explicitly choose to use ``q35`` via the config"},{"line_number":33,"context_line":"attribute ``[libvirt]/hw_machine_type`` but stick to the legacy ``pc``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_5db200e8","line":30,"range":{"start_line":30,"start_character":55,"end_line":30,"end_character":66},"updated":"2020-04-22 21:05:09.000000000","message":"nit: only to x86.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Operators today can explicitly choose to use ``q35`` via the config"},{"line_number":33,"context_line":"attribute ``[libvirt]/hw_machine_type`` but stick to the legacy ``pc``"},{"line_number":34,"context_line":"machine type because it is Nova\u0027s default.  Change this to the"},{"line_number":35,"context_line":"recommended ``q35``."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Additionally, already today installer tools like TripleO explicitly"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_774c47c7","line":34,"range":{"start_line":33,"start_character":40,"end_line":34,"end_character":42},"updated":"2020-04-22 13:55:28.000000000","message":".. which currently defaults to ``pc``..","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":30,"context_line":"making ``q35`` machine type the default.  This applies to x86-only."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Operators today can explicitly choose to use ``q35`` via the config"},{"line_number":33,"context_line":"attribute ``[libvirt]/hw_machine_type`` but stick to the legacy ``pc``"},{"line_number":34,"context_line":"machine type because it is Nova\u0027s default.  Change this to the"},{"line_number":35,"context_line":"recommended ``q35``."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Additionally, already today installer tools like TripleO explicitly"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_77572204","line":34,"range":{"start_line":33,"start_character":40,"end_line":34,"end_character":42},"in_reply_to":"1f493fa4_774c47c7","updated":"2020-04-22 16:15:21.000000000","message":"I thought I took care of it; will fix.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Operators today can explicitly choose to use ``q35`` via the config"},{"line_number":33,"context_line":"attribute ``[libvirt]/hw_machine_type`` but stick to the legacy ``pc``"},{"line_number":34,"context_line":"machine type because it is Nova\u0027s default.  Change this to the"},{"line_number":35,"context_line":"recommended ``q35``."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Additionally, already today installer tools like TripleO explicitly"},{"line_number":38,"context_line":"specify [0]_ versioned machine types, to ensure migration compatibility"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_b7cb6f1c","line":35,"range":{"start_line":34,"start_character":44,"end_line":35,"end_character":20},"updated":"2020-04-22 13:55:28.000000000","message":"I don\u0027t think this is required.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Operators today can explicitly choose to use ``q35`` via the config"},{"line_number":33,"context_line":"attribute ``[libvirt]/hw_machine_type`` but stick to the legacy ``pc``"},{"line_number":34,"context_line":"machine type because it is Nova\u0027s default.  Change this to the"},{"line_number":35,"context_line":"recommended ``q35``."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Additionally, already today installer tools like TripleO explicitly"},{"line_number":38,"context_line":"specify [0]_ versioned machine types, to ensure migration compatibility"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_575ca624","line":35,"range":{"start_line":34,"start_character":44,"end_line":35,"end_character":20},"in_reply_to":"1f493fa4_b7cb6f1c","updated":"2020-04-22 16:15:21.000000000","message":"Right; can remove.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":35,"context_line":"recommended ``q35``."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Additionally, already today installer tools like TripleO explicitly"},{"line_number":38,"context_line":"specify [0]_ versioned machine types, to ensure migration compatibility"},{"line_number":39,"context_line":"during upgrade windows.  TripleO is also preparing [1]_ to make the"},{"line_number":40,"context_line":"swtich to ``q35``."},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_17ea2374","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":12},"updated":"2020-04-22 13:55:28.000000000","message":"Missing?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":35,"context_line":"recommended ``q35``."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Additionally, already today installer tools like TripleO explicitly"},{"line_number":38,"context_line":"specify [0]_ versioned machine types, to ensure migration compatibility"},{"line_number":39,"context_line":"during upgrade windows.  TripleO is also preparing [1]_ to make the"},{"line_number":40,"context_line":"swtich to ``q35``."},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_7770c2a6","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":12},"in_reply_to":"1f493fa4_17ea2374","updated":"2020-04-22 16:15:21.000000000","message":"Yeah, sorry, it\u0027s in v4; botched the references; will add back.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Additionally, already today installer tools like TripleO explicitly"},{"line_number":38,"context_line":"specify [0]_ versioned machine types, to ensure migration compatibility"},{"line_number":39,"context_line":"during upgrade windows.  TripleO is also preparing [1]_ to make the"},{"line_number":40,"context_line":"swtich to ``q35``."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_77fa8742","line":39,"range":{"start_line":39,"start_character":51,"end_line":39,"end_character":55},"updated":"2020-04-22 13:55:28.000000000","message":"Missing?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Additionally, already today installer tools like TripleO explicitly"},{"line_number":38,"context_line":"specify [0]_ versioned machine types, to ensure migration compatibility"},{"line_number":39,"context_line":"during upgrade windows.  TripleO is also preparing [1]_ to make the"},{"line_number":40,"context_line":"swtich to ``q35``."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_97662eed","line":39,"range":{"start_line":39,"start_character":51,"end_line":39,"end_character":55},"in_reply_to":"1f493fa4_77fa8742","updated":"2020-04-22 16:15:21.000000000","message":"Oops, yes; will fix.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":46,"context_line":"The ``q35`` machine type brings several advantages:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"- Native PCIe support.  This allows the use of PCI \"Extended Config"},{"line_number":49,"context_line":"  Space\"[1]_, which *cannot* be used by legacy PCI.  Use case: Sometimes"},{"line_number":50,"context_line":"  certain PCIe devices probe for \u0027extended\u0027 features that determine the"},{"line_number":51,"context_line":"  support and / or operation of the said device.  Also, the native PCIe"},{"line_number":52,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"},{"line_number":53,"context_line":"  that is used by the legacy ``pc`` machine type."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_7df6dc91","line":50,"range":{"start_line":49,"start_character":63,"end_line":50,"end_character":9},"updated":"2020-04-22 21:05:09.000000000","message":"\"Sometimes certain\" is very vague, almost bordering on weasel word/anonymous authority territory [1]. Could we have a concrete example here?\n\n[1] https://en.wikipedia.org/wiki/Weasel_word","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ad099aee44f23c518c228bae28914c47eb74f076","unresolved":false,"context_lines":[{"line_number":46,"context_line":"The ``q35`` machine type brings several advantages:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"- Native PCIe support.  This allows the use of PCI \"Extended Config"},{"line_number":49,"context_line":"  Space\"[1]_, which *cannot* be used by legacy PCI.  Use case: Sometimes"},{"line_number":50,"context_line":"  certain PCIe devices probe for \u0027extended\u0027 features that determine the"},{"line_number":51,"context_line":"  support and / or operation of the said device.  Also, the native PCIe"},{"line_number":52,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"},{"line_number":53,"context_line":"  that is used by the legacy ``pc`` machine type."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_414b29af","line":50,"range":{"start_line":49,"start_character":63,"end_line":50,"end_character":9},"in_reply_to":"1f493fa4_1f897ec9","updated":"2020-04-23 17:29:41.000000000","message":"Short answer: \"yes, but with caveats\".  I didn\u0027t consulted Dave Gilbert from from QEMU for the long answer, he says:\n\n[quote]\nMostly, a PCIe device in an old PCI slot just looks like something that has a bunch of odd capabilities that the old guest doesn\u0027t know what to do with; unless that is it\u0027s got lots of capabilities and the old space fills up. And in that case then you need the \u0027extended capabilities\u0027 stuff to stuff all the extra ones in.\n[/quote]\n\n\nI currently have this locally, hope that\u0027s amenable enough:\n\n    [...] Use case: PCIe devices probe for \u0027extended\u0027 features \n    that determine the support and / or operation of the said \n    device.  Also, native PCIe hotplug is more effective and \n    \"cleaner\" than the ACPI-based hotplug that is used by the \n    legacy ``pc`` machine type.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":46,"context_line":"The ``q35`` machine type brings several advantages:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"- Native PCIe support.  This allows the use of PCI \"Extended Config"},{"line_number":49,"context_line":"  Space\"[1]_, which *cannot* be used by legacy PCI.  Use case: Sometimes"},{"line_number":50,"context_line":"  certain PCIe devices probe for \u0027extended\u0027 features that determine the"},{"line_number":51,"context_line":"  support and / or operation of the said device.  Also, the native PCIe"},{"line_number":52,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"},{"line_number":53,"context_line":"  that is used by the legacy ``pc`` machine type."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_e2ac0037","line":50,"range":{"start_line":49,"start_character":63,"end_line":50,"end_character":9},"in_reply_to":"1f493fa4_7df6dc91","updated":"2020-04-23 11:06:37.000000000","message":"I\u0027m conscious of the \"weasel word\" territory, and strongly despise it; and chide others for doing so.  But you misread it here.\n\n\"Sometimes\" here means \"In some cases\" -- I rephrased what I learnt from a another SME (thanks, Don Dutile from Red Hat) who knows the innards of this chipset, to quote verbatim:\n\n    PCIe support allows the use of PCI extended config space -- above\n    0xff per device.\n     -- there are \u0027extended\u0027 features a PCIe device probes, for \n        private/vendor-based structs that determine the support \u0026/or\n        operation of a device.  \n     -- a \u0027PCI\u0027 device, passed through to a guest, would handicap such\n        features.\n\nI was trying to simplify all that without going overboard.  As I\u0027m not a PCIe expert.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"239bc7e1cabce50a3e8d19693724412e4794c526","unresolved":false,"context_lines":[{"line_number":46,"context_line":"The ``q35`` machine type brings several advantages:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"- Native PCIe support.  This allows the use of PCI \"Extended Config"},{"line_number":49,"context_line":"  Space\"[1]_, which *cannot* be used by legacy PCI.  Use case: Sometimes"},{"line_number":50,"context_line":"  certain PCIe devices probe for \u0027extended\u0027 features that determine the"},{"line_number":51,"context_line":"  support and / or operation of the said device.  Also, the native PCIe"},{"line_number":52,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"},{"line_number":53,"context_line":"  that is used by the legacy ``pc`` machine type."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_1f897ec9","line":50,"range":{"start_line":49,"start_character":63,"end_line":50,"end_character":9},"in_reply_to":"1f493fa4_e2ac0037","updated":"2020-04-23 13:29:37.000000000","message":"Ah, yeah, with context your wording makes sense. I wonder if it would work just as well without \"sometimes certain\" - just:\n\nDevices with extended features need to probe the PCI extended config space, above the regular PCI config space. Passing a device to a guest as PCI disables the extended config space, and the extended features that require it.\n\n(Is that last sentence correct? Can you pass a host PCIe device into the guest as regular old PCI?)","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":48,"context_line":"- Native PCIe support.  This allows the use of PCI \"Extended Config"},{"line_number":49,"context_line":"  Space\"[1]_, which *cannot* be used by legacy PCI.  Use case: Sometimes"},{"line_number":50,"context_line":"  certain PCIe devices probe for \u0027extended\u0027 features that determine the"},{"line_number":51,"context_line":"  support and / or operation of the said device.  Also, the native PCIe"},{"line_number":52,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"},{"line_number":53,"context_line":"  that is used by the legacy ``pc`` machine type."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_3dec54c6","line":51,"range":{"start_line":51,"start_character":56,"end_line":51,"end_character":59},"updated":"2020-04-22 21:05:09.000000000","message":"nit: drop this word","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32ac390e6cb4097db45b63cd45c02549b60f1fc1","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  hotplug is more effective and \"cleaner\" than the ACPI-based hotplug"},{"line_number":53,"context_line":"  that is used by the legacy ``pc`` machine type."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"- vIOMMU emulation.  This has a few use cases [2]_, namely: (a)"},{"line_number":56,"context_line":"  protecting the guest memory from untrusted devices that are directly"},{"line_number":57,"context_line":"  assigned to the guest; (b) protecting guests from untrusted user space"},{"line_number":58,"context_line":"  drivers (e.g. DPDK); (c) assigning devices to nested virtual guests."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- Faster SATA emulation—in comparison to the IDE emulation that the"},{"line_number":61,"context_line":"  legacy ``pc`` machine type uses.  Note that this is useful only when a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_b9be62b1","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":70},"updated":"2020-04-27 14:45:03.000000000","message":"this wont be enable by defualt as a result fo this change as we dont currently support this so its not really and advantage. its an advantage fo q35 yes but not of makeing q35 the default","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32ac390e6cb4097db45b63cd45c02549b60f1fc1","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  assigned to the guest; (b) protecting guests from untrusted user space"},{"line_number":58,"context_line":"  drivers (e.g. DPDK); (c) assigning devices to nested virtual guests."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- Faster SATA emulation—in comparison to the IDE emulation that the"},{"line_number":61,"context_line":"  legacy ``pc`` machine type uses.  Note that this is useful only when a"},{"line_number":62,"context_line":"  guest OS doesn\u0027t support \u0027virtio\u0027 devices (which is what any modern"},{"line_number":63,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_b931425d","line":61,"range":{"start_line":60,"start_character":2,"end_line":61,"end_character":34},"updated":"2020-04-27 14:45:03.000000000","message":"we default to virtio-block for pc so this is also irrelevent\nto the chagne you are propsosing so i would drop this.\n\nwe can use sata or scsi with pc too using hw_disk_bus and hw_cdrom_bus image metadata","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":60,"context_line":"- Faster SATA emulation—in comparison to the IDE emulation that the"},{"line_number":61,"context_line":"  legacy ``pc`` machine type uses.  Note that this is useful only when a"},{"line_number":62,"context_line":"  guest OS doesn\u0027t support \u0027virtio\u0027 devices (which is what any modern"},{"line_number":63,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":66,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_1d14f89f","line":63,"range":{"start_line":63,"start_character":29,"end_line":63,"end_character":57},"updated":"2020-04-22 21:05:09.000000000","message":"So... this paragraph doesn\u0027t apply to us? I\u0027d remove it then. Not saying faster SATA emulation is bad, but if Nova doens\u0027t care about it...","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ad099aee44f23c518c228bae28914c47eb74f076","unresolved":false,"context_lines":[{"line_number":60,"context_line":"- Faster SATA emulation—in comparison to the IDE emulation that the"},{"line_number":61,"context_line":"  legacy ``pc`` machine type uses.  Note that this is useful only when a"},{"line_number":62,"context_line":"  guest OS doesn\u0027t support \u0027virtio\u0027 devices (which is what any modern"},{"line_number":63,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":66,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_61774504","line":63,"range":{"start_line":63,"start_character":29,"end_line":63,"end_character":57},"in_reply_to":"1f493fa4_1d14f89f","updated":"2020-04-23 17:29:41.000000000","message":"It is possible that some guest OSes (RHEL-6 era) that do not support virtio-1.0 so, they may have to use SATA.\n\nI was just adding a \"reassuring note\" that Nova is indeed doing the right thing when possible.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":66,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":67,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":68,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":69,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"},{"line_number":70,"context_line":"  skipping the UEFI runtime variable service altogether.  In order to"},{"line_number":71,"context_line":"  prevent this, QEMU and KVM emulate SMM (System Management Mode), and"},{"line_number":72,"context_line":"  restrict \u0027pflash\u0027 hardware access to code that runs in SMM.  And SSM"},{"line_number":73,"context_line":"  emulation is in QEMU/KVM is only provided by ``q35``; \u0027i440fx\u0027 does not"},{"line_number":74,"context_line":"  have the necessary (virtual) hardware.  (Thanks to Laszlo Ersek, OVMF"},{"line_number":75,"context_line":"  maintainer, for this explanation.)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_fd666c51","line":75,"range":{"start_line":67,"start_character":38,"end_line":75,"end_character":36},"updated":"2020-04-22 21:05:09.000000000","message":"More information presented backwards (I told you - parenthesis are bad - oh the irony)\n\nHow about:\n\nSecure Boot needs an emulated pflash chip to sore Secure boot related persistent UEFI variables. A malicious guest kernel could tamper with this emulated pflash chip. To prevent this, QEMU and KVM emulate System Management Mode (SMM) and restrict pflash access to code that runs in SMM. SMM is only available with the q35 machine type - the pc machine type does not have the necessary virtual hardware.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":66,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":67,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":68,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":69,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"},{"line_number":70,"context_line":"  skipping the UEFI runtime variable service altogether.  In order to"},{"line_number":71,"context_line":"  prevent this, QEMU and KVM emulate SMM (System Management Mode), and"},{"line_number":72,"context_line":"  restrict \u0027pflash\u0027 hardware access to code that runs in SMM.  And SSM"},{"line_number":73,"context_line":"  emulation is in QEMU/KVM is only provided by ``q35``; \u0027i440fx\u0027 does not"},{"line_number":74,"context_line":"  have the necessary (virtual) hardware.  (Thanks to Laszlo Ersek, OVMF"},{"line_number":75,"context_line":"  maintainer, for this explanation.)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_4208542b","line":75,"range":{"start_line":67,"start_character":38,"end_line":75,"end_character":36},"in_reply_to":"1f493fa4_fd666c51","updated":"2020-04-23 11:06:37.000000000","message":"Parenthesis are just fine.  Among many other uses, you can use parenthesis to imply reading it is *optional*, but informative to those who care about it.  If you know what a \u0027pflash\u0027 is, you can skip the parenthesis. \n\nI am happy to incorporate some of your rephrasing.  But you also removed some low-level info: \"skipping the UEFI runtime variable service altogether\". An admin who knows their UEFI can find it useful.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":78,"context_line":"Proposed change"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The legacy ``pc`` machine type is most likely to not get any fixes,"},{"line_number":82,"context_line":"besides critical security patches.  Regardless of upstream QEMU\u0027s"},{"line_number":83,"context_line":"plans, Nova should be prepared to not break when that happens."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_f74a177e","line":82,"range":{"start_line":81,"start_character":31,"end_line":82,"end_character":33},"updated":"2020-04-22 13:55:28.000000000","message":".. will be deprecated and will only receive critical security patches ..\n\nAlso a reference would be useful.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":78,"context_line":"Proposed change"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The legacy ``pc`` machine type is most likely to not get any fixes,"},{"line_number":82,"context_line":"besides critical security patches.  Regardless of upstream QEMU\u0027s"},{"line_number":83,"context_line":"plans, Nova should be prepared to not break when that happens."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_b797ea90","line":82,"range":{"start_line":81,"start_character":31,"end_line":82,"end_character":33},"in_reply_to":"1f493fa4_f74a177e","updated":"2020-04-22 16:15:21.000000000","message":"There\u0027s no cut-and-dried statement as such, but it is implied in some upstream threads.  I\u0027ll go find.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The legacy ``pc`` machine type is most likely to not get any fixes,"},{"line_number":82,"context_line":"besides critical security patches.  Regardless of upstream QEMU\u0027s"},{"line_number":83,"context_line":"plans, Nova should be prepared to not break when that happens."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"},{"line_number":86,"context_line":"  fallout."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_37691f25","line":83,"range":{"start_line":83,"start_character":7,"end_line":83,"end_character":62},"updated":"2020-04-22 13:55:28.000000000","message":"Deprecation isn\u0027t going to break us however right?\n\nThere are no plans to remove the pc machine type causing domains to suddenly fail to restart after an update?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The legacy ``pc`` machine type is most likely to not get any fixes,"},{"line_number":82,"context_line":"besides critical security patches.  Regardless of upstream QEMU\u0027s"},{"line_number":83,"context_line":"plans, Nova should be prepared to not break when that happens."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"},{"line_number":86,"context_line":"  fallout."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_77a56204","line":83,"range":{"start_line":83,"start_character":7,"end_line":83,"end_character":62},"in_reply_to":"1f493fa4_37691f25","updated":"2020-04-22 16:15:21.000000000","message":"No, not upstream for sure. Not least because, QEMU has to retain them for migration purposes.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":82,"context_line":"besides critical security patches.  Regardless of upstream QEMU\u0027s"},{"line_number":83,"context_line":"plans, Nova should be prepared to not break when that happens."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"},{"line_number":86,"context_line":"  fallout."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- Make sure to declare a certain no. of PCIe \"root port controllers\""},{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_d29a89c3","line":86,"range":{"start_line":85,"start_character":64,"end_line":86,"end_character":10},"updated":"2020-04-22 13:55:28.000000000","message":"I think that\u0027s pretty implied here.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":82,"context_line":"besides critical security patches.  Regardless of upstream QEMU\u0027s"},{"line_number":83,"context_line":"plans, Nova should be prepared to not break when that happens."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"},{"line_number":86,"context_line":"  fallout."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- Make sure to declare a certain no. of PCIe \"root port controllers\""},{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_dd4f30bb","line":86,"range":{"start_line":85,"start_character":64,"end_line":86,"end_character":10},"in_reply_to":"1f493fa4_d29a89c3","updated":"2020-04-22 21:05:09.000000000","message":"I like how you\u0027ve put the largest amount of work in the smallest most insignificant sentence in the spec :D","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32ac390e6cb4097db45b63cd45c02549b60f1fc1","unresolved":false,"context_lines":[{"line_number":82,"context_line":"besides critical security patches.  Regardless of upstream QEMU\u0027s"},{"line_number":83,"context_line":"plans, Nova should be prepared to not break when that happens."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"},{"line_number":86,"context_line":"  fallout."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- Make sure to declare a certain no. of PCIe \"root port controllers\""},{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_198156c4","line":86,"range":{"start_line":85,"start_character":64,"end_line":86,"end_character":10},"in_reply_to":"1f493fa4_dd4f30bb","updated":"2020-04-27 14:45:03.000000000","message":"there should not be any fallout for new instances since q35 is fully supported today unless we are talking about docs updates.\n\nthem main fallout that this will create right now is it will break people on upgrade so we need to track the curent machinve type of every instance and make sure existing instnace dont change as a result of this.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"},{"line_number":86,"context_line":"  fallout."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- Make sure to declare a certain no. of PCIe \"root port controllers\""},{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"},{"line_number":90,"context_line":"  machine type."},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_7dd7fcc0","line":88,"range":{"start_line":88,"start_character":33,"end_line":88,"end_character":35},"updated":"2020-04-22 21:05:09.000000000","message":"nit: spell out number please :)","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"},{"line_number":86,"context_line":"  fallout."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- Make sure to declare a certain no. of PCIe \"root port controllers\""},{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"},{"line_number":90,"context_line":"  machine type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- Consider using the Nova metadata property: ``hw_machine_type`` to set"},{"line_number":93,"context_line":"  the machine type on the guest."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_92b8012b","line":90,"range":{"start_line":88,"start_character":0,"end_line":90,"end_character":15},"updated":"2020-04-22 13:55:28.000000000","message":"I think we need to discuss this more here, how are we going to do that? By also bumping the default when we switch to q35?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32ac390e6cb4097db45b63cd45c02549b60f1fc1","unresolved":false,"context_lines":[{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"},{"line_number":86,"context_line":"  fallout."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- Make sure to declare a certain no. of PCIe \"root port controllers\""},{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"},{"line_number":90,"context_line":"  machine type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- Consider using the Nova metadata property: ``hw_machine_type`` to set"},{"line_number":93,"context_line":"  the machine type on the guest."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_b968221d","line":90,"range":{"start_line":88,"start_character":0,"end_line":90,"end_character":15},"in_reply_to":"1f493fa4_57d14654","updated":"2020-04-27 14:45:03.000000000","message":"ya as i read this im more in favor of not make this change in nova and only changing the defualt in installers","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":85,"context_line":"- Make ``q35`` the default machine type for the libvirt driver.  Fix the"},{"line_number":86,"context_line":"  fallout."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"- Make sure to declare a certain no. of PCIe \"root port controllers\""},{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"},{"line_number":90,"context_line":"  machine type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- Consider using the Nova metadata property: ``hw_machine_type`` to set"},{"line_number":93,"context_line":"  the machine type on the guest."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_57d14654","line":90,"range":{"start_line":88,"start_character":0,"end_line":90,"end_character":15},"in_reply_to":"1f493fa4_92b8012b","updated":"2020-04-22 16:15:21.000000000","message":"Yeah, that\u0027s one possibility.\n\nThe other option that is \"always at hand is\":\n\n- Make the \u0027nova-next\u0027 CI job with \u0027q35\u0027 passing with all tests\n- Make TripleO (or whatever installer tool) configure the machine type to \u0027q35\u0027","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"},{"line_number":90,"context_line":"  machine type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- Consider using the Nova metadata property: ``hw_machine_type`` to set"},{"line_number":93,"context_line":"  the machine type on the guest."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_771e07bb","line":92,"range":{"start_line":92,"start_character":21,"end_line":92,"end_character":25},"updated":"2020-04-22 13:55:28.000000000","message":"image","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"},{"line_number":90,"context_line":"  machine type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- Consider using the Nova metadata property: ``hw_machine_type`` to set"},{"line_number":93,"context_line":"  the machine type on the guest."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_972113ff","line":93,"range":{"start_line":92,"start_character":0,"end_line":93,"end_character":32},"updated":"2020-04-22 13:55:28.000000000","message":"I\u0027m not sure how this is a proposed change, can you explain?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"},{"line_number":90,"context_line":"  machine type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- Consider using the Nova metadata property: ``hw_machine_type`` to set"},{"line_number":93,"context_line":"  the machine type on the guest."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_97d90e85","line":93,"range":{"start_line":92,"start_character":0,"end_line":93,"end_character":32},"in_reply_to":"1f493fa4_972113ff","updated":"2020-04-22 16:15:21.000000000","message":"That should\u0027ve gone.  It\u0027s a left-over sentence from \"writing out loud\".","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"},{"line_number":90,"context_line":"  machine type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- Consider using the Nova metadata property: ``hw_machine_type`` to set"},{"line_number":93,"context_line":"  the machine type on the guest."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_ddfd703b","line":93,"range":{"start_line":92,"start_character":0,"end_line":93,"end_character":32},"in_reply_to":"1f493fa4_97d90e85","updated":"2020-04-22 21:05:09.000000000","message":"Agreed, allowing the user to set the machine type is out of scope here, and might need to be a separate scope, depending on how complex that ends up being.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32ac390e6cb4097db45b63cd45c02549b60f1fc1","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [3]_ when using ``q35``"},{"line_number":90,"context_line":"  machine type."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- Consider using the Nova metadata property: ``hw_machine_type`` to set"},{"line_number":93,"context_line":"  the machine type on the guest."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_d996cef0","line":93,"range":{"start_line":92,"start_character":0,"end_line":93,"end_character":32},"in_reply_to":"1f493fa4_ddfd703b","updated":"2020-04-27 14:45:03.000000000","message":"artom the user already can via hw_machine_type in the image\n\nwe dont support it in the server metadata today but it can be done via image.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":96,"context_line":"Alternatives"},{"line_number":97,"context_line":"------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":100,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":101,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Data model impact"},{"line_number":104,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_32664def","line":101,"range":{"start_line":99,"start_character":0,"end_line":101,"end_character":69},"updated":"2020-04-22 13:55:28.000000000","message":"Would another alternative just be to use the libvirt/QEMU default?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":96,"context_line":"Alternatives"},{"line_number":97,"context_line":"------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":100,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":101,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Data model impact"},{"line_number":104,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_77dd6241","line":101,"range":{"start_line":99,"start_character":0,"end_line":101,"end_character":69},"in_reply_to":"1f493fa4_32664def","updated":"2020-04-22 16:15:21.000000000","message":"Which is currently ``pc`` for libvirt for backward compat reasons[1][2].  But IMHO that should not paralyze management tools; libvirt\u0027s goal is to provide \"nuts and bolts\" of the virt bits, so it explicitly doesn\u0027t want to make \"policy decisions\"—which is what management layers are for.\n\n(Although, \"libvirt doesn\u0027t make policy decisions\" is not a complete black and white statement either; it does make some decisions in the PCIe topology and other areas.  The truth is complex.)\n\n\n[1] https://libvirt.org/git/?p\u003dlibvirt.git;a\u003dcommit;h\u003d26cfb1a3cd\n[2] https://lists.gnu.org/archive/html/qemu-devel/2018-06/msg00820.html","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Other end user impact"},{"line_number":124,"context_line":"---------------------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"None"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Performance Impact"},{"line_number":129,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_32e3ed07","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":4},"updated":"2020-04-22 13:55:28.000000000","message":"This is going to change the emulated hardware available within the instance right? We might want to spell that out here.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Other end user impact"},{"line_number":124,"context_line":"---------------------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"None"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Performance Impact"},{"line_number":129,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_d7743638","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":4},"in_reply_to":"1f493fa4_32e3ed07","updated":"2020-04-22 16:15:21.000000000","message":"Yeah, I wrote the bits in the Upgrade impact here first, and then moved there again.  Top off my head:\n\n- SATA (instead of IDE)\n- PCIe transport (and a different topology as noted below) instead of \"conventional PCI\"\n- And other features \u0027q35\u0027 makes it possible (but not enabled by default)","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":133,"context_line":"Other deployer impact"},{"line_number":134,"context_line":"---------------------"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Any Linux distribution that was released earlier than 2007 should use"},{"line_number":137,"context_line":"\u0027i440fx\u0027 (or ``pc``) machine type, and those released in 2007 (the year"},{"line_number":138,"context_line":"when Intel introduced the Q35 chipset) or newer should use ``q35``."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_320f6d2f","line":136,"range":{"start_line":136,"start_character":4,"end_line":136,"end_character":22},"updated":"2020-04-22 13:55:28.000000000","message":"GuestOS?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":133,"context_line":"Other deployer impact"},{"line_number":134,"context_line":"---------------------"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Any Linux distribution that was released earlier than 2007 should use"},{"line_number":137,"context_line":"\u0027i440fx\u0027 (or ``pc``) machine type, and those released in 2007 (the year"},{"line_number":138,"context_line":"when Intel introduced the Q35 chipset) or newer should use ``q35``."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_3762ba3f","line":136,"range":{"start_line":136,"start_character":4,"end_line":136,"end_character":22},"in_reply_to":"1f493fa4_320f6d2f","updated":"2020-04-22 16:15:21.000000000","message":"It doesn\u0027t matter the guest OS, but the main reason that I learnt on the QEMU list for that \"2007 rule\" is: PCIe support (and also SATA, IIRC) was introduced only in 2008.  (So is Intel Q35 chipset.)","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Upgrade impact"},{"line_number":147,"context_line":"--------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"When migrating guests from a host with ``pc`` to a Compute host with"},{"line_number":150,"context_line":"``q35`` machine type: a few changes to bear in mind: IDE to SATA; a"},{"line_number":151,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":152,"context_line":"device role tagging to identify PCI devices."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_9707531d","line":149,"range":{"start_line":149,"start_character":5,"end_line":149,"end_character":14},"updated":"2020-04-22 13:55:28.000000000","message":"cold migration?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Upgrade impact"},{"line_number":147,"context_line":"--------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"When migrating guests from a host with ``pc`` to a Compute host with"},{"line_number":150,"context_line":"``q35`` machine type: a few changes to bear in mind: IDE to SATA; a"},{"line_number":151,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":152,"context_line":"device role tagging to identify PCI devices."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_b776cad7","line":149,"range":{"start_line":149,"start_character":5,"end_line":149,"end_character":14},"in_reply_to":"1f493fa4_9707531d","updated":"2020-04-22 16:15:21.000000000","message":"Yes, I\u0027ll spell it out.  For live migration, libvirt won\u0027t gratuitously change the machine type of the guest once live-migrated—only once you cold-reboot the guest (stop + start), will the new machine type (\u0027q35\u0027) will take effect.\n\nSame thing when you upgrade QEMU: libvirt won\u0027t change the machine type, you need to explicitly change it and cold-reboot.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Upgrade impact"},{"line_number":147,"context_line":"--------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"When migrating guests from a host with ``pc`` to a Compute host with"},{"line_number":150,"context_line":"``q35`` machine type: a few changes to bear in mind: IDE to SATA; a"},{"line_number":151,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":152,"context_line":"device role tagging to identify PCI devices."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Implementation"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_d2fe0904","line":152,"range":{"start_line":149,"start_character":0,"end_line":152,"end_character":44},"updated":"2020-04-22 13:55:28.000000000","message":"It might be useful to expand on this above in terms of LM from U to V, V to V and pc to q35 (that I assume it\u0027s possible?).","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"48e5b0cf1fb8c56cbe7d257d0add66585fe5f912","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Upgrade impact"},{"line_number":147,"context_line":"--------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"When migrating guests from a host with ``pc`` to a Compute host with"},{"line_number":150,"context_line":"``q35`` machine type: a few changes to bear in mind: IDE to SATA; a"},{"line_number":151,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":152,"context_line":"device role tagging to identify PCI devices."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Implementation"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_5db84075","line":152,"range":{"start_line":149,"start_character":0,"end_line":152,"end_character":44},"in_reply_to":"1f493fa4_1ad88351","updated":"2020-04-22 21:05:09.000000000","message":"Hrmpf, I suppose storing the machine type on a per-instance basis isn\u0027t a possibility? I\u0027m weary of breaking guests by changing their hardware underneath them. Linux might be fine, but Windows might complain.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"239bc7e1cabce50a3e8d19693724412e4794c526","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Upgrade impact"},{"line_number":147,"context_line":"--------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"When migrating guests from a host with ``pc`` to a Compute host with"},{"line_number":150,"context_line":"``q35`` machine type: a few changes to bear in mind: IDE to SATA; a"},{"line_number":151,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":152,"context_line":"device role tagging to identify PCI devices."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Implementation"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_9f310e0f","line":152,"range":{"start_line":149,"start_character":0,"end_line":152,"end_character":44},"in_reply_to":"1f493fa4_4de7e541","updated":"2020-04-23 13:29:37.000000000","message":"Agreed about conscious admin action - but in this case it would be Nova changing the default under them, and the user can cold migrate the VM to a compute with the new default. Maybe this is fine, as this is the cloud, and we\u0027re not making any promises about virtual hardware stability/consistency, but I think this needs to be called out/discussed.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Upgrade impact"},{"line_number":147,"context_line":"--------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"When migrating guests from a host with ``pc`` to a Compute host with"},{"line_number":150,"context_line":"``q35`` machine type: a few changes to bear in mind: IDE to SATA; a"},{"line_number":151,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":152,"context_line":"device role tagging to identify PCI devices."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Implementation"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_4de7e541","line":152,"range":{"start_line":149,"start_character":0,"end_line":152,"end_character":44},"in_reply_to":"1f493fa4_5db84075","updated":"2020-04-23 11:06:37.000000000","message":"We are not breaking anything by changing anything gratuitously.  Documentation is important here.\n\nGood question on Windows; I\u0027ve already thought about it: if you change machine type then Win 10 (at least) guest will ask you to reactivate the license.  That\u0027s not a \"problem\" per-se, but we need to document it.\n\nSource: Microsoft\u0027s documentation[*]:\n\n[quote]\nWhen installing Windows 10, the digital license associates itself with your device\u0027s hardware. If you make significant hardware changes on your device, such as replacing your motherboard, Windows will no longer find a license that matches your device, and you’ll need to reactivate Windows to get it up and running.\n[/quote]\n\nJust like how you don\u0027t willy-nilly pull out your physical motherboard and replace with a new one, you have to think before you change your \"virtual motherboard\".\n\nIt is a conscious admin action.  Again, \"documentation\".\n\n[*] https://support.microsoft.com/en-us/help/20530/windows-10-reactivating-after-hardware-change","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32ac390e6cb4097db45b63cd45c02549b60f1fc1","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Upgrade impact"},{"line_number":147,"context_line":"--------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"When migrating guests from a host with ``pc`` to a Compute host with"},{"line_number":150,"context_line":"``q35`` machine type: a few changes to bear in mind: IDE to SATA; a"},{"line_number":151,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":152,"context_line":"device role tagging to identify PCI devices."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Implementation"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_992c46ad","line":152,"range":{"start_line":149,"start_character":0,"end_line":152,"end_character":44},"in_reply_to":"1f493fa4_9f310e0f","updated":"2020-04-27 14:45:03.000000000","message":"honestly i kind of consider the fact we change the machine type during the lifetime of an instance to be a bug so unless we recored the machine type in the instnace extra table for every instance i think im a hard -1 on this.\n\ni dont think docs are enought to safe guard this at least if we do this in nova.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"b156964faea5c4cddd036e7887c68eab1e487446","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Upgrade impact"},{"line_number":147,"context_line":"--------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"When migrating guests from a host with ``pc`` to a Compute host with"},{"line_number":150,"context_line":"``q35`` machine type: a few changes to bear in mind: IDE to SATA; a"},{"line_number":151,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":152,"context_line":"device role tagging to identify PCI devices."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Implementation"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_1ad88351","line":152,"range":{"start_line":149,"start_character":0,"end_line":152,"end_character":44},"in_reply_to":"1f493fa4_d2fe0904","updated":"2020-04-22 16:15:21.000000000","message":"Your guess is right; \"pc\" --\u003e \"q35\" doesn\u0027t happen in one go :-)  As noted in the previous point, it takes two steps:\n\n- Live migrate the guest with \u0027pc\u0027 from src to dest; \u0027pc\u0027 remians the machine type of the guest on the dest, after successful LM.\n- Cold-reboot the guest, then \u0027q35\u0027 (because the target Compute node enforces it) will take effect.\n\nHope that makes sense.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":161,"context_line":"  kashyapc"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"Other contriburtors:"},{"line_number":164,"context_line":"  lyarwood"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Work Items"},{"line_number":167,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_7756072c","line":164,"range":{"start_line":164,"start_character":2,"end_line":164,"end_character":10},"updated":"2020-04-22 13:55:28.000000000","message":"Thanks :)","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":169,"context_line":"Some of the Work Items are mentioned in the Proposed Change"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* Make sure to fix scenarios where IDE is assumed.  Because ``q35``"},{"line_number":172,"context_line":"  doesn\u0027t support IDE, but SATA (or ``virtio``) bus only."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Audit the Nova code and fix assumptions about machine types."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_32380dd2","line":172,"range":{"start_line":172,"start_character":23,"end_line":172,"end_character":57},"updated":"2020-04-22 13:55:28.000000000","message":"well, virtio-blk, virtio-scsi, SATA, USB etc.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32ac390e6cb4097db45b63cd45c02549b60f1fc1","unresolved":false,"context_lines":[{"line_number":169,"context_line":"Some of the Work Items are mentioned in the Proposed Change"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* Make sure to fix scenarios where IDE is assumed.  Because ``q35``"},{"line_number":172,"context_line":"  doesn\u0027t support IDE, but SATA (or ``virtio``) bus only."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Audit the Nova code and fix assumptions about machine types."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_9d171146","line":172,"range":{"start_line":172,"start_character":23,"end_line":172,"end_character":57},"in_reply_to":"1f493fa4_0dc67d9b","updated":"2020-04-27 14:45:03.000000000","message":"the only place ide was used was config driver which has already been change to sata.\n\nwe default to virtio-block in nova regardless of the machine type for the root disk.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":169,"context_line":"Some of the Work Items are mentioned in the Proposed Change"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* Make sure to fix scenarios where IDE is assumed.  Because ``q35``"},{"line_number":172,"context_line":"  doesn\u0027t support IDE, but SATA (or ``virtio``) bus only."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Audit the Nova code and fix assumptions about machine types."},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_0dc67d9b","line":172,"range":{"start_line":172,"start_character":23,"end_line":172,"end_character":57},"in_reply_to":"1f493fa4_32380dd2","updated":"2020-04-23 11:06:37.000000000","message":"I used the generic \"virtio\" for the virtio devices); and SATA is already mentioned.  USB, yes, missed.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Audit the Nova code and fix assumptions about machine types."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"* Consider whether to use \u0027libosinfo\u0027 to get recommendations for machine"},{"line_number":177,"context_line":"  types."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Potentially allow setting machine type via flavor \"extra specs\".  The"},{"line_number":180,"context_line":"  admin may want to enforce a machine type for live migration reasons."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_b251bd11","line":177,"range":{"start_line":176,"start_character":0,"end_line":177,"end_character":8},"updated":"2020-04-22 13:55:28.000000000","message":"I think Sean will NACK this tbh, I\u0027d drop it.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32ac390e6cb4097db45b63cd45c02549b60f1fc1","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Audit the Nova code and fix assumptions about machine types."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"* Consider whether to use \u0027libosinfo\u0027 to get recommendations for machine"},{"line_number":177,"context_line":"  types."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Potentially allow setting machine type via flavor \"extra specs\".  The"},{"line_number":180,"context_line":"  admin may want to enforce a machine type for live migration reasons."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_5ddbc97a","line":177,"range":{"start_line":176,"start_character":0,"end_line":177,"end_character":8},"in_reply_to":"1f493fa4_2dbb790e","updated":"2020-04-27 14:45:03.000000000","message":"1 our current support for libosinfo does not take into account architecure, or machine type.\n2 os info has change the values it returns between version which has broken us upstream and downstream.\n3 since libosinfo can change values outside the contol of openstack if you upgrade the version and hard reboot an instance it may result in either the instance going into an error state if we cant hanel the value or it can break the guest as device busses or models can change.\n4 to use it you have to us the image metadta incorrectly\nthe libosinfo suppport only works if  instead of representing centos8 a os_name\u003dcentos os_version\u003d8 you instead represent its as os_name\u003dcentos8 which breaks interoperablity as the name filed in the image metadta is not ment to have teh version.\n\nso -4?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"* Audit the Nova code and fix assumptions about machine types."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"* Consider whether to use \u0027libosinfo\u0027 to get recommendations for machine"},{"line_number":177,"context_line":"  types."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Potentially allow setting machine type via flavor \"extra specs\".  The"},{"line_number":180,"context_line":"  admin may want to enforce a machine type for live migration reasons."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_2dbb790e","line":177,"range":{"start_line":176,"start_character":0,"end_line":177,"end_character":8},"in_reply_to":"1f493fa4_b251bd11","updated":"2020-04-23 11:06:37.000000000","message":"Needs good reasons.  libosinfo did a lot of work on this; so needs a fresher review whether we use it or not.\n\nI\u0027m happy to drop it, don\u0027t mistake me.  As it reduces work for me :-)","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":176,"context_line":"* Consider whether to use \u0027libosinfo\u0027 to get recommendations for machine"},{"line_number":177,"context_line":"  types."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Potentially allow setting machine type via flavor \"extra specs\".  The"},{"line_number":180,"context_line":"  admin may want to enforce a machine type for live migration reasons."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Feature Liaison"},{"line_number":183,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_924ac152","line":180,"range":{"start_line":179,"start_character":0,"end_line":180,"end_character":70},"updated":"2020-04-22 13:55:28.000000000","message":"That isn\u0027t discussed above, I\u0027d drop it if you don\u0027t plan on adding it.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":176,"context_line":"* Consider whether to use \u0027libosinfo\u0027 to get recommendations for machine"},{"line_number":177,"context_line":"  types."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Potentially allow setting machine type via flavor \"extra specs\".  The"},{"line_number":180,"context_line":"  admin may want to enforce a machine type for live migration reasons."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Feature Liaison"},{"line_number":183,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_cd41350e","line":180,"range":{"start_line":179,"start_character":0,"end_line":180,"end_character":70},"in_reply_to":"1f493fa4_924ac152","updated":"2020-04-23 11:06:37.000000000","message":"Right, it\u0027s something for future to bear in mind.  I want to capture it _somewhere_ that we thought about it.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32ac390e6cb4097db45b63cd45c02549b60f1fc1","unresolved":false,"context_lines":[{"line_number":176,"context_line":"* Consider whether to use \u0027libosinfo\u0027 to get recommendations for machine"},{"line_number":177,"context_line":"  types."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Potentially allow setting machine type via flavor \"extra specs\".  The"},{"line_number":180,"context_line":"  admin may want to enforce a machine type for live migration reasons."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Feature Liaison"},{"line_number":183,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_3db4fdf1","line":180,"range":{"start_line":179,"start_character":0,"end_line":180,"end_character":70},"in_reply_to":"1f493fa4_cd41350e","updated":"2020-04-27 14:45:03.000000000","message":"we can already set it via the image.\n\nin general the policy was that things that can require supprot by the operation system such as device models or machine types should be set by the image metadata not the flavor.\n\n\nthe flavor is largely used to control aspects that dont require guest os support like cpu pinning, backign the vm with hugepages, numa toplogy, cpu toplogy excetra, SEV.\n\nwe have made some excpetion to that in the form of PMEM and vPMU but in both case we are contoling the avaiablity of a resouce or hardware device.\n\nwe could do this via the falvor but its going against precednce if we do although im not entirely against it.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":183,"context_line":"---------------"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Feature liaison:"},{"line_number":186,"context_line":"  lyarwood"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Dependencies"},{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_d275699a","line":186,"range":{"start_line":186,"start_character":2,"end_line":186,"end_character":10},"updated":"2020-04-22 13:55:28.000000000","message":"ACK","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":194,"context_line":"Testing"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"- Have a test in the CI to test with: ``virt_type\u003dkvm``,"},{"line_number":198,"context_line":"  ``hw_machine_type\u003dq35`` and ``num_pcie_ports: 24``.  There is already"},{"line_number":199,"context_line":"  a job in progress [4]_."},{"line_number":200,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_f29d055a","line":197,"range":{"start_line":197,"start_character":2,"end_line":197,"end_character":32},"updated":"2020-04-22 13:55:28.000000000","message":"That\u0027s just an initial goal, once this is the default *all* x86 libvirt based gate jobs will be using it.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":194,"context_line":"Testing"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"- Have a test in the CI to test with: ``virt_type\u003dkvm``,"},{"line_number":198,"context_line":"  ``hw_machine_type\u003dq35`` and ``num_pcie_ports: 24``.  There is already"},{"line_number":199,"context_line":"  a job in progress [4]_."},{"line_number":200,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_8d60cda7","line":197,"range":{"start_line":197,"start_character":2,"end_line":197,"end_character":32},"in_reply_to":"1f493fa4_f29d055a","updated":"2020-04-23 11:06:37.000000000","message":"Right; I\u0027ll rephrase that.","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d09f42aca4db5ae88db981faa508336db286dc00","unresolved":false,"context_lines":[{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"- Have a test in the CI to test with: ``virt_type\u003dkvm``,"},{"line_number":198,"context_line":"  ``hw_machine_type\u003dq35`` and ``num_pcie_ports: 24``.  There is already"},{"line_number":199,"context_line":"  a job in progress [4]_."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_176d0304","line":198,"range":{"start_line":198,"start_character":2,"end_line":198,"end_character":25},"updated":"2020-04-22 13:55:28.000000000","message":"We shouldn\u0027t need this if it\u0027s the default right?","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e57ef82391278e9f009b1bbf0d4f86dfcb06438","unresolved":false,"context_lines":[{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"- Have a test in the CI to test with: ``virt_type\u003dkvm``,"},{"line_number":198,"context_line":"  ``hw_machine_type\u003dq35`` and ``num_pcie_ports: 24``.  There is already"},{"line_number":199,"context_line":"  a job in progress [4]_."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1f493fa4_0d4b1d2b","line":198,"range":{"start_line":198,"start_character":2,"end_line":198,"end_character":25},"in_reply_to":"1f493fa4_176d0304","updated":"2020-04-23 11:06:37.000000000","message":"Yep","commit_id":"c68d25c14c0d47f35fdaa03efbbf7eae8245ba25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e6b6f3a1c60aae039ac70d43d23494d2c4b69787","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of the modern features (refer to the `Use Cases`_ section).  Although,"},{"line_number":27,"context_line":"at this time of writing, upstream QEMU has not reached an agreement to"},{"line_number":28,"context_line":"remove new versioned variants of the ``pc`` machine type, some long-term"},{"line_number":29,"context_line":"stable Linux distributions (CentOS, RHEL, possibly others) support only"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":32,"context_line":"making the ``q35`` machine type the default.  This applies to only to"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f493fa4_79b89575","line":29,"range":{"start_line":29,"start_character":67,"end_line":29,"end_character":71},"updated":"2020-04-23 20:37:22.000000000","message":"you accidentally a word","commit_id":"a75ff679193e565947ef2572b70c7d75b16fdb58"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f119322052e725196b38d229ca384b112906aeb4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of the modern features (refer to the `Use Cases`_ section).  Although,"},{"line_number":27,"context_line":"at this time of writing, upstream QEMU has not reached an agreement to"},{"line_number":28,"context_line":"remove new versioned variants of the ``pc`` machine type, some long-term"},{"line_number":29,"context_line":"stable Linux distributions (CentOS, RHEL, possibly others) support only"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This spec aims to rework libvirt driver\u0027s handling of machine types, by"},{"line_number":32,"context_line":"making the ``q35`` machine type the default.  This applies to only to"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f493fa4_b3399140","line":29,"range":{"start_line":29,"start_character":67,"end_line":29,"end_character":71},"in_reply_to":"1f493fa4_79b89575","updated":"2020-04-24 09:05:14.000000000","message":"Oops; will it. ;-)","commit_id":"a75ff679193e565947ef2572b70c7d75b16fdb58"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e6b6f3a1c60aae039ac70d43d23494d2c4b69787","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"This is done in ``nova.conf`` by setting the"},{"line_number":95,"context_line":"``[libvirt]hw_machine_type``. There needs to be one machine type listed"},{"line_number":96,"context_line":"per architecture, to cover all supported. architectures on KVM."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f493fa4_796d3503","line":96,"range":{"start_line":96,"start_character":31,"end_line":96,"end_character":40},"updated":"2020-04-23 20:37:22.000000000","message":"extra period","commit_id":"a75ff679193e565947ef2572b70c7d75b16fdb58"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e6b6f3a1c60aae039ac70d43d23494d2c4b69787","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"The legacy ``pc`` machine is increasingly not recommended by QEMU/KVM"},{"line_number":138,"context_line":"experts, especially for many \"enterprise workloads\".  And upstream QEMU"},{"line_number":139,"context_line":"has been considering (although, without consensus) Regardless of"},{"line_number":140,"context_line":"upstream QEMU\u0027s plans, Nova should be prepared to not break when that"},{"line_number":141,"context_line":"happens."},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f493fa4_391a8d7c","line":139,"range":{"start_line":139,"start_character":10,"end_line":139,"end_character":50},"updated":"2020-04-23 20:37:22.000000000","message":"accidentally words again","commit_id":"a75ff679193e565947ef2572b70c7d75b16fdb58"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f119322052e725196b38d229ca384b112906aeb4","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"The legacy ``pc`` machine is increasingly not recommended by QEMU/KVM"},{"line_number":138,"context_line":"experts, especially for many \"enterprise workloads\".  And upstream QEMU"},{"line_number":139,"context_line":"has been considering (although, without consensus) Regardless of"},{"line_number":140,"context_line":"upstream QEMU\u0027s plans, Nova should be prepared to not break when that"},{"line_number":141,"context_line":"happens."},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f493fa4_33090195","line":139,"range":{"start_line":139,"start_character":10,"end_line":139,"end_character":50},"in_reply_to":"1f493fa4_391a8d7c","updated":"2020-04-24 09:05:14.000000000","message":"Oops. Will fix.","commit_id":"a75ff679193e565947ef2572b70c7d75b16fdb58"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e6b6f3a1c60aae039ac70d43d23494d2c4b69787","unresolved":false,"context_lines":[{"line_number":207,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":208,"context_line":"device role tagging to identify PCI devices."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"For live migration caveat, see the `Live migration and versioned machine"},{"line_number":211,"context_line":"types`_."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Implementation"},{"line_number":214,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f493fa4_b4122457","line":211,"range":{"start_line":210,"start_character":0,"end_line":211,"end_character":8},"updated":"2020-04-23 20:37:22.000000000","message":"So in essence we\u0027re saying \"make q35 the default in nova, let deployment tooling deal with deployment-wide live-migration consistency/enablement\"?","commit_id":"a75ff679193e565947ef2572b70c7d75b16fdb58"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f119322052e725196b38d229ca384b112906aeb4","unresolved":false,"context_lines":[{"line_number":207,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":208,"context_line":"device role tagging to identify PCI devices."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"For live migration caveat, see the `Live migration and versioned machine"},{"line_number":211,"context_line":"types`_."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"Implementation"},{"line_number":214,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f493fa4_73038974","line":211,"range":{"start_line":210,"start_character":0,"end_line":211,"end_character":8},"in_reply_to":"1f493fa4_b4122457","updated":"2020-04-24 09:05:14.000000000","message":"Yes.  That is the only correct answer in this case.\n\nThat said, not changing the default in Nova is still an option  (see \"Plan-B\" noted elsewhere) until we\u0027re \"forced to\", by way of QEMU deprecating it.  Although I don\u0027t see it happening any time soon.","commit_id":"a75ff679193e565947ef2572b70c7d75b16fdb58"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b9da105a1b62fe217dc01fc700524de22e374a4c","unresolved":false,"context_lines":[{"line_number":34,"context_line":"x86_64."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Today Operators can explicitly choose to use ``q35`` via the config"},{"line_number":37,"context_line":"attribute ``[libvirt]/hw_machine_type``, which currently defaults to"},{"line_number":38,"context_line":"``pc``.  Change this to ``q35``."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Additionally, already today installer tools like TripleO explicitly"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_80ffd832","line":37,"range":{"start_line":37,"start_character":12,"end_line":37,"end_character":37},"updated":"2020-04-24 13:36:56.000000000","message":"nit: I guess we can\u0027t link to the config reference from specs? Stephen would know.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7a4c68f7d3aa4fd5968595653a912f31405d03a3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Additionally, already today installer tools like TripleO explicitly"},{"line_number":41,"context_line":"specify [0]_ versioned machine types, to ensure migration compatibility"},{"line_number":42,"context_line":"during upgrade windows.  TripleO is also preparing [1]_ to make the"},{"line_number":43,"context_line":"swtich to ``q35``."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Use Cases"},{"line_number":46,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_cbc5bc0c","line":43,"range":{"start_line":43,"start_character":0,"end_line":43,"end_character":6},"updated":"2020-05-05 07:44:47.000000000","message":"nit:switch","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Use Cases"},{"line_number":46,"context_line":"---------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The ``q35`` [2]_ [3]_ machine type brings several advantages:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"- Native PCIe support.  This allows the use of PCI \"Extended Config"},{"line_number":51,"context_line":"  Space\" [4]_, which *cannot* be used by legacy PCI.  Use case: PCIe"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_bd464dbf","line":48,"range":{"start_line":48,"start_character":1,"end_line":48,"end_character":61},"updated":"2020-04-27 15:20:58.000000000","message":"we shoudl focuse this on the change that will be seen by changing the default in nova not the advantages of q35 in general.\n\nyou should also add a disadvantages section highlighing the increased memory useage and the change to the pcie port count.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"2a375a322453da78fc81af9ddae5fb123e608cf6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Use Cases"},{"line_number":46,"context_line":"---------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"The ``q35`` [2]_ [3]_ machine type brings several advantages:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"- Native PCIe support.  This allows the use of PCI \"Extended Config"},{"line_number":51,"context_line":"  Space\" [4]_, which *cannot* be used by legacy PCI.  Use case: PCIe"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_42e60fea","line":48,"range":{"start_line":48,"start_character":1,"end_line":48,"end_character":61},"in_reply_to":"1f493fa4_bd464dbf","updated":"2020-04-29 15:45:24.000000000","message":"On the advantages, I can better emphasize the Nova-visible bits; but I also wanted to mention the most common \u0027q35\u0027 capabilities, which is general missing.\n\nOn the \"increased memory\" bit: As you know I\u0027m aware it, and still thinking how to present it, because I don\u0027t have precise config benchmarks between i440fx vs. q35——which is a separate \"performance / scalability testing\" task, that I didn\u0027t wanted to get rat-holed in.  Rest assured, I\u0027ll definitely mention it.  (I\u0027ll also check with Daniel Berrangé from Red Hat who did some testing in this area.)","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  effective and \"cleaner\" than the ACPI-based hotplug that is used by"},{"line_number":55,"context_line":"  the legacy ``pc`` machine type."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"- vIOMMU emulation.  This has a few use cases [5]_, namely: (a)"},{"line_number":58,"context_line":"  protecting the guest memory from untrusted devices that are directly"},{"line_number":59,"context_line":"  assigned to the guest; (b) protecting guests from untrusted user space"},{"line_number":60,"context_line":"  drivers (e.g. DPDK); (c) assigning devices to nested virtual guests."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- Faster SATA emulation — in comparison to the IDE emulation that the"},{"line_number":63,"context_line":"  legacy ``pc`` machine type uses.  Note that this is useful only when a"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_bdf12d98","line":60,"range":{"start_line":57,"start_character":0,"end_line":60,"end_character":70},"updated":"2020-04-27 15:20:58.000000000","message":"again as noted on v5 this will not be an effect of this spec\n\nwe dont currently support viommu although we do plan to propose that for victoria seperatly.\n\nso while it required q35 to work it not an advandate of changing the defualt.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"2a375a322453da78fc81af9ddae5fb123e608cf6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  effective and \"cleaner\" than the ACPI-based hotplug that is used by"},{"line_number":55,"context_line":"  the legacy ``pc`` machine type."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"- vIOMMU emulation.  This has a few use cases [5]_, namely: (a)"},{"line_number":58,"context_line":"  protecting the guest memory from untrusted devices that are directly"},{"line_number":59,"context_line":"  assigned to the guest; (b) protecting guests from untrusted user space"},{"line_number":60,"context_line":"  drivers (e.g. DPDK); (c) assigning devices to nested virtual guests."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- Faster SATA emulation — in comparison to the IDE emulation that the"},{"line_number":63,"context_line":"  legacy ``pc`` machine type uses.  Note that this is useful only when a"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_02ca4719","line":60,"range":{"start_line":57,"start_character":0,"end_line":60,"end_character":70},"in_reply_to":"1f493fa4_bdf12d98","updated":"2020-04-29 15:45:24.000000000","message":"Well, I mentioned it in the sense of what Q35 is _capable_ of, regardless of Nova.  But I\u0027ll add an explicit marker that this is not enabled with this spec.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":59,"context_line":"  assigned to the guest; (b) protecting guests from untrusted user space"},{"line_number":60,"context_line":"  drivers (e.g. DPDK); (c) assigning devices to nested virtual guests."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- Faster SATA emulation — in comparison to the IDE emulation that the"},{"line_number":63,"context_line":"  legacy ``pc`` machine type uses.  Note that this is useful only when a"},{"line_number":64,"context_line":"  guest OS doesn\u0027t support \u0027virtio\u0027 devices (which is what any modern"},{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_bde2cd9e","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":59},"updated":"2020-04-27 15:20:58.000000000","message":"nova uses virio by default so this is not relevent.\n\nthe only defualt use of ide was for config dirve\nwhich can be set to sata on using hw_cdrom_bus\u003dsata when using the pc machine type or to any other support bus like scsi or virtio\n\n\nso this will not really be an improvement in performance in general outside of the niche usecase of config drive which you can already contole using hw_cdrom_bus.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"2a375a322453da78fc81af9ddae5fb123e608cf6","unresolved":false,"context_lines":[{"line_number":59,"context_line":"  assigned to the guest; (b) protecting guests from untrusted user space"},{"line_number":60,"context_line":"  drivers (e.g. DPDK); (c) assigning devices to nested virtual guests."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- Faster SATA emulation — in comparison to the IDE emulation that the"},{"line_number":63,"context_line":"  legacy ``pc`` machine type uses.  Note that this is useful only when a"},{"line_number":64,"context_line":"  guest OS doesn\u0027t support \u0027virtio\u0027 devices (which is what any modern"},{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_223dc3dc","line":65,"range":{"start_line":62,"start_character":0,"end_line":65,"end_character":59},"in_reply_to":"1f493fa4_bde2cd9e","updated":"2020-04-29 15:45:24.000000000","message":"\u003e nova uses virio by default so this is not relevent.\n\nAgain, this was mentioned in the sense of general Q35 capability in contrast to \u0027i440fx\u0027. \n\nAnd I\u0027ve explicitly mentioned that Nova configures \u0027virtio\u0027 in the parenthesis, and is doing the right thing.\n\n \u003e the only defualt use of ide was for config dirve\n \u003e which can be set to sata on using hw_cdrom_bus\u003dsata when using the\n \u003e pc machine type or to any other support bus like scsi or virtio\n \u003e \n \u003e \n \u003e so this will not really be an improvement in performance in general\n \u003e outside of the niche usecase of config drive which you can already\n \u003e contole using hw_cdrom_bus.\n\nI never claimed it is a performance benefit.  I wanted to highlight the general capability of Q35, as noted earlier.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b9da105a1b62fe217dc01fc700524de22e374a4c","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":69,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":70,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":71,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_204d249a","line":68,"range":{"start_line":68,"start_character":59,"end_line":68,"end_character":69},"updated":"2020-04-24 13:36:56.000000000","message":"nit: this is rendering as _actually_ - if you want emphasis, use italics like you did previously with *cannot*","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ec3097c49c2446130d9b7f8a05e9767e69463b65","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":69,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":70,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":71,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_677b468b","line":68,"range":{"start_line":68,"start_character":59,"end_line":68,"end_character":69},"in_reply_to":"1f493fa4_0d0d468f","updated":"2020-04-30 11:41:46.000000000","message":"as i said i still find the curernt statement misleading as you have not included the context to make the statement correct.\n\nsepecifically as is stated above \"The firmware binary \"OVMF_CODE.fd\" lacks the Secure Boot feature.\"\nand \"It\n    can be used with pc-i440fx-rhel7.0.0 and later i440fx qemu-kvm\n    machine types, and also with the pc-q35-rhel7.3.0 machine type.\"\n\nsince it can be used with both the i440fx and q35 machine type it is not correct to say that the secure both is now secure is because of q35 in isolation. even using q35 if you were to use the OVMF_CODE.fd firmware instead of the OVMF_CODE.secboot.fd firmware it would not be secure.\n\nthe OVMF_CODE.secboot.fd dose not seam to support the i440fx machinetype at least when i tried to use it in the past with virt-manager it only worked if i selected the q35 machine type although that could have been a limitation of the specifc build i had installed.\n\nso from a low level point of view its the combindation of using the q35 machine type with\n\u003cfeatures\u003e\n...\n\u003csmm state\u003d\u0027on\u0027\u003e\n...\n\u003c/features\u003e\n\u003cos firmware\u003d\u0027efi\u0027\u003e\n\u003cloader secure\u003d\u0027yes\u0027 type\u003d\u0027pflash\u0027\u003e...\u003c/loader\u003e\n...\n\u003c/os\u003e\n\nif you use type\u003drom it wont work.\nand the correct ovmf uefi firmware OVMF_CODE.secboot.fd \n\nif you dont enable system managmenet mode emulation or enabel seucre boot in the loader eleemnt then even if you use q35 and the correct ovmf firmware it wont actully be secure so implying that the guest is secure becaue you used q35 alone is misleading even if it is required to use q35 to confiure the exact combination of atribute to actually make it secure.\n\ngranted you do say  \"Q35 machine type makes Secure Boot (in combination with OVMF...\"\nbut you removed enough of the context that implication from my reading was, in the context of this spec, changing the default machine type form pc/i440fx to q35 alone was some how going to result in seucre boot being secure and supported even though it wont and requires us to do more work to ensure everything aligns.\n\n\nthis is why i dont like having this \"Capabilities of Q35\"\nsection in this location in the document. it should not be in the problem description section becaue we are not trying to make secure boot work as part of this spec. we are just changing the default machine type so that when you want to use secure boot you do not need to enable q35 in the image or nova config. that is a very different statement and usecase to what you have presented.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ffa8d384f21af622f6ceb65eb3b789eb3157518d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":69,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":70,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":71,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_396ef600","line":68,"range":{"start_line":68,"start_character":59,"end_line":68,"end_character":69},"in_reply_to":"1f493fa4_204d249a","updated":"2020-04-24 17:11:31.000000000","message":"Yep, will fix.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":69,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":70,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":71,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_7d616505","line":68,"range":{"start_line":68,"start_character":59,"end_line":68,"end_character":69},"in_reply_to":"1f493fa4_396ef600","updated":"2020-04-27 15:20:58.000000000","message":"i think this is actully misleading.\n\nnova support uefi boot without secure boot.\nbut my understading is that qemu only support uefi boot with q35 and since you need to use uefi boot to use secure boot since that is a uefi feature then you can do secure boot with qemu with out q35.\n\n\nso again i would remove this section as it provides no benifit in assesing if the default change is actully beniffial to operators.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"8ec9a2e8a435fbdf38b62ac045a104ab3f3766c0","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":69,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":70,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":71,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_01222ab9","line":68,"range":{"start_line":68,"start_character":59,"end_line":68,"end_character":69},"in_reply_to":"1f493fa4_677b468b","updated":"2020-04-30 15:40:08.000000000","message":"(I don\u0027t want to belabor this tiring discussion, see Artom\u0027s point below; but one last, for the sake of \"truth\"!)\n\n[...]\n\n \u003e since it can be used with both the i440fx and q35 machine type it\n \u003e is not correct to say that the secure both is now secure is because\n \u003e of q35 in isolation. even using q35 if you were to use the\n \u003e OVMF_CODE.fd firmware instead of the OVMF_CODE.secboot.fd firmware\n \u003e it would not be secure.\n\nYou are reading way too much into things I haven\u0027t said!  And you are preaching to the choir here; let\u0027s put this discussion to rest.\n\n                - - -\n\nFor posterity\u0027s sake, let me clearly spell out clearly what QEMU allows today with OVMF:\n\n- Possible[1][2] — i440fx + UEFI non-Secure Boot (this is also a valid combination)\n- Not Possible — i440fx + UEFI Secure Boot\n- Possible — Q35 +  UEFI non-Secure Boot\n- Possible — Q35 +  UEFI Secure Boot\n\nWhat Nova allows is the last case today.  (The i440fx + UEFI in Nova I haven\u0027t tested.)\n\n[1] https://kashyapc.fedorapeople.org/libvirt_plain_UEFI_i440fx_f31_a.xml\n[2] https://kashyapc.fedorapeople.org/QEMU_plain_UEFI_i440fx_f31_a.txt\n\n[...]","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"2e4528e730c23959b1a831e16fe1e6710e2c5e3b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":69,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":70,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":71,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_ea21dbb5","line":68,"range":{"start_line":68,"start_character":59,"end_line":68,"end_character":69},"in_reply_to":"1f493fa4_677b468b","updated":"2020-04-30 13:15:22.000000000","message":"Secure boot is just high-level context for why Q35 is a good idea, let\u0027s not debate the technical details of it in this spec, surely it\u0027s out of scope.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"2a375a322453da78fc81af9ddae5fb123e608cf6","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":69,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":70,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":71,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_c5b7c939","line":68,"range":{"start_line":68,"start_character":59,"end_line":68,"end_character":69},"in_reply_to":"1f493fa4_7d616505","updated":"2020-04-29 15:45:24.000000000","message":"\u003e i think this is actully misleading.\n\nUrgh, what is misleading?  It looks like you\u0027ve misread it.\n\nBefore asserting something that you\u0027re not sure of, please for clarification as to what is meant here.\n\nThis explanation is vetted by OVMF maintainer; I\u0027ll defer to the expert in that.\n\n \u003e nova support uefi boot without secure boot.\n\nYes.\n\n \u003e but my understading is that qemu only support uefi boot with q35\n \u003e and since you need to use uefi boot to use secure boot since that\n \u003e is a uefi feature then you can do secure boot with qemu with out\n \u003e q35.\n\nWell, it is still extremely relevant in context of the end result.\n\n \u003e \n \u003e so again i would remove this section as it provides no benifit in\n \u003e assesing if the default change is actully beniffial to operators.\n\nI\u0027d keep it; this is still important / useful to know——as this highlights one of the benefits.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"bb4d8d210e74657f95b7267df6c02ea1a0711a08","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":69,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":70,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":71,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_0d0d468f","line":68,"range":{"start_line":68,"start_character":59,"end_line":68,"end_character":69},"in_reply_to":"1f493fa4_c0a697ab","updated":"2020-04-30 10:34:13.000000000","message":"On the term \"Q35 making secure boot \"actually secure\", yes, what it is implying is correct—in the past, it WAS possible to insecurely enable Secure Boot with OVMF.\n\nAt least in CentOS and RHEL (and possibly other distributions).  Let me quote the release note (\"OVMF: secure boot limitations\"—https://bugzilla.redhat.com/show_bug.cgi?id\u003d1202819 [from Dec-2016]):\n\n    The \"OVMF-20160202-2.gitd7c0dfa.el7.noarch\" binary package provides\n    two firmware binaries, \"OVMF_CODE.fd\" and \"OVMF_CODE.secboot.fd\".\n    \n    The firmware binary \"OVMF_CODE.fd\" lacks the Secure Boot feature. It\n    can be used with pc-i440fx-rhel7.0.0 and later i440fx qemu-kvm\n    machine types, and also with the pc-q35-rhel7.3.0 machine type.\n    \n    Guests that were installed using \"OVMF_CODE.fd\" from earlier\n    versions of the binary RPM may have enabled the Secure Boot\n    operating mode, for development and testing purposes only (it was\n    not actually secure). For those guests, the Secure Boot operating\n    mode will be transparently disabled at their first shutdown after\n    upgrading the OVMF package.\n    \n    The firmware binary \"OVMF_CODE.secboot.fd\" includes the Secure Boot\n    feature. It is based on SMM emulation, which is meant to make it\n    actually secure. This binary can be used with pc-q35-rhel7.3.0 and\n    later Q35 machine types only, and it also requires the host kernel\n    to be RHEL-7.3 GA or later.\n\nNow, carefully notice these two bits from above:\n\n- \"OVMF_CODE.fd ... may have enabled the Secure Boot ... it was not actually secure\";\n\n- \"OVMF_CODE.secboot.fd ... is meant to make it [Secure Boot] actually secure\".\n\nMany distributions ship both OVMF_CODE.fd and OVMF_CODE.secboot.fd (with different names).  So unless you go dig into how all distributions build OVMF (I did for Ubuntu/SUSE in the past) , you do not simply know.\n\nI\u0027ll see to rephrase that bit in the Nova spec in a clearer way.  And I\u0027ll also consider separating \"Capabilities of Q35\" from \"Use Cases Enabled by this Spec\"to avoid this confusion.\n\n                - - -\n\nI\u0027m not assuming ignorance on your part, I\u0027m only saying: please ask what I meant before confidently making a claim.  As you can see from the above quoted text, at one point in time, QEMU *did* allow the combination of regular, non-secure, UEFI boot with \u0027i440fx (whether it is \"supported\" is a separate topic).\n\n(Yes, Nova mandates \u0027q35\u0027 for even regular UEFI boot, I\u0027m not debating that at all.  I wanted to  distinguish between what QEMU allows and what Nova chooses to allow.)\n\n                - - -\n\nLastly, I acknowledge, when Nova doesn\u0027t yet have Secure Boot capability talking about this point can be confusing.  As I repeated noted, I was highlighting the general Q35 capabilities.  (I even added a marker of \"low-level explanation\" for the tedious bits for those who want to skip it.)  \n\nI\u0027ll consider making a separate \"Capabilities of Q35\" section.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"58d6c7783f8e35d8d0e3e504a473fd92c6102adc","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  guest should be using, and this is what Nova configures)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"- Q35 machine type makes Secure Boot (in combination with OVMF, the"},{"line_number":68,"context_line":"  project that enables UEFI support for QEMU / KVM guests) _actually_"},{"line_number":69,"context_line":"  secure.  The low-level explanation: this is because a malicious guest"},{"line_number":70,"context_line":"  kernel might attempt to tamper with the emulated \u0027pflash\u0027 chip (which"},{"line_number":71,"context_line":"  stores Secure Boot related persistent UEFI variables) directly,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_c0a697ab","line":68,"range":{"start_line":68,"start_character":59,"end_line":68,"end_character":69},"in_reply_to":"1f493fa4_c5b7c939","updated":"2020-04-29 16:29:21.000000000","message":"the term \"actually secure\" implies that you can enable secure boot in an insure way without using q35.\n\nas i explained you cant use uefi with qemu and the i440fx machine type. so if you want to enable secure boot which is a feature provided by uefi firmware you have to enable q35.\n\nso its mislead to suggest that changing the default to q35 makes secure boot actully secure when we dont allow you to use it at all otherwise.\n\nplease dont assume ignorance on my part when we disagree on something unless you want me to assume the same of you.\n\nsecond its  not extreamly relevent as the change we are discussing is changing the default. to use secure boot we say you must use q35 that will not change if we default to q35 all that change is that you dont have to set it but its still true that if you set the machine type to pc/i440fx you will not be able to use it.\n\nthis just distracts form the actull nova changes which is why i would like this to be removed or moved to the references section.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":92,"context_line":"The stable guest ABI is achieved via the \"versioned machine types\" — they"},{"line_number":93,"context_line":"provide backwards compatibility of command-line options, ability to live"},{"line_number":94,"context_line":"migrate, etc."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"More on versioned machine types"},{"line_number":97,"context_line":"-------------------------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"At the start each release cycle, QEMU creates a new machine type,"},{"line_number":100,"context_line":"matching the particular release name for each of the two chipset"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_e0a14efa","line":97,"range":{"start_line":95,"start_character":0,"end_line":97,"end_character":31},"updated":"2020-04-27 15:20:58.000000000","message":"i would proably move this to a reference section at the bottom.\n\nits important context for undstaing libvirt but its not relevent to the topic of the spec in the sense of the implciation of changing the machine type.\n\nnova does not and should not ever use a version machine type.\noperators and installation tools might for the reason above but since they are not os independent nova cannot.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"2a375a322453da78fc81af9ddae5fb123e608cf6","unresolved":false,"context_lines":[{"line_number":92,"context_line":"The stable guest ABI is achieved via the \"versioned machine types\" — they"},{"line_number":93,"context_line":"provide backwards compatibility of command-line options, ability to live"},{"line_number":94,"context_line":"migrate, etc."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"More on versioned machine types"},{"line_number":97,"context_line":"-------------------------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"At the start each release cycle, QEMU creates a new machine type,"},{"line_number":100,"context_line":"matching the particular release name for each of the two chipset"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_85c821a6","line":97,"range":{"start_line":95,"start_character":0,"end_line":97,"end_character":31},"in_reply_to":"1f493fa4_e0a14efa","updated":"2020-04-29 15:45:24.000000000","message":"All of that was already discussed.  I added it for important context, and explicitly called out that installer tools do this.\n\nI\u0027ll be incorporating this content in a different document for admins/operators.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b9da105a1b62fe217dc01fc700524de22e374a4c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    qemu-system-x86-4.2.0-6.fc30.x86_64"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Sometimes a new versioned machine type contains important bug fixes, or"},{"line_number":124,"context_line":"occasionally even CPU fixes.  Especially the slides \"Why bother with"},{"line_number":125,"context_line":"machine types\".  So for future versions of QEMU (e.g.  6.1, 6.2, etc) if"},{"line_number":126,"context_line":"``pc`` does not get their corresponding versioned variants"},{"line_number":127,"context_line":"(pc-i440fx-6.1, pc-i440fx-6.2), then users will be left in the dark."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_40183080","line":125,"range":{"start_line":124,"start_character":30,"end_line":125,"end_character":15},"updated":"2020-04-24 13:36:56.000000000","message":"What? This seems to come out of nowhere.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ffa8d384f21af622f6ceb65eb3b789eb3157518d","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    qemu-system-x86-4.2.0-6.fc30.x86_64"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Sometimes a new versioned machine type contains important bug fixes, or"},{"line_number":124,"context_line":"occasionally even CPU fixes.  Especially the slides \"Why bother with"},{"line_number":125,"context_line":"machine types\".  So for future versions of QEMU (e.g.  6.1, 6.2, etc) if"},{"line_number":126,"context_line":"``pc`` does not get their corresponding versioned variants"},{"line_number":127,"context_line":"(pc-i440fx-6.1, pc-i440fx-6.2), then users will be left in the dark."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_d98d5232","line":125,"range":{"start_line":124,"start_character":30,"end_line":125,"end_character":15},"in_reply_to":"1f493fa4_40183080","updated":"2020-04-24 17:11:31.000000000","message":"That\u0027s a bad copy/paste from my comment here[1]; I\u0027ll remove it.  \n\nYour \"out of nowhere\" implies you didn\u0027t fully read my comment[1], which answered your question, and where that bit comes from, linking to these slides[2]. ;-)\n\nFWIW, a variant of these slides[3] from 2018 Berlin Summit are also linked from the Nova docs[4].\n\n\n[1] https://review.opendev.org/#/c/631154/5/specs/victoria/approved/q35_qemu_machine_type_as_the_default.rst@27\n[2] https://kashyapc.fedorapeople.org/Secure-CPU-config-for-KVM-based-guests-RHT_TechDay_Brussels_2020.pdf\n[3] https://www.openstack.org/videos/summits/berlin-2018/effective-virtual-cpu-configuration-in-nova\n[4] https://opendev.org/openstack/nova/commit/d3251c3f9f","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7435f1e7d305a876e232cb62bac86152c594fab4","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    qemu-system-x86-4.2.0-6.fc30.x86_64"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Sometimes a new versioned machine type contains important bug fixes, or"},{"line_number":124,"context_line":"occasionally even CPU fixes.  Especially the slides \"Why bother with"},{"line_number":125,"context_line":"machine types\".  So for future versions of QEMU (e.g.  6.1, 6.2, etc) if"},{"line_number":126,"context_line":"``pc`` does not get their corresponding versioned variants"},{"line_number":127,"context_line":"(pc-i440fx-6.1, pc-i440fx-6.2), then users will be left in the dark."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_27013e07","line":125,"range":{"start_line":124,"start_character":30,"end_line":125,"end_character":15},"in_reply_to":"1f493fa4_d98d5232","updated":"2020-04-30 12:21:39.000000000","message":"\"out of nowhere\" in the sense that that sentence doesn\u0027t fit with the sentences around it. I get that you\u0027re referring to your techday presentation,  it\u0027s just jarring the way you do it.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"36fc877cf9807de38be751a3085dd8ad868dca36","unresolved":false,"context_lines":[{"line_number":131,"context_line":"needless \u0027pc-\u0027 prefix.  This is due to \"historical reasons\"."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Live migration and versioned machine types"},{"line_number":135,"context_line":"------------------------------------------"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"As noted above, TripleO specifies versioned machine types to ensure"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff570b3c_e6eac071","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":14},"updated":"2020-06-04 07:21:47.000000000","message":"This probably not the right spec/place to ask, but anyway, is there any way to block the migration to different hw_machine_types? Say server1 has conf.libvirt.hw_machine_type set to \u0027x86_64\u003dpc\u0027, server2 has conf.libvirt.hw_machine_type set to \u0027x86_64\u003dq35\u0027, is it possible to migrate between server1 and server2? If possible, I don\u0027t think it it reasonable.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5b804e650b5a16272b83678509ff881a96c2c65c","unresolved":false,"context_lines":[{"line_number":131,"context_line":"needless \u0027pc-\u0027 prefix.  This is due to \"historical reasons\"."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Live migration and versioned machine types"},{"line_number":135,"context_line":"------------------------------------------"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"As noted above, TripleO specifies versioned machine types to ensure"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff570b3c_f5542400","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":14},"in_reply_to":"ff570b3c_e6eac071","updated":"2020-06-04 11:07:52.000000000","message":"the schdler has no knoladge of machine types so today its posible to cold or live migrate to a host with a different machine type and you are correct that in general it is not resonable to do that.\n\nwe resolved yesterday in the ptg to start recording the machine type of the instance so that it will not change over its lifetime. i would also like to start reporting machine types via placment as traits and introduce a prefileter that would then scudle on it. likely ill propsoe adding as hw:stable_abi\u003dTrue(default)|False extra spec to opt out of the machine type not chaning.\n\nbut i think we shoudl adress this in victoria.\n\ntoday you just use host aggregates and filters but if you dont know you should be doing this then your going to get bad behavior by default.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"02b21e45ddee68993b49f4505cb209bb48f7db7e","unresolved":false,"context_lines":[{"line_number":131,"context_line":"needless \u0027pc-\u0027 prefix.  This is due to \"historical reasons\"."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Live migration and versioned machine types"},{"line_number":135,"context_line":"------------------------------------------"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"As noted above, TripleO specifies versioned machine types to ensure"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ff570b3c_e80b9b79","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":14},"in_reply_to":"ff570b3c_f5542400","updated":"2020-06-05 02:10:39.000000000","message":"Thanks Sean! Glad to see it\u0027s happening.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":131,"context_line":"needless \u0027pc-\u0027 prefix.  This is due to \"historical reasons\"."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Live migration and versioned machine types"},{"line_number":135,"context_line":"------------------------------------------"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"As noted above, TripleO specifies versioned machine types to ensure"},{"line_number":138,"context_line":"migration compatibility during upgrade windows.  E.g. to quote TripleO\u0027s"},{"line_number":139,"context_line":"config [0]_ for machine types::"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    ..."},{"line_number":142,"context_line":"    NovaHWMachineType:"},{"line_number":143,"context_line":"      description: \u003e"},{"line_number":144,"context_line":"        To specify a default machine type per host architecture."},{"line_number":145,"context_line":"    default: \u0027x86_64\u003dpc-i440fx-rhel7.6.0,aarch64\u003dvirt-rhel7.6.0,ppc64\u003dpseries-rhel7.6.0,ppc64le\u003dpseries-rhel7.6.0\u0027"},{"line_number":146,"context_line":"    type: string"},{"line_number":147,"context_line":"    ..."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Why?"},{"line_number":150,"context_line":"~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_60ad3ee8","line":147,"range":{"start_line":134,"start_character":0,"end_line":147,"end_character":7},"updated":"2020-04-27 15:20:58.000000000","message":"again i would move this to the refernce section.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    type: string"},{"line_number":147,"context_line":"    ..."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Why?"},{"line_number":150,"context_line":"~~~~"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Let\u0027s take a real-world example to make the point.  I\u0027m using Red"},{"line_number":153,"context_line":"Hat-based OpenStack distribution, RHOS, for ease of explanation."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_a04f4632","line":150,"range":{"start_line":149,"start_character":1,"end_line":150,"end_character":4},"updated":"2020-04-27 15:20:58.000000000","message":"again move this to a refernce section of delte it\n\nspecs are ment to convay the relevent infomation import to a nova developer to be able to understand and implement the feature is a spec author does was not able to do so.\n\n\nthis is oke ot like to or to have in the reference section at the end but this is too much libvirt and redhat specifgic infomation to to include in the Problem description in an upstream spec.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"58d6c7783f8e35d8d0e3e504a473fd92c6102adc","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    type: string"},{"line_number":147,"context_line":"    ..."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Why?"},{"line_number":150,"context_line":"~~~~"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Let\u0027s take a real-world example to make the point.  I\u0027m using Red"},{"line_number":153,"context_line":"Hat-based OpenStack distribution, RHOS, for ease of explanation."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_c070570b","line":150,"range":{"start_line":149,"start_character":1,"end_line":150,"end_character":4},"in_reply_to":"1f493fa4_8576616f","updated":"2020-04-29 16:29:21.000000000","message":"you can have it in the spec but not her put it as a referecne and link to it.\nthis  should not be in the problem description section.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"2a375a322453da78fc81af9ddae5fb123e608cf6","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    type: string"},{"line_number":147,"context_line":"    ..."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Why?"},{"line_number":150,"context_line":"~~~~"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Let\u0027s take a real-world example to make the point.  I\u0027m using Red"},{"line_number":153,"context_line":"Hat-based OpenStack distribution, RHOS, for ease of explanation."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_8576616f","line":150,"range":{"start_line":149,"start_character":1,"end_line":150,"end_character":4},"in_reply_to":"1f493fa4_a04f4632","updated":"2020-04-29 15:45:24.000000000","message":"I didn\u0027t even have this important context in the spec to begin with, but in a separate document.  I added it to the spec, as Lee Yarwood asked to add it here as an example.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"bb4d8d210e74657f95b7267df6c02ea1a0711a08","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    type: string"},{"line_number":147,"context_line":"    ..."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Why?"},{"line_number":150,"context_line":"~~~~"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Let\u0027s take a real-world example to make the point.  I\u0027m using Red"},{"line_number":153,"context_line":"Hat-based OpenStack distribution, RHOS, for ease of explanation."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_6d1b2ac9","line":150,"range":{"start_line":149,"start_character":1,"end_line":150,"end_character":4},"in_reply_to":"1f493fa4_c070570b","updated":"2020-04-30 10:34:13.000000000","message":"Right, I agree; I\u0027ll move it further away.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b9da105a1b62fe217dc01fc700524de22e374a4c","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Back to the example:"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"  - Assume that a RHOS deployment is running on a RHEL 7.6 host, the"},{"line_number":162,"context_line":"    Nova instances will be given a RHEL 7.6 (pc-i440fx-rhel7.6.0)"},{"line_number":163,"context_line":"    machine type."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  - And if the same deployment gets additional compute nodes added in"},{"line_number":166,"context_line":"    the future, which use a newer RHEL (e.g. RHEL-7.7), the guests"},{"line_number":167,"context_line":"    launched on those new compute nodes will get a newer machine type"},{"line_number":168,"context_line":"    (i.e. \u0027pc-i440fx-rhel7.7.0\u0027)."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Here\u0027s is the problem:"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_ab98f5bf","line":168,"range":{"start_line":161,"start_character":0,"end_line":168,"end_character":33},"updated":"2020-04-24 13:36:56.000000000","message":"This renders in a weirdly big font for some reason.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ffa8d384f21af622f6ceb65eb3b789eb3157518d","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Back to the example:"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"  - Assume that a RHOS deployment is running on a RHEL 7.6 host, the"},{"line_number":162,"context_line":"    Nova instances will be given a RHEL 7.6 (pc-i440fx-rhel7.6.0)"},{"line_number":163,"context_line":"    machine type."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  - And if the same deployment gets additional compute nodes added in"},{"line_number":166,"context_line":"    the future, which use a newer RHEL (e.g. RHEL-7.7), the guests"},{"line_number":167,"context_line":"    launched on those new compute nodes will get a newer machine type"},{"line_number":168,"context_line":"    (i.e. \u0027pc-i440fx-rhel7.7.0\u0027)."},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Here\u0027s is the problem:"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_f9be4e63","line":168,"range":{"start_line":161,"start_character":0,"end_line":168,"end_character":33},"in_reply_to":"1f493fa4_ab98f5bf","updated":"2020-04-24 17:11:31.000000000","message":"Ah, I know; it\u0027s the extra space.  Will fix...thanks!","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b9da105a1b62fe217dc01fc700524de22e374a4c","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Here\u0027s is the problem:"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    It will now be _impossible_ to migrate a guest from a RHEL 7.7-based"},{"line_number":173,"context_line":"    compute node to a RHEL 7.6-based — because RHEL 7.6 won\u0027t know about"},{"line_number":174,"context_line":"    the RHEL 7.7\u0027s machine type."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"To deal with this trouble, you need to be able to force set an explicit"},{"line_number":177,"context_line":"machine type across all compute nodes in a deployment (as shown above)."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_4bafb193","line":174,"range":{"start_line":172,"start_character":0,"end_line":174,"end_character":32},"updated":"2020-04-24 13:36:56.000000000","message":"Ditto - weird rendering","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b9da105a1b62fe217dc01fc700524de22e374a4c","unresolved":false,"context_lines":[{"line_number":173,"context_line":"    compute node to a RHEL 7.6-based — because RHEL 7.6 won\u0027t know about"},{"line_number":174,"context_line":"    the RHEL 7.7\u0027s machine type."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"To deal with this trouble, you need to be able to force set an explicit"},{"line_number":177,"context_line":"machine type across all compute nodes in a deployment (as shown above)."},{"line_number":178,"context_line":"The machine type should match the latest machine type present at the"},{"line_number":179,"context_line":"time each RHOS version is released.  I.e. since RHOS 14 is released"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_ab22b550","line":176,"range":{"start_line":176,"start_character":50,"end_line":176,"end_character":55},"updated":"2020-04-24 13:36:56.000000000","message":"nit: drop this word","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ffa8d384f21af622f6ceb65eb3b789eb3157518d","unresolved":false,"context_lines":[{"line_number":173,"context_line":"    compute node to a RHEL 7.6-based — because RHEL 7.6 won\u0027t know about"},{"line_number":174,"context_line":"    the RHEL 7.7\u0027s machine type."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"To deal with this trouble, you need to be able to force set an explicit"},{"line_number":177,"context_line":"machine type across all compute nodes in a deployment (as shown above)."},{"line_number":178,"context_line":"The machine type should match the latest machine type present at the"},{"line_number":179,"context_line":"time each RHOS version is released.  I.e. since RHOS 14 is released"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_b9acc634","line":176,"range":{"start_line":176,"start_character":50,"end_line":176,"end_character":55},"in_reply_to":"1f493fa4_ab22b550","updated":"2020-04-24 17:11:31.000000000","message":"Yep; in next iteration.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7a4c68f7d3aa4fd5968595653a912f31405d03a3","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"Here [6]_ is a short summary of Ubuntu\u0027s machine type handling."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Proposed change"},{"line_number":192,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":193,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_cb4adc81","line":190,"updated":"2020-05-05 07:44:47.000000000","message":"I enjoyed reading about the context why q35 is better, but if you keep this at the top of the spec then it will be debated _before_ the reader reaches the real meat of the spec below.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":207,"context_line":"- Make sure to declare a certain number of PCIe \"root port controllers\""},{"line_number":208,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [11]_ when using ``q35``"},{"line_number":209,"context_line":"  machine type."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Alternatives"},{"line_number":213,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_a01626f0","line":210,"updated":"2020-04-27 15:20:58.000000000","message":"- record the machine type an instance is first spawned with if not set in the image metadata to ensure it never changes during the lifetime of an instance.\n\nif we dont do this we will break instance on upgrade after a hard reboot, making this a non starter in my  view.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7a4c68f7d3aa4fd5968595653a912f31405d03a3","unresolved":false,"context_lines":[{"line_number":207,"context_line":"- Make sure to declare a certain number of PCIe \"root port controllers\""},{"line_number":208,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [11]_ when using ``q35``"},{"line_number":209,"context_line":"  machine type."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Alternatives"},{"line_number":213,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_befd0c0a","line":210,"in_reply_to":"1f493fa4_67d86652","updated":"2020-05-05 07:44:47.000000000","message":"+1 on gating with both machine type _before_ we switch our defaults.\n\nAlso I suggest to try to answer the following operator questions:\n\"I have a big deployment with default \u0027pc\u0027 machine type. I see that nova in the next release changes that default to \u0027q35\u0027. \nWhat should I do before I upgrade not to break my deployment? \nWhat should I do so that eventually I can use the better \u0027q35\u0027 machine type in my cloud?\"","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"2a375a322453da78fc81af9ddae5fb123e608cf6","unresolved":false,"context_lines":[{"line_number":207,"context_line":"- Make sure to declare a certain number of PCIe \"root port controllers\""},{"line_number":208,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [11]_ when using ``q35``"},{"line_number":209,"context_line":"  machine type."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Alternatives"},{"line_number":213,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_a598bd74","line":210,"in_reply_to":"1f493fa4_a01626f0","updated":"2020-04-29 15:45:24.000000000","message":"Nod.  How do you suggest to go about recording the machine type in a Nova instance?","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"142ed052c348c546073cbce83f1379d71cb33183","unresolved":false,"context_lines":[{"line_number":207,"context_line":"- Make sure to declare a certain number of PCIe \"root port controllers\""},{"line_number":208,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [11]_ when using ``q35``"},{"line_number":209,"context_line":"  machine type."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Alternatives"},{"line_number":213,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_67d86652","line":210,"in_reply_to":"1f493fa4_a33c2393","updated":"2020-04-30 11:44:18.000000000","message":"i think in any case we will likely want some coverage for both machine types in the ci so keeping 1 job using pc.\nbut in general what ever we decide regardign changing the default move the majority of the jobs to q35 it think is a good step forward.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"58d6c7783f8e35d8d0e3e504a473fd92c6102adc","unresolved":false,"context_lines":[{"line_number":207,"context_line":"- Make sure to declare a certain number of PCIe \"root port controllers\""},{"line_number":208,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [11]_ when using ``q35``"},{"line_number":209,"context_line":"  machine type."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Alternatives"},{"line_number":213,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_e0e3d3a2","line":210,"in_reply_to":"1f493fa4_a598bd74","updated":"2020-04-29 16:29:21.000000000","message":"add a key in the instance_extra table that has the machine type.\n\nfor existing instnace this will need to be don as part of the agent init_host or a function called form there.\n\nso when the agent starts it iterages over all the instance on the host, as part of that it should update andy isntance that does not have the machine_type set and populate it with the value it is curently using.\n\nthis is something that for new instances would be set as part of spawn. so this info would be availabel only int eh cell db and not the api db in the instance extra table.\n\nif we wanted too we could report the supproted machine types as custom traits and use this info for schduling too but i dont know if that is somethign we want to consier in scope for this spec.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"bb4d8d210e74657f95b7267df6c02ea1a0711a08","unresolved":false,"context_lines":[{"line_number":207,"context_line":"- Make sure to declare a certain number of PCIe \"root port controllers\""},{"line_number":208,"context_line":"  upfront for PCIe hot-plug.  This is mandatory [11]_ when using ``q35``"},{"line_number":209,"context_line":"  machine type."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"Alternatives"},{"line_number":213,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_a33c2393","line":210,"in_reply_to":"1f493fa4_e0e3d3a2","updated":"2020-04-30 10:34:13.000000000","message":"Yeah, I don\u0027t want to make it too complicated at this point.\n\nThe more I think of this, the more I consider option (1) to still be a strong contender: keep \u0027pc\u0027 as Nova\u0027s baked in default, have Nova CI jobs passing with \u0027q35\u0027; only then installer tools to switch to \u0027q35\u0027.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b9da105a1b62fe217dc01fc700524de22e374a4c","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":216,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":217,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"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":7,"id":"1f493fa4_6b01cd6b","line":218,"updated":"2020-04-24 13:36:56.000000000","message":"I think here is where we need to spell out the two alternatives:\n\n1. Keep the default pc, but change our devstack CI to use q35 evreywhere. This has less chance of breaking operators in the wild.\n\n2. Change the default to q35.\n\nI prefer 2, because 1 sends a weird message of \"we\u0027re keeping the old default, but no longer test it in CI.\" In fact, if we\u0027re moving our CI to q35, shouldn\u0027t pc be marked as deprecated, because we can no longer reasonably promise lack of regressions?","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7435f1e7d305a876e232cb62bac86152c594fab4","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":216,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":217,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"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":7,"id":"1f493fa4_aa0a331c","line":218,"in_reply_to":"1f493fa4_19397a40","updated":"2020-04-30 12:21:39.000000000","message":"\u003e While (2) would be nice, it is not such a simple, cut-and-dried\n\n\n... but (2) is *exactly* what this spec is proposing?","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":216,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":217,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"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":7,"id":"1f493fa4_bdc3ed37","line":218,"in_reply_to":"1f493fa4_19397a40","updated":"2020-04-27 15:20:58.000000000","message":"i would only be ok with 2 if we never change the machine type for any exsiting instnace. that require recording the machine type of all isntaces when an instance is first created and only allowing it to change on a resize after that.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"7a70c9862ced64083d44c6ce2f28bcb3f6c5f7f0","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":216,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":217,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"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":7,"id":"1f493fa4_dc266568","line":218,"in_reply_to":"1f493fa4_6a94ab37","updated":"2020-04-30 15:45:56.000000000","message":"\u003e Therefore, option (1)—have at least a few Nova gating CI jobs to\n \u003e pass with \u0027q35\u0027; and merge the in-flight TripleO patch that\n \u003e switches the default to \u0027q35\u0027—is an entirely valid option, and\n \u003e which is what I recommend at this point.\n\nYeah, I\u0027ve been converted. Backwards compatibility for such an important thing as machine type takes precedence over sending a \"unified message\", so to speak, by changing the Nova default to reflect what we CI upstream.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"2e4528e730c23959b1a831e16fe1e6710e2c5e3b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":216,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":217,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"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":7,"id":"1f493fa4_aa47d376","line":218,"in_reply_to":"1f493fa4_6ad78b4c","updated":"2020-04-30 13:15:22.000000000","message":"This spec and per-instance machine types are different things.\n\nThis spec is \"transition upstream nova to the thing that\u0027s 1. future-proof 2. actually in use by most deployments\" (I\u0027m basing on TripleO setting versioned machines, as Kashyap explains on L134 and below)\n\nPer-instance machine types is \"give more flexibility to operators to not have to set deployment-wide versioned machine types to ensure live migration compatibility.\"","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ffa8d384f21af622f6ceb65eb3b789eb3157518d","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":216,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":217,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"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":7,"id":"1f493fa4_19397a40","line":218,"in_reply_to":"1f493fa4_6b01cd6b","updated":"2020-04-24 17:11:31.000000000","message":"While (2) would be nice, it is not such a simple, cut-and-dried choice.  The main reason being \"backwards compatibility\".  Also, \u0027pc\u0027 isn\u0027t going away anytime soon.  And still remains a valid choice for some of the \u0027legacy\u0027 _and_ non-legacy workloads.\n\nSo option-1 is what libvirt itself went with (the below is footnote 10 in this spec):\n\nhttps://libvirt.org/git/?p\u003dlibvirt.git;a\u003dcommit;h\u003d26cfb1a3cd\n-- qemu: ensure default machine types don\u0027t change if QEMU changes\n\nAnd, no — we cannot mark \"pc\" as deprecated until upstream QEMU actually does so, and they haven\u0027t reached a consensus yet.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"8ec9a2e8a435fbdf38b62ac045a104ab3f3766c0","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":216,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":217,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"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":7,"id":"1f493fa4_6a94ab37","line":218,"in_reply_to":"1f493fa4_aa0a331c","updated":"2020-04-30 15:40:08.000000000","message":"\u003e \u003e While (2) would be nice, it is not such a simple, cut-and-dried\n \u003e \n \u003e \n \u003e ... but (2) is *exactly* what this spec is proposing?\n\nYes, it is suggesting to hash out the direction we want to take.  Not changing the default in upstream Nova is still a robust option, not least because I don\u0027t have data / answers for all concerns related to \"backwards compatibility\" (which _is_ a good point; and one of the reasons why libvirt itself has hard-coded \u0027pc\u0027).\n\nTherefore, option (1)—have at least a few Nova gating CI jobs to pass with \u0027q35\u0027; and merge the in-flight TripleO patch that switches the default to \u0027q35\u0027—is an entirely valid option, and which is what I recommend at this point.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5e78554cfeb473bae6fdbbb4216f588a7bddd366","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":216,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":217,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"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":7,"id":"1f493fa4_6ad78b4c","line":218,"in_reply_to":"1f493fa4_aa0a331c","updated":"2020-04-30 12:36:51.000000000","message":"yes but we have not actully agree that we should proceed with this spec at all or that its the right direction.\n\ni do think recording the machine type an istance was created with and ensuring it remains the same for its lifetime is proably a good change that we could consider doing even if we dont do the rest.\n\nmaybe with ha:consitent_abi\u003dTrue|False extra spec defaulting to True so that it make the lives of tool vendors simpler since they can set the default to whatever they like without worring about breaking existing instnaces.\n\nthis is currenly just a good place to discuss the options and evaluate if changing the default in nova is the right approch and if not what considertion do we need to account for if we do this via installers.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"789de0451d4f18c5bfa28aed623a7eb93a495171","unresolved":false,"context_lines":[{"line_number":215,"context_line":"Stick with the legacy ``pc`` machine type as the default.  But that is"},{"line_number":216,"context_line":"helpful neither to Opertors nor from a long-term maintenance"},{"line_number":217,"context_line":"perspective.  So this is not a \"true alternative\" over the long term."},{"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":7,"id":"1f493fa4_b60a9a1c","line":218,"in_reply_to":"1f493fa4_aa47d376","updated":"2020-04-30 14:22:25.000000000","message":"Per-instance machine types is not just \"give more flexibility to operators to not have to set deployment-wide versioned machine types to ensure live migration compatibility.\"\n\nit is a hard requiremnt if we are to consider chaning the default\n\nif we dont we will break some people on upgrade unless the explcitly change the default back in the config to pc.\n\ntieing the machine type to the life time of the instance allows use to modify its default either in the code or via installers without worrigin if we will break existing instnaces.\n\nif we dont do that then you cannot safely change the default without potentally breaking instance that used image metadata data properties that are only supported with the pc machine_type like hw_vif_model\u003de1000 or operating systems like windows which will not be happy when the chipset and entire device tree changes.\n\nif you were using different machine_types in your nova.confs on different host you already have this porblem today which you can adress with host aggreates to a certain degree but that wont help you in this case if we proceed with changing the default in code.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":273,"context_line":"--------------"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"When cold-migrating guests from a host with ``pc`` to a Compute host"},{"line_number":276,"context_line":"with ``q35`` machine type: a few changes to bear in mind: IDE to SATA; a"},{"line_number":277,"context_line":"completely different guest PCI topology.  So this can impact those using"},{"line_number":278,"context_line":"device role tagging to identify PCI devices."},{"line_number":279,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_c0c7f263","line":276,"range":{"start_line":276,"start_character":57,"end_line":276,"end_character":69},"updated":"2020-04-27 15:20:58.000000000","message":"for config drive","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f2b4862616a45b0c0942deca4d24fa51e757900","unresolved":false,"context_lines":[{"line_number":279,"context_line":""},{"line_number":280,"context_line":"For live migration caveat, see the `Live migration and versioned machine"},{"line_number":281,"context_line":"types`_."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"Implementation"},{"line_number":284,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_c07ed2ad","line":282,"updated":"2020-04-27 15:20:58.000000000","message":"there are signifcatnly more issues then jsut this.\n\nfor one if we dont recored the current machine type of all instances and you used hw_vif_model\u003de1000 but did not set hw_machine_type\u003dpc then  when you upgrade after a hard reboot of the instance it will go to an error state.\n\nwhen using q35 the network interface will change from a pci deivce to a pcie device. hw_vif_model\u003de1000 is a pci device that cant be used in a pcie port so qemu/libvirt will refuse to boot the vm.\n\nfor q35 you need to use e1000e instead.\nthe e sufix being pcie \n\nsince that requires a rebuild to update the embedded metadata that is neither piratical or reasonable.\n\nso we need to ensure that we never break any exsiting instance after an upgrade.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"2a375a322453da78fc81af9ddae5fb123e608cf6","unresolved":false,"context_lines":[{"line_number":279,"context_line":""},{"line_number":280,"context_line":"For live migration caveat, see the `Live migration and versioned machine"},{"line_number":281,"context_line":"types`_."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"Implementation"},{"line_number":284,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_85a5c1a4","line":282,"in_reply_to":"1f493fa4_c07ed2ad","updated":"2020-04-29 15:45:24.000000000","message":"Right, will add a few more.  And call these out explicitly.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b9da105a1b62fe217dc01fc700524de22e374a4c","unresolved":false,"context_lines":[{"line_number":325,"context_line":"Documentation Impact"},{"line_number":326,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"Operations Guide needs to be updated."},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"References"},{"line_number":331,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_8b237905","line":328,"updated":"2020-04-24 13:36:56.000000000","message":"I\u0027d expand and emphasize this, because it\u0027s pretty damn important - if anyone is relying on the default machine type (which I agree they shouldn\u0027t be), this change needs to be communicated loudly and clearly.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ffa8d384f21af622f6ceb65eb3b789eb3157518d","unresolved":false,"context_lines":[{"line_number":325,"context_line":"Documentation Impact"},{"line_number":326,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"Operations Guide needs to be updated."},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"References"},{"line_number":331,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_b950465f","line":328,"in_reply_to":"1f493fa4_8b237905","updated":"2020-04-24 17:11:31.000000000","message":"Be assured, it is very much on my mind.  \n\nA good portion of the \"first principles\" documentation starts from the content in this spec.  Refer to these sections above\n\n- \"Purpose of the QEMU machine type\"\n- \"More on QEMU machine types\"\n- \"Live migration and versioned machine types\"\n\nThat content needs to be incorporated into the guides.  As they explain with a proper real-world example.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"b9da105a1b62fe217dc01fc700524de22e374a4c","unresolved":false,"context_lines":[{"line_number":330,"context_line":"References"},{"line_number":331,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":".. [0] http://git.openstack.org/cgit/openstack/tripleo-heat-templates/tree/deployment/nova/nova-compute-container-puppet.yaml#n232"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":".. [1] Update machine_type from \u0027i440fx\u0027 to \u0027q35\u0027; adjust for RHEL-8.1"},{"line_number":336,"context_line":"       -- https://review.opendev.org/#/c/716526/"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_40a31050","line":333,"updated":"2020-04-24 13:36:56.000000000","message":"nit: change this to the opendev URL, and use a specific commit/tag, otherwise this is a moving target - case in point, it\u0027s currently pointing not the the machine type, but to the migration SSH key stuff.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ffa8d384f21af622f6ceb65eb3b789eb3157518d","unresolved":false,"context_lines":[{"line_number":330,"context_line":"References"},{"line_number":331,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":".. [0] http://git.openstack.org/cgit/openstack/tripleo-heat-templates/tree/deployment/nova/nova-compute-container-puppet.yaml#n232"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":".. [1] Update machine_type from \u0027i440fx\u0027 to \u0027q35\u0027; adjust for RHEL-8.1"},{"line_number":336,"context_line":"       -- https://review.opendev.org/#/c/716526/"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f493fa4_19a33a51","line":333,"in_reply_to":"1f493fa4_40a31050","updated":"2020-04-24 17:11:31.000000000","message":"Yep, will do.  I\u0027m aware of the \"moving target\" problem; and hence I most times link to a commit; missed it this time.","commit_id":"02fb2b687eb90c06206dabd7ca76d1ba62064926"}]}
