)]}'
{"doc/source/admin/virtual-gpu.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Attaching virtual GPU devices to guests"},{"line_number":3,"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"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The virtual GPU feature in Nova allows to provide specific GPU types for"},{"line_number":6,"context_line":"instances using physical GPUs that can provide virtual devices."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"For example, a single `Intel\u0027s GVT-g`_  or a `NVIDIA GRID vGPU`_ physical"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_8ab36198","line":5,"range":{"start_line":5,"start_character":32,"end_line":5,"end_character":38},"updated":"2018-01-30 17:34:14.000000000","message":"nit: allows one, allows a deployment, something like that.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"For example, a single `Intel\u0027s GVT-g`_  or a `NVIDIA GRID vGPU`_ physical"},{"line_number":9,"context_line":"Graphics Processing Unit (pGPU) can be virtualized as multiple virtual Graphics"},{"line_number":10,"context_line":"Processing Units (vGPUs) if the hypervisor supports the driver and helps"},{"line_number":11,"context_line":"spawning guests using those virtual devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In order to enable such feature which highly depends on both the hypervisor,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_0a33d115","line":10,"range":{"start_line":10,"start_character":67,"end_line":10,"end_character":72},"updated":"2018-01-30 17:34:14.000000000","message":"Confused on the usage of \u0027helps\u0027 here. Maybe \"if the hypervisor supports the hardware driver and has the capability to create guests using those virtual devices.\"?","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Processing Units (vGPUs) if the hypervisor supports the driver and helps"},{"line_number":11,"context_line":"spawning guests using those virtual devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In order to enable such feature which highly depends on both the hypervisor,"},{"line_number":14,"context_line":"its version and the physical devices needed to be virtualized, a couple of"},{"line_number":15,"context_line":"steps need to be done at a configuration stage in Nova."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_ea3d45dd","line":13,"range":{"start_line":13,"start_character":19,"end_line":13,"end_character":23},"updated":"2018-01-30 17:34:14.000000000","message":"this feature?","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":11,"context_line":"spawning guests using those virtual devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In order to enable such feature which highly depends on both the hypervisor,"},{"line_number":14,"context_line":"its version and the physical devices needed to be virtualized, a couple of"},{"line_number":15,"context_line":"steps need to be done at a configuration stage in Nova."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"To enable virtual GPUs, follow the steps below:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_6a293599","line":14,"range":{"start_line":14,"start_character":65,"end_line":14,"end_character":71},"updated":"2018-01-30 17:34:14.000000000","message":"\"a few steps\" or just \"steps need to be taken\"","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"   .. code-block:: ini"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"      devices]"},{"line_number":38,"context_line":"      enabled_vgpu_types \u003d nvidia-35"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   .. warning::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_8a0fe135","line":37,"range":{"start_line":37,"start_character":6,"end_line":37,"end_character":14},"updated":"2018-01-30 17:34:14.000000000","message":"Missing [","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   .. warning::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"         For the moment, Nova only supports one single type. You can pass more"},{"line_number":43,"context_line":"         that one, but then only the first will be supported."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"   For knowing which specific type(s) to mention, please refer to `how to know"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_152a167e","line":42,"range":{"start_line":42,"start_character":9,"end_line":42,"end_character":23},"updated":"2018-01-30 17:34:14.000000000","message":"I\u0027d say, \"As of the Queens release\" since \u0027the moment\u0027 will get lost in time.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   .. warning::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"         For the moment, Nova only supports one single type. You can pass more"},{"line_number":43,"context_line":"         that one, but then only the first will be supported."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"   For knowing which specific type(s) to mention, please refer to `how to know"},{"line_number":46,"context_line":"   a GPU type`_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_6a02950d","line":43,"range":{"start_line":43,"start_character":9,"end_line":43,"end_character":13},"updated":"2018-01-30 17:34:14.000000000","message":"than","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":".. code-block:: console"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"   # openstack flavor set vgpu_1 --property \"resources:VGPU\u003d1\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"   .. warning::"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_f50bea20","line":57,"range":{"start_line":57,"start_character":3,"end_line":57,"end_character":4},"updated":"2018-01-30 17:34:14.000000000","message":"$ is what\u0027s normally used for CLI samples","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"   .. warning::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"         For the moment, all the hypervisors supporting virtual GPUs only"},{"line_number":62,"context_line":"         accept one single virtual GPU per instance."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_352f128f","line":61,"range":{"start_line":61,"start_character":9,"end_line":61,"end_character":23},"updated":"2018-01-30 17:34:14.000000000","message":"same","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":65,"context_line":"Create instances with virtual GPU devices"},{"line_number":66,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"The ``nova-scheduler`` selects a destination host that has vGPU devices"},{"line_number":69,"context_line":"available by calling at the Placement API for a specific VGPU resource class"},{"line_number":70,"context_line":"provided by compute nodes."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_357dd27e","line":68,"range":{"start_line":68,"start_character":6,"end_line":68,"end_character":20},"updated":"2018-01-30 17:34:14.000000000","message":"This would only work for the FilterScheduler since the CachingScheduler doesn\u0027t use the Placement service - not sure if it will in the future. Maybe make a note of that?","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":66,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"The ``nova-scheduler`` selects a destination host that has vGPU devices"},{"line_number":69,"context_line":"available by calling at the Placement API for a specific VGPU resource class"},{"line_number":70,"context_line":"provided by compute nodes."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_d554ae00","line":69,"range":{"start_line":69,"start_character":21,"end_line":69,"end_character":23},"updated":"2018-01-30 17:34:14.000000000","message":"nix this","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":74,"context_line":"   # openstack server create --flavor vgpu_1 --image cirros-0.3.5-x86_64-uec --wait test-vgpu"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"_`How to know a GPU type`"},{"line_number":78,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Depending on your hypervisor:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_154f766b","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":1},"updated":"2018-01-30 17:34:14.000000000","message":"You don\u0027t need this. Headings are implicit links.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Depending on your hypervisor:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"- for libvirt, you have to lookup sysfs like this"},{"line_number":83,"context_line":"  .."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_956b86b5","line":82,"range":{"start_line":82,"start_character":2,"end_line":82,"end_character":5},"updated":"2018-01-30 17:34:14.000000000","message":"For","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":82,"context_line":"- for libvirt, you have to lookup sysfs like this"},{"line_number":83,"context_line":"  .."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"- for XenServer, TODO."},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_755efa12","line":85,"updated":"2018-01-30 17:34:14.000000000","message":"Put this in a console block like above.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"- for XenServer, TODO."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"_`Caveats`"},{"line_number":90,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_159d36bb","line":87,"range":{"start_line":87,"start_character":2,"end_line":87,"end_character":5},"updated":"2018-01-30 17:34:14.000000000","message":"For","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"- for XenServer, TODO."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"_`Caveats`"},{"line_number":90,"context_line":"~~~~~~~~~~"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"For libvirt:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_953dc6c5","line":89,"range":{"start_line":89,"start_character":0,"end_line":89,"end_character":1},"updated":"2018-01-30 17:34:14.000000000","message":"same","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"For libvirt:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Suspending a guest having vGPUs doesn\u0027t work yet given a libvirt concern"},{"line_number":95,"context_line":"  (it can\u0027t hot-unplug mediated devices from a guest). Workarounds using"},{"line_number":96,"context_line":"  other instance actions (like snapshotting the instance or shelving it)"},{"line_number":97,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_f5a76a0a","line":94,"range":{"start_line":94,"start_character":67,"end_line":94,"end_character":74},"updated":"2018-01-30 17:34:14.000000000","message":"\"limitation\"; and link to the bz","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cd27d320139fec0b1f891af429962d653a72edaa","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"For libvirt:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Suspending a guest having vGPUs doesn\u0027t work yet given a libvirt concern"},{"line_number":95,"context_line":"  (it can\u0027t hot-unplug mediated devices from a guest). Workarounds using"},{"line_number":96,"context_line":"  other instance actions (like snapshotting the instance or shelving it)"},{"line_number":97,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_1ded588a","line":94,"range":{"start_line":94,"start_character":67,"end_line":94,"end_character":74},"in_reply_to":"5f93b717_f5a76a0a","updated":"2018-01-30 21:28:15.000000000","message":"libvirt doesn\u0027t have yet a BZ reporting that problem, but I\u0027ll ask the folks.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  other instance actions (like snapshotting the instance or shelving it)"},{"line_number":97,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"},{"line_number":98,"context_line":"  the instance, Nova will get an exception that will set the instance state"},{"line_number":99,"context_line":"  back to ACTIVE, and you can see the suspend action in os-instance-action"},{"line_number":100,"context_line":"  API be in ERROR."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_d57b4e78","line":99,"range":{"start_line":99,"start_character":53,"end_line":99,"end_character":74},"updated":"2018-01-30 17:34:14.000000000","message":"in the os-instance-actions API","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":97,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"},{"line_number":98,"context_line":"  the instance, Nova will get an exception that will set the instance state"},{"line_number":99,"context_line":"  back to ACTIVE, and you can see the suspend action in os-instance-action"},{"line_number":100,"context_line":"  API be in ERROR."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":103,"context_line":"  allocate those vGPUs to the instance (the instance is created without"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_35f072fe","line":100,"range":{"start_line":100,"start_character":12,"end_line":100,"end_character":17},"updated":"2018-01-30 17:34:14.000000000","message":"Error: https://github.com/openstack/nova/blob/master/nova/objects/instance_action.py#L160","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":99,"context_line":"  back to ACTIVE, and you can see the suspend action in os-instance-action"},{"line_number":100,"context_line":"  API be in ERROR."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":103,"context_line":"  allocate those vGPUs to the instance (the instance is created without"},{"line_number":104,"context_line":"  vGPU resources). We propose to work around this problem by rebuilding the"},{"line_number":105,"context_line":"  instance once it has been resized so then it will have allocated vGPUs."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"* Migrating an instance to another host will have the same problem than"},{"line_number":108,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_d5c90eac","line":105,"range":{"start_line":102,"start_character":2,"end_line":105,"end_character":73},"updated":"2018-01-30 17:34:14.000000000","message":"Are we tracking a bug for this so we can link it in here?","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cd27d320139fec0b1f891af429962d653a72edaa","unresolved":false,"context_lines":[{"line_number":99,"context_line":"  back to ACTIVE, and you can see the suspend action in os-instance-action"},{"line_number":100,"context_line":"  API be in ERROR."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":103,"context_line":"  allocate those vGPUs to the instance (the instance is created without"},{"line_number":104,"context_line":"  vGPU resources). We propose to work around this problem by rebuilding the"},{"line_number":105,"context_line":"  instance once it has been resized so then it will have allocated vGPUs."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"* Migrating an instance to another host will have the same problem than"},{"line_number":108,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_fd9c2c0f","line":105,"range":{"start_line":102,"start_character":2,"end_line":105,"end_character":73},"in_reply_to":"5f93b717_d5c90eac","updated":"2018-01-30 21:28:15.000000000","message":"You mean a LP bug here for Nova ? For sure, we can open Nova bugs for all the caveats here. Either way, migrate/resize share the same codepath in libvirt, so I guess it\u0027s only one bug needed. Can do in a doc follow-up","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":104,"context_line":"  vGPU resources). We propose to work around this problem by rebuilding the"},{"line_number":105,"context_line":"  instance once it has been resized so then it will have allocated vGPUs."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"* Migrating an instance to another host will have the same problem than"},{"line_number":108,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"},{"line_number":109,"context_line":"  it."},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_95c70697","line":107,"range":{"start_line":107,"start_character":67,"end_line":107,"end_character":71},"updated":"2018-01-30 17:34:14.000000000","message":"as","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"* Migrating an instance to another host will have the same problem than"},{"line_number":108,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"},{"line_number":109,"context_line":"  it."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* Rescuing an instance having vGPUs will mean that the rescue image won\u0027t"},{"line_number":112,"context_line":"  use the existing vGPUs. When unrescuing, it will use again the existing"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_55bdfeff","line":109,"range":{"start_line":109,"start_character":2,"end_line":109,"end_character":4},"updated":"2018-01-30 17:34:14.000000000","message":"it after the migration","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":114,"context_line":"  at all the allocated vGPUs when trying to find unallocated ones, there"},{"line_number":115,"context_line":"  could be a race condition if an instance is rescued at the moment a new"},{"line_number":116,"context_line":"  instance asking for vGPUs is created, because both instances could use"},{"line_number":117,"context_line":"  the same vGPUs. If you want to rescue an instance, make sure to disable"},{"line_number":118,"context_line":"  the host until we fix that in Nova."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* Mediated devices that are created by the libvirt driver are not persisted"},{"line_number":121,"context_line":"  upon reboot. Consequently, a guest startup would fail since the virtual"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_75ba7a0a","line":118,"range":{"start_line":117,"start_character":18,"end_line":118,"end_character":37},"updated":"2018-01-30 17:34:14.000000000","message":"Umm, the end user can\u0027t disable the host....we need something else here I think.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  the same vGPUs. If you want to rescue an instance, make sure to disable"},{"line_number":118,"context_line":"  the host until we fix that in Nova."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* Mediated devices that are created by the libvirt driver are not persisted"},{"line_number":121,"context_line":"  upon reboot. Consequently, a guest startup would fail since the virtual"},{"line_number":122,"context_line":"  device wouldn\u0027t exist. In order to prevent that issue, when restarting"},{"line_number":123,"context_line":"  the compute service, the libvirt driver now looks at all the guest XMLs"},{"line_number":124,"context_line":"  to check if they have mediated devices, and if the mediated device no"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_353e328c","line":121,"range":{"start_line":120,"start_character":2,"end_line":121,"end_character":13},"updated":"2018-01-30 17:34:14.000000000","message":"Is there a libvirt/qemu bz for tracking this? If so, link it in for tracking.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cd27d320139fec0b1f891af429962d653a72edaa","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  the same vGPUs. If you want to rescue an instance, make sure to disable"},{"line_number":118,"context_line":"  the host until we fix that in Nova."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* Mediated devices that are created by the libvirt driver are not persisted"},{"line_number":121,"context_line":"  upon reboot. Consequently, a guest startup would fail since the virtual"},{"line_number":122,"context_line":"  device wouldn\u0027t exist. In order to prevent that issue, when restarting"},{"line_number":123,"context_line":"  the compute service, the libvirt driver now looks at all the guest XMLs"},{"line_number":124,"context_line":"  to check if they have mediated devices, and if the mediated device no"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_b86b12b5","line":121,"range":{"start_line":120,"start_character":2,"end_line":121,"end_character":13},"in_reply_to":"5f93b717_353e328c","updated":"2018-01-30 21:28:15.000000000","message":"None popping off my head. It just came from words of mouth, like most of the issues I discovered by myself when playing. Soooo kewl.\n\nThe only trace I got from that is an old thread https://www.redhat.com/archives/libvir-list/2017-January/msg00287.html\n\nThere could be better trackers than that, again, I\u0027ll chase the folks.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. Links"},{"line_number":129,"context_line":".. _Intel\u0027s GVT-g: https://01.org/igvt-g"},{"line_number":130,"context_line":".. _NVIDIA GRID vGPU: http://docs.nvidia.com/grid/5.0/pdf/grid-vgpu-user-guide.pdf"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5f93b717_6aa61556","line":129,"range":{"start_line":129,"start_character":9,"end_line":129,"end_character":11},"updated":"2018-01-30 17:34:14.000000000","message":"drop this","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Processing Units (vGPUs) if the hypervisor supports the hardware driver and has"},{"line_number":11,"context_line":"the capability to create guests using those virtual devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In order to enable this feature which highly depends on both the hypervisor,"},{"line_number":14,"context_line":"its version and the physical devices needed to be virtualized, steps need to be"},{"line_number":15,"context_line":"taken at a configuration stage in Nova."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"To enable virtual GPUs, follow the steps below:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"#. Enable GPU types (Compute)"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_54ce4082","line":17,"range":{"start_line":13,"start_character":0,"end_line":17,"end_character":47},"updated":"2018-01-31 18:51:14.000000000","message":"Kinda awkward English, how about:\n\n\"This feature is highly dependant on the hypervisor, its version and the physical devices [GPUs?] present in the host(s).\"\n\nAnd then just continue straight into \"To enable virtual GPUs in Nova, follow these steps:\"","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Processing Units (vGPUs) if the hypervisor supports the hardware driver and has"},{"line_number":11,"context_line":"the capability to create guests using those virtual devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"In order to enable this feature which highly depends on both the hypervisor,"},{"line_number":14,"context_line":"its version and the physical devices needed to be virtualized, steps need to be"},{"line_number":15,"context_line":"taken at a configuration stage in Nova."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"To enable virtual GPUs, follow the steps below:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"#. Enable GPU types (Compute)"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_9ef1426e","line":17,"range":{"start_line":13,"start_character":0,"end_line":17,"end_character":47},"in_reply_to":"5f93b717_54ce4082","updated":"2018-01-31 19:19:04.000000000","message":"Done","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Enable GPU types (Compute)"},{"line_number":29,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   Edit ``/etc/nova/nova.conf``:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_9402886e","line":30,"updated":"2018-01-31 18:51:14.000000000","message":"I\u0027d be more specific that this configuration is needed only on the compute nodes.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Enable GPU types (Compute)"},{"line_number":29,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   Edit ``/etc/nova/nova.conf``:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_bec43ef6","line":30,"in_reply_to":"5f93b717_9402886e","updated":"2018-01-31 19:19:04.000000000","message":"That\u0027s why \"(Compute)\" is in the title of the section I think.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Enable GPU types (Compute)"},{"line_number":29,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   Edit ``/etc/nova/nova.conf``:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_014393b0","line":30,"in_reply_to":"5f93b717_bec43ef6","updated":"2018-02-01 01:37:02.000000000","message":"Yeah, I was fishing for even more explicitness. Not gonna argue over this :)","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   .. warning::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"         As of the Queens release, Nova only supports one single type. You can"},{"line_number":43,"context_line":"         pass more than one, but then only the first will be supported."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"   For knowing which specific type(s) to mention, please refer to `how to know"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_5e6dfac9","line":42,"range":{"start_line":42,"start_character":54,"end_line":42,"end_character":69},"updated":"2018-01-31 18:51:14.000000000","message":"Meaning that while enabled_vgpu_types is a list, Nova will only consider the first element, right? It doesn\u0027t matter what the type actually is, as long as it appears in the compute\u0027s mdev sysfs.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   .. warning::"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"         As of the Queens release, Nova only supports one single type. You can"},{"line_number":43,"context_line":"         pass more than one, but then only the first will be supported."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"   For knowing which specific type(s) to mention, please refer to `how to know"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_fea5e647","line":42,"range":{"start_line":42,"start_character":54,"end_line":42,"end_character":69},"in_reply_to":"5f93b717_5e6dfac9","updated":"2018-01-31 19:19:04.000000000","message":"I think that\u0027s correct.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":46,"context_line":"   a GPU type`_."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"#. Restart the ``nova-compute`` service."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Configure a flavor (Controller)"},{"line_number":51,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_7e59d632","line":49,"updated":"2018-01-31 18:51:14.000000000","message":"I had a bunch of nits in here, but I think I have a more pressing higher level question. The vGPU types aren\u0027t exposed anywhere in the API, IIUC. They\u0027re just like the PCI whitelists, for deciding which GPUs the operator exposes to tenant instances. It\u0027s not like a user can choose between a flavor with a NVIDIA with 8 cores or an Intel with 2 cores (yet). They can only ask for an instance with a generic VGPU?\n\nIf that\u0027s all correct, I think the answers to those questions should be reflected in this section, somehow.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":46,"context_line":"   a GPU type`_."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"#. Restart the ``nova-compute`` service."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Configure a flavor (Controller)"},{"line_number":51,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_5e43ba6c","line":49,"in_reply_to":"5f93b717_7e59d632","updated":"2018-01-31 19:19:04.000000000","message":"Yeah, the operator would have to do something with host aggregates to tie a vgpu-enabled feature to hosts that support them, and if they want to get specific about the type of gpu, they could create separate flavors and further slice up the hosts into aggregates.\n\nI could make a comment to that effect and link to the aggregates doc?\n\nhttps://docs.openstack.org/nova/latest/user/aggregates.html\n\nThat seems more appropriate for the flavor section below so will add something there.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":".. note::"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      As of the Queens release, only the `FilterScheduler` driver uses"},{"line_number":79,"context_line":"      the Placement API, hence that feature only available for it."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_344054a5","line":78,"range":{"start_line":78,"start_character":59,"end_line":78,"end_character":65},"updated":"2018-01-31 18:51:14.000000000","message":"I\u0027d specify \"scheduler driver\"","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d18984609dbe039d73430c6e4b26609092d3aa02","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":".. note::"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      As of the Queens release, only the `FilterScheduler` driver uses"},{"line_number":79,"context_line":"      the Placement API, hence that feature only available for it."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_6be7d6ad","line":78,"range":{"start_line":78,"start_character":41,"end_line":78,"end_character":42},"updated":"2018-01-31 18:26:26.000000000","message":"Not sure this has any formatting effect, should probably use *FilterScheduler*.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":".. note::"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      As of the Queens release, only the `FilterScheduler` driver uses"},{"line_number":79,"context_line":"      the Placement API, hence that feature only available for it."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_9e32a20f","line":78,"range":{"start_line":78,"start_character":59,"end_line":78,"end_character":65},"in_reply_to":"5f93b717_344054a5","updated":"2018-01-31 19:19:04.000000000","message":"Done","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4b9bb9cd1b36eaa028f7d2ad75d85b3ad2e67a05","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":".. note::"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      As of the Queens release, only the `FilterScheduler` driver uses"},{"line_number":79,"context_line":"      the Placement API, hence that feature only available for it."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_5e1f3a5a","line":78,"range":{"start_line":78,"start_character":41,"end_line":78,"end_character":42},"in_reply_to":"5f93b717_6be7d6ad","updated":"2018-01-31 18:32:30.000000000","message":"I guess it does work:\n\nhttp://logs.openstack.org/66/539266/2/check/build-openstack-sphinx-docs/f7a1712/html/admin/virtual-gpu.html#create-instances-with-virtual-gpu-devices","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d18984609dbe039d73430c6e4b26609092d3aa02","unresolved":false,"context_lines":[{"line_number":76,"context_line":".. note::"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      As of the Queens release, only the `FilterScheduler` driver uses"},{"line_number":79,"context_line":"      the Placement API, hence that feature only available for it."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"How to know a GPU type"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_8beca28f","line":79,"range":{"start_line":79,"start_character":23,"end_line":79,"end_character":66},"updated":"2018-01-31 18:26:26.000000000","message":"I\u0027d remove this part.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":76,"context_line":".. note::"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      As of the Queens release, only the `FilterScheduler` driver uses"},{"line_number":79,"context_line":"      the Placement API, hence that feature only available for it."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"How to know a GPU type"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_3405b446","line":79,"range":{"start_line":79,"start_character":25,"end_line":79,"end_character":65},"updated":"2018-01-31 18:51:14.000000000","message":"Slightly awkward English - also, the only other scheduler driver is caching, right? So maybe rephrase as \"[... API]; the caching scheduler does not support vGPUS.\"","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":76,"context_line":".. note::"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"      As of the Queens release, only the `FilterScheduler` driver uses"},{"line_number":79,"context_line":"      the Placement API, hence that feature only available for it."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"How to know a GPU type"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_7e3d56db","line":79,"range":{"start_line":79,"start_character":25,"end_line":79,"end_character":65},"in_reply_to":"5f93b717_3405b446","updated":"2018-01-31 19:19:04.000000000","message":"You can have an out of tree scheduler driver...and there is technically the chance driver too...","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":85,"context_line":"Depending on your hypervisor:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"- For libvirt, virtual GPUs are seen as mediated devices. Physical PCI devices"},{"line_number":88,"context_line":"  (the graphic card here) supporting virtual GPUs will then propose mediated"},{"line_number":89,"context_line":"  device (mdev) types. Since mediated devices are supported by the Linux kernel"},{"line_number":90,"context_line":"  thru sysfs files, you can see the required properties like this :"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_8b2a6229","line":88,"range":{"start_line":88,"start_character":55,"end_line":88,"end_character":59},"updated":"2018-01-31 18:51:14.000000000","message":"nit: I don\u0027t think we this word here, just \"will propose\"","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":85,"context_line":"Depending on your hypervisor:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"- For libvirt, virtual GPUs are seen as mediated devices. Physical PCI devices"},{"line_number":88,"context_line":"  (the graphic card here) supporting virtual GPUs will then propose mediated"},{"line_number":89,"context_line":"  device (mdev) types. Since mediated devices are supported by the Linux kernel"},{"line_number":90,"context_line":"  thru sysfs files, you can see the required properties like this :"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_610cd7eb","line":88,"range":{"start_line":88,"start_character":55,"end_line":88,"end_character":59},"in_reply_to":"5f93b717_8b2a6229","updated":"2018-01-31 19:19:04.000000000","message":"Done","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":87,"context_line":"- For libvirt, virtual GPUs are seen as mediated devices. Physical PCI devices"},{"line_number":88,"context_line":"  (the graphic card here) supporting virtual GPUs will then propose mediated"},{"line_number":89,"context_line":"  device (mdev) types. Since mediated devices are supported by the Linux kernel"},{"line_number":90,"context_line":"  thru sysfs files, you can see the required properties like this :"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  .. code-block:: console"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_0b1652f2","line":90,"range":{"start_line":90,"start_character":56,"end_line":90,"end_character":67},"updated":"2018-01-31 18:51:14.000000000","message":"Awkward English, \"as follows:\" would work better.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d18984609dbe039d73430c6e4b26609092d3aa02","unresolved":false,"context_lines":[{"line_number":87,"context_line":"- For libvirt, virtual GPUs are seen as mediated devices. Physical PCI devices"},{"line_number":88,"context_line":"  (the graphic card here) supporting virtual GPUs will then propose mediated"},{"line_number":89,"context_line":"  device (mdev) types. Since mediated devices are supported by the Linux kernel"},{"line_number":90,"context_line":"  thru sysfs files, you can see the required properties like this :"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  .. code-block:: console"},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_4b021a3f","line":90,"range":{"start_line":90,"start_character":2,"end_line":90,"end_character":6},"updated":"2018-01-31 18:26:26.000000000","message":"through","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  .. code-block:: console"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"     $ ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  Note that the current libvirt API doesn\u0027t provide a way to access that"},{"line_number":97,"context_line":"  information."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_4be53a08","line":94,"updated":"2018-01-31 18:51:14.000000000","message":"I think an example of the output (and maybe an interpretation of what it means) would be useful here.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  .. code-block:: console"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"     $ ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  Note that the current libvirt API doesn\u0027t provide a way to access that"},{"line_number":97,"context_line":"  information."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_9e1b827f","line":94,"in_reply_to":"5f93b717_4be53a08","updated":"2018-01-31 19:19:04.000000000","message":"Sylvain will have to provide that...","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d18984609dbe039d73430c6e4b26609092d3aa02","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"     $ ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  Note that the current libvirt API doesn\u0027t provide a way to access that"},{"line_number":97,"context_line":"  information."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- For XenServer, TODO."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_2b8a2ebe","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":36},"updated":"2018-01-31 18:26:26.000000000","message":"nit: we could at least say something like \"As of libvirt 3.10\" or something similar. Looks like 4.0 is the latest libvirt release.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4b9bb9cd1b36eaa028f7d2ad75d85b3ad2e67a05","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"     $ ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  Note that the current libvirt API doesn\u0027t provide a way to access that"},{"line_number":97,"context_line":"  information."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- For XenServer, TODO."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_1e42123f","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":36},"in_reply_to":"5f93b717_2b8a2ebe","updated":"2018-01-31 18:32:30.000000000","message":"Actually maybe we should just drop this sentence altogether, I\u0027m not sure it matters for the admin guide.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For libvirt:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* Suspending a guest having vGPUs doesn\u0027t work yet given a libvirt limitation"},{"line_number":111,"context_line":"  (it can\u0027t hot-unplug mediated devices from a guest). Workarounds using"},{"line_number":112,"context_line":"  other instance actions (like snapshotting the instance or shelving it)"},{"line_number":113,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_2bd1ce23","line":110,"range":{"start_line":110,"start_character":21,"end_line":110,"end_character":27},"updated":"2018-01-31 18:51:14.000000000","message":"nit: \"that has\"","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For libvirt:"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* Suspending a guest having vGPUs doesn\u0027t work yet given a libvirt limitation"},{"line_number":111,"context_line":"  (it can\u0027t hot-unplug mediated devices from a guest). Workarounds using"},{"line_number":112,"context_line":"  other instance actions (like snapshotting the instance or shelving it)"},{"line_number":113,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_0bc4125e","line":110,"range":{"start_line":110,"start_character":42,"end_line":110,"end_character":58},"updated":"2018-01-31 18:51:14.000000000","message":"nit: \"yet work because of a\"","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":110,"context_line":"* Suspending a guest having vGPUs doesn\u0027t work yet given a libvirt limitation"},{"line_number":111,"context_line":"  (it can\u0027t hot-unplug mediated devices from a guest). Workarounds using"},{"line_number":112,"context_line":"  other instance actions (like snapshotting the instance or shelving it)"},{"line_number":113,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"},{"line_number":114,"context_line":"  the instance, Nova will get an exception that will set the instance state"},{"line_number":115,"context_line":"  back to ACTIVE, and you can see the suspend action in the os-instance-actions"},{"line_number":116,"context_line":"  API be in Error."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_cbbe2ab3","line":113,"range":{"start_line":113,"start_character":57,"end_line":113,"end_character":61},"updated":"2018-01-31 18:51:14.000000000","message":"Awkward English: \"attempts\"","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":111,"context_line":"  (it can\u0027t hot-unplug mediated devices from a guest). Workarounds using"},{"line_number":112,"context_line":"  other instance actions (like snapshotting the instance or shelving it)"},{"line_number":113,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"},{"line_number":114,"context_line":"  the instance, Nova will get an exception that will set the instance state"},{"line_number":115,"context_line":"  back to ACTIVE, and you can see the suspend action in the os-instance-actions"},{"line_number":116,"context_line":"  API be in Error."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":119,"context_line":"  allocate those vGPUs to the instance (the instance is created without"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_4bf8da79","line":116,"range":{"start_line":114,"start_character":16,"end_line":116,"end_character":18},"updated":"2018-01-31 18:51:14.000000000","message":"Bit awkward. If I\u0027m reading that right, I would rephrase is as follows:\n\n\"Librvirt will throw an exception that will cause to set the instance back to ACTIVE. The suspect action in the os-instance-actions API will have an ERROR state.\"","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"762d5f21e220f426a6f41222bf6c1f84d49a89c7","unresolved":false,"context_lines":[{"line_number":111,"context_line":"  (it can\u0027t hot-unplug mediated devices from a guest). Workarounds using"},{"line_number":112,"context_line":"  other instance actions (like snapshotting the instance or shelving it)"},{"line_number":113,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"},{"line_number":114,"context_line":"  the instance, Nova will get an exception that will set the instance state"},{"line_number":115,"context_line":"  back to ACTIVE, and you can see the suspend action in the os-instance-actions"},{"line_number":116,"context_line":"  API be in Error."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":119,"context_line":"  allocate those vGPUs to the instance (the instance is created without"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_a1eadf0b","line":116,"range":{"start_line":114,"start_character":16,"end_line":116,"end_character":18},"in_reply_to":"5f93b717_4bf8da79","updated":"2018-01-31 19:05:42.000000000","message":"\u003e Libvirt will throw an exception\n\nDammit, no, it most definitely will not. \"Return/report an error\"?","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":111,"context_line":"  (it can\u0027t hot-unplug mediated devices from a guest). Workarounds using"},{"line_number":112,"context_line":"  other instance actions (like snapshotting the instance or shelving it)"},{"line_number":113,"context_line":"  are recommended until libvirt supports that. If a user asks to suspend"},{"line_number":114,"context_line":"  the instance, Nova will get an exception that will set the instance state"},{"line_number":115,"context_line":"  back to ACTIVE, and you can see the suspend action in the os-instance-actions"},{"line_number":116,"context_line":"  API be in Error."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":119,"context_line":"  allocate those vGPUs to the instance (the instance is created without"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_01171347","line":116,"range":{"start_line":114,"start_character":16,"end_line":116,"end_character":18},"in_reply_to":"5f93b717_4bf8da79","updated":"2018-01-31 19:19:04.000000000","message":"libvirt doesn\u0027t raise the exception, the driver does.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":119,"context_line":"  allocate those vGPUs to the instance (the instance is created without"},{"line_number":120,"context_line":"  vGPU resources). We propose to work around this problem by rebuilding the"},{"line_number":121,"context_line":"  instance once it has been resized so then it will have allocated vGPUs."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"* Migrating an instance to another host will have the same problem as"},{"line_number":124,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_eb73e614","line":121,"range":{"start_line":120,"start_character":19,"end_line":121,"end_character":73},"updated":"2018-01-31 18:51:14.000000000","message":"Bit awkward. I propose: \"The proposed workaround is to rebuild the instance after resizing it. The rebuild operation allocates vGPUS to the instance.\"","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":120,"context_line":"  vGPU resources). We propose to work around this problem by rebuilding the"},{"line_number":121,"context_line":"  instance once it has been resized so then it will have allocated vGPUs."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"* Migrating an instance to another host will have the same problem as"},{"line_number":124,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"},{"line_number":125,"context_line":"  it after the migration."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_6bcef62d","line":123,"range":{"start_line":123,"start_character":2,"end_line":123,"end_character":11},"updated":"2018-01-31 18:51:14.000000000","message":"Cold migration, presumably? I\u0027m assuming live migration isn\u0027t supported.\n\nTangential question: do we fail fast in the API if we attempt a live migration with vGPUs?","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":120,"context_line":"  vGPU resources). We propose to work around this problem by rebuilding the"},{"line_number":121,"context_line":"  instance once it has been resized so then it will have allocated vGPUs."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"* Migrating an instance to another host will have the same problem as"},{"line_number":124,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"},{"line_number":125,"context_line":"  it after the migration."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_a185ff5b","line":123,"range":{"start_line":123,"start_character":2,"end_line":123,"end_character":11},"in_reply_to":"5f93b717_6bcef62d","updated":"2018-01-31 19:19:04.000000000","message":"\u003e Tangential question: do we fail fast in the API if we attempt a live migration with vGPUs?\n\nDon\u0027t know, but probably not. Best guess would be if we can check in the pre-live migration checks and fail early, but as of microversion 2.34 those pre-live migration checks are asynchronous to the API user:\n\nhttps://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id31\n\nSo if we failed, the user already got a 202.\n\nWith placement, we might fail to find a destination host for the live migration that can support VGPU...but even if it does, it doesn\u0027t know the type since that\u0027s config-based information in the guest, so we could potentially try live migrating a guest from one vgpu type to another which would be wrong.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3bacdab61e0933277828f2a6fdd0b9031dbc2400","unresolved":false,"context_lines":[{"line_number":120,"context_line":"  vGPU resources). We propose to work around this problem by rebuilding the"},{"line_number":121,"context_line":"  instance once it has been resized so then it will have allocated vGPUs."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"* Migrating an instance to another host will have the same problem as"},{"line_number":124,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"},{"line_number":125,"context_line":"  it after the migration."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_82078a18","line":123,"range":{"start_line":123,"start_character":2,"end_line":123,"end_character":11},"in_reply_to":"5f93b717_a185ff5b","updated":"2018-02-01 15:10:56.000000000","message":"That\u0027s an excellent question. In theory, the live migration will *NOT* fail and will just migrate the instance *without vGPUs* like a cold migration.\nTo be clear, that hasn\u0027t been tested yet, and that\u0027s one of the reasons I\u0027m working on providing func tests.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":124,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"},{"line_number":125,"context_line":"  it after the migration."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* Rescuing an instance having vGPUs will mean that the rescue image won\u0027t"},{"line_number":128,"context_line":"  use the existing vGPUs. When unrescuing, it will use again the existing"},{"line_number":129,"context_line":"  vGPUs that were allocated to the instance. That said, given Nova lookups"},{"line_number":130,"context_line":"  at all the allocated vGPUs when trying to find unallocated ones, there"},{"line_number":131,"context_line":"  could be a race condition if an instance is rescued at the moment a new"},{"line_number":132,"context_line":"  instance asking for vGPUs is created, because both instances could use"},{"line_number":133,"context_line":"  the same vGPUs. A recommended solution for end-users would be to rebuild the"},{"line_number":134,"context_line":"  instance right after the unrescue so that it would again verify the existing"},{"line_number":135,"context_line":"  mediated devices."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* Mediated devices that are created by the libvirt driver are not persisted"},{"line_number":138,"context_line":"  upon reboot. Consequently, a guest startup would fail since the virtual"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_de458ab5","line":135,"range":{"start_line":127,"start_character":2,"end_line":135,"end_character":19},"updated":"2018-01-31 18:51:14.000000000","message":"So if I understand this correctly, an instance being rescued loses its \"claim\" to its vGPUs, and another instance could steal those while the first one is being rescued.\n\nMaybe we could write something like: \"Rescue images do not use vGPUs. An instance being rescued does not keep its vGPUs during rescue. During that time, another instance can receive those vGPUs. This is a known issue. The recommended workaround is to rebuild an instance immediately after rescue.\"\n\nThat being said, rebuilding the rescued instance only helps if there are other free vGPUs on the host, right? If no more are left because there were all given away (some to that rogue new instance that store the rescue vGPUs), we\u0027re still screwed? Maybe add this to the paragraph?","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"e7ab339c633f5ac41a5fe83aab42455380264388","unresolved":false,"context_lines":[{"line_number":134,"context_line":"  instance right after the unrescue so that it would again verify the existing"},{"line_number":135,"context_line":"  mediated devices."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* Mediated devices that are created by the libvirt driver are not persisted"},{"line_number":138,"context_line":"  upon reboot. Consequently, a guest startup would fail since the virtual"},{"line_number":139,"context_line":"  device wouldn\u0027t exist. In order to prevent that issue, when restarting"},{"line_number":140,"context_line":"  the compute service, the libvirt driver now looks at all the guest XMLs"},{"line_number":141,"context_line":"  to check if they have mediated devices, and if the mediated device no"},{"line_number":142,"context_line":"  longer exists, then Nova recreates it by using the same UUID."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"For Xen:"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_3ee58e09","line":142,"range":{"start_line":137,"start_character":2,"end_line":142,"end_character":63},"updated":"2018-01-31 18:51:14.000000000","message":"I had a couple of nits here, but the larger question is this is all transparent (assuming it works correctly). Ie, the operators don\u0027t need to care that mediated devices aren\u0027t persisted across reboots if Nova recreates them as needed? So maybe I\u0027d drop this paragraph entirely?","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":134,"context_line":"  instance right after the unrescue so that it would again verify the existing"},{"line_number":135,"context_line":"  mediated devices."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* Mediated devices that are created by the libvirt driver are not persisted"},{"line_number":138,"context_line":"  upon reboot. Consequently, a guest startup would fail since the virtual"},{"line_number":139,"context_line":"  device wouldn\u0027t exist. In order to prevent that issue, when restarting"},{"line_number":140,"context_line":"  the compute service, the libvirt driver now looks at all the guest XMLs"},{"line_number":141,"context_line":"  to check if they have mediated devices, and if the mediated device no"},{"line_number":142,"context_line":"  longer exists, then Nova recreates it by using the same UUID."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"For Xen:"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5f93b717_21decf6c","line":142,"range":{"start_line":137,"start_character":2,"end_line":142,"end_character":63},"in_reply_to":"5f93b717_3ee58e09","updated":"2018-01-31 19:19:04.000000000","message":"Yes I think less information that the operator needs to read about the better, so I\u0027ll remove this.","commit_id":"9a50a63af3a450c55233ed2a1f067676de6acca4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4ed57d0420f74400b374e3c694753c94c8222722","unresolved":false,"context_lines":[{"line_number":118,"context_line":"  the instance to be set back to ACTIVE. The ``suspend`` action in the"},{"line_number":119,"context_line":"  ``os-instance-actions`` API will have an *Error* state."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"* Rescue images do not use vGPUs. An instance being rescued does not keep its"},{"line_number":122,"context_line":"  vGPUs during rescue. During that time, another instance can receive those"},{"line_number":123,"context_line":"  vGPUs. This is a known issue. The recommended workaround is to rebuild an"},{"line_number":124,"context_line":"  instance immediately after rescue. That being said, rebuilding the rescued"},{"line_number":125,"context_line":"  instance only helps if there are other free vGPUs on the host."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"* Cold migrating an instance to another host will have the same problem as"},{"line_number":128,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f93b717_61e4d7e0","line":125,"range":{"start_line":121,"start_character":2,"end_line":125,"end_character":64},"updated":"2018-01-31 19:19:04.000000000","message":"Crap this is wrong, should be for resize.","commit_id":"9e24984bec7abbff73ad4024275a913095034b7b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cedad53471178ea49a6b944d9b127b57730e607","unresolved":false,"context_lines":[{"line_number":1,"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"},{"line_number":2,"context_line":"Attaching virtual GPU devices to guests"},{"line_number":3,"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"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The virtual GPU feature in Nova allows a deployment to provide specific GPU"},{"line_number":6,"context_line":"types for instances using physical GPUs that can provide virtual devices."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_1778b5c1","line":4,"updated":"2018-01-31 20:59:26.000000000","message":"Considering the number and severity of caveats and limitations, have we considered declaring this feature to be experimental for Queens?\n\n[Later] Oh, I see that\u0027s been done in the matrix.  Should the same be mentioned here?","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"23ca66c8f7eb28c56991bc0b6c6582afbf3cd80c","unresolved":false,"context_lines":[{"line_number":1,"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"},{"line_number":2,"context_line":"Attaching virtual GPU devices to guests"},{"line_number":3,"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"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The virtual GPU feature in Nova allows a deployment to provide specific GPU"},{"line_number":6,"context_line":"types for instances using physical GPUs that can provide virtual devices."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_f28c37d8","line":4,"in_reply_to":"5f93b717_126e832e","updated":"2018-01-31 21:41:00.000000000","message":"\u003e I struggle with saying that here since (1) it could rot over time,\n \u003e i.e. if we say it\u0027s experimental in queens, does that mean it\u0027s not\n \u003e experimental in rocky? What is the criteria for not being\n \u003e experimental? Probably fixing the caveats I guess. And (2) I expect\n \u003e it\u0027s up to the deployer to determine based on their reading of the\n \u003e caveats, risk tolerance, and own testing if this is OK for them\n \u003e before they expose it to user.\n\nAll this makes sense - and applies just as well to the \u0027maturity\u003dexperimental\u0027 status declared in the feature matrix file.  I.e. what motivated us to declare it as such in there, and what\u0027s the plan for moving it forward?\n\n \u003e Now if we wanted to say something to the effect of, we don\u0027t have\n \u003e continuous integration testing with a hardware environment that has\n \u003e virtual GPUs and therefore it\u0027s considered experimental, I\u0027d be OK\n \u003e with that.\n\nSure, that\u0027d be cool.\n\nI was really just posing the question to provoke thought.  If we\u0027re okay with what we\u0027ve got, so be it.","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"be4961e3dd7455acf1392dd57aa3497041f6d01f","unresolved":false,"context_lines":[{"line_number":1,"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"},{"line_number":2,"context_line":"Attaching virtual GPU devices to guests"},{"line_number":3,"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"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The virtual GPU feature in Nova allows a deployment to provide specific GPU"},{"line_number":6,"context_line":"types for instances using physical GPUs that can provide virtual devices."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_126e832e","line":4,"in_reply_to":"5f93b717_1778b5c1","updated":"2018-01-31 21:31:52.000000000","message":"I struggle with saying that here since (1) it could rot over time, i.e. if we say it\u0027s experimental in queens, does that mean it\u0027s not experimental in rocky? What is the criteria for not being experimental? Probably fixing the caveats I guess. And (2) I expect it\u0027s up to the deployer to determine based on their reading of the caveats, risk tolerance, and own testing if this is OK for them before they expose it to user.\n\nNow if we wanted to say something to the effect of, we don\u0027t have continuous integration testing with a hardware environment that has virtual GPUs and therefore it\u0027s considered experimental, I\u0027d be OK with that.","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbdad3f8521d013d1e9619df9f8fc4c4dcbc72c2","unresolved":false,"context_lines":[{"line_number":1,"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"},{"line_number":2,"context_line":"Attaching virtual GPU devices to guests"},{"line_number":3,"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"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"The virtual GPU feature in Nova allows a deployment to provide specific GPU"},{"line_number":6,"context_line":"types for instances using physical GPUs that can provide virtual devices."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_cd32baf2","line":4,"in_reply_to":"5f93b717_f28c37d8","updated":"2018-01-31 21:49:34.000000000","message":"Done","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cedad53471178ea49a6b944d9b127b57730e607","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Processing Units (vGPUs) if the hypervisor supports the hardware driver and has"},{"line_number":11,"context_line":"the capability to create guests using those virtual devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature is highly dependant on the hypervisor, its version and the"},{"line_number":14,"context_line":"physical devices present on the host."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"To enable virtual GPUs, follow the steps below:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_37261117","line":13,"range":{"start_line":13,"start_character":23,"end_line":13,"end_character":32},"updated":"2018-01-31 20:59:26.000000000","message":"dependent [1]\n\n[1] http://www.grammar-monster.com/easily_confused/dependant_dependent.htm","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbdad3f8521d013d1e9619df9f8fc4c4dcbc72c2","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Processing Units (vGPUs) if the hypervisor supports the hardware driver and has"},{"line_number":11,"context_line":"the capability to create guests using those virtual devices."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature is highly dependant on the hypervisor, its version and the"},{"line_number":14,"context_line":"physical devices present on the host."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"To enable virtual GPUs, follow the steps below:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_8d4ef26c","line":13,"range":{"start_line":13,"start_character":23,"end_line":13,"end_character":32},"in_reply_to":"5f93b717_37261117","updated":"2018-01-31 21:49:34.000000000","message":"Done","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cedad53471178ea49a6b944d9b127b57730e607","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"To enable virtual GPUs, follow the steps below:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"#. Enable GPU types (Compute)"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"#. Configure a flavor (Controller)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":".. note::"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_376b711e","line":20,"range":{"start_line":18,"start_character":3,"end_line":20,"end_character":34},"updated":"2018-01-31 20:59:26.000000000","message":"Not hugely important since they\u0027re right below, but these could be links.","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbdad3f8521d013d1e9619df9f8fc4c4dcbc72c2","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"To enable virtual GPUs, follow the steps below:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"#. Enable GPU types (Compute)"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"#. Configure a flavor (Controller)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":".. note::"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_ad53ae16","line":20,"range":{"start_line":18,"start_character":3,"end_line":20,"end_character":34},"in_reply_to":"5f93b717_376b711e","updated":"2018-01-31 21:49:34.000000000","message":"Done","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cedad53471178ea49a6b944d9b127b57730e607","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Enable GPU types (Compute)"},{"line_number":28,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"   Edit ``/etc/nova/nova.conf``:"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_97636542","line":30,"range":{"start_line":30,"start_character":3,"end_line":30,"end_character":25},"updated":"2018-01-31 20:59:26.000000000","message":"Could you be more specific, specifically about specificity and specification?","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbdad3f8521d013d1e9619df9f8fc4c4dcbc72c2","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Enable GPU types (Compute)"},{"line_number":28,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"   Edit ``/etc/nova/nova.conf``:"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_6d592633","line":30,"range":{"start_line":30,"start_character":3,"end_line":30,"end_character":25},"in_reply_to":"5f93b717_97636542","updated":"2018-01-31 21:49:34.000000000","message":"\u003e Could you be more specific, specifically about specificity and\n \u003e specification?\n\nCan\u0027t possibly be anymore specific, no.","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cedad53471178ea49a6b944d9b127b57730e607","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      [devices]"},{"line_number":37,"context_line":"      enabled_vgpu_types \u003d nvidia-35"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"   .. warning::"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"         As of the Queens release, Nova only supports one single type. You can"},{"line_number":42,"context_line":"         pass more than one, but then only the first will be supported."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_3702913e","line":39,"range":{"start_line":39,"start_character":3,"end_line":39,"end_character":15},"updated":"2018-01-31 20:59:26.000000000","message":"Don\u0027t we have rules for when \"warning\" is appropriate?  Seems a bit strong for this.  Perhaps .. note:: would be more appropriate.","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"be4961e3dd7455acf1392dd57aa3497041f6d01f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      [devices]"},{"line_number":37,"context_line":"      enabled_vgpu_types \u003d nvidia-35"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"   .. warning::"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"         As of the Queens release, Nova only supports one single type. You can"},{"line_number":42,"context_line":"         pass more than one, but then only the first will be supported."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_9215b39e","line":39,"range":{"start_line":39,"start_character":3,"end_line":39,"end_character":15},"in_reply_to":"5f93b717_3702913e","updated":"2018-01-31 21:31:52.000000000","message":"I think note would be fine here.","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbdad3f8521d013d1e9619df9f8fc4c4dcbc72c2","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      [devices]"},{"line_number":37,"context_line":"      enabled_vgpu_types \u003d nvidia-35"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"   .. warning::"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"         As of the Queens release, Nova only supports one single type. You can"},{"line_number":42,"context_line":"         pass more than one, but then only the first will be supported."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_8d77d2a0","line":39,"range":{"start_line":39,"start_character":3,"end_line":39,"end_character":15},"in_reply_to":"5f93b717_9215b39e","updated":"2018-01-31 21:49:34.000000000","message":"Done","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cedad53471178ea49a6b944d9b127b57730e607","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"   $ openstack flavor set vgpu_1 --property \"resources:VGPU\u003d1\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":".. warning::"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"       As of the Queens release, all the hypervisors supporting virtual GPUs"},{"line_number":61,"context_line":"       only accept one single virtual GPU per instance."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_f7f74958","line":58,"range":{"start_line":58,"start_character":3,"end_line":58,"end_character":10},"updated":"2018-01-31 20:59:26.000000000","message":"ditto","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbdad3f8521d013d1e9619df9f8fc4c4dcbc72c2","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"   $ openstack flavor set vgpu_1 --property \"resources:VGPU\u003d1\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":".. warning::"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"       As of the Queens release, all the hypervisors supporting virtual GPUs"},{"line_number":61,"context_line":"       only accept one single virtual GPU per instance."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_ad7c0e83","line":58,"range":{"start_line":58,"start_character":3,"end_line":58,"end_character":10},"in_reply_to":"5f93b717_f7f74958","updated":"2018-01-31 21:49:34.000000000","message":"Done","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cedad53471178ea49a6b944d9b127b57730e607","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      uses the Placement API."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"How to know a GPU type"},{"line_number":88,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Depending on your hypervisor:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_17b3d599","line":87,"range":{"start_line":87,"start_character":7,"end_line":87,"end_character":11},"updated":"2018-01-31 20:59:26.000000000","message":"Perhaps \u0027discover\u0027?","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbdad3f8521d013d1e9619df9f8fc4c4dcbc72c2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      uses the Placement API."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"How to know a GPU type"},{"line_number":88,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Depending on your hypervisor:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_ed445649","line":87,"range":{"start_line":87,"start_character":7,"end_line":87,"end_character":11},"in_reply_to":"5f93b717_17b3d599","updated":"2018-01-31 21:49:34.000000000","message":"Done","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2cedad53471178ea49a6b944d9b127b57730e607","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"For libvirt:"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"* Suspending a guest that has vGPUs doesn\u0027t yes work because of a libvirt"},{"line_number":114,"context_line":"  limitation (it can\u0027t hot-unplug mediated devices from a guest). Workarounds"},{"line_number":115,"context_line":"  using other instance actions (like snapshotting the instance or shelving it)"},{"line_number":116,"context_line":"  are recommended until libvirt supports that. If a user attempts to suspend"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_f78c29d8","line":113,"range":{"start_line":113,"start_character":44,"end_line":113,"end_character":47},"updated":"2018-01-31 20:59:26.000000000","message":"yet","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbdad3f8521d013d1e9619df9f8fc4c4dcbc72c2","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"For libvirt:"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"* Suspending a guest that has vGPUs doesn\u0027t yes work because of a libvirt"},{"line_number":114,"context_line":"  limitation (it can\u0027t hot-unplug mediated devices from a guest). Workarounds"},{"line_number":115,"context_line":"  using other instance actions (like snapshotting the instance or shelving it)"},{"line_number":116,"context_line":"  are recommended until libvirt supports that. If a user attempts to suspend"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f93b717_4d6d4aca","line":113,"range":{"start_line":113,"start_character":44,"end_line":113,"end_character":47},"in_reply_to":"5f93b717_f78c29d8","updated":"2018-01-31 21:49:34.000000000","message":"Done","commit_id":"703bd5ca146821ba50cfbe0b1d25a587a6f872d2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63527fab90f8fc23d2bec77ecbaea5066ecca7eb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"This feature is highly dependent on the hypervisor, its version and the"},{"line_number":14,"context_line":"physical devices present on the host."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":".. note:: As of the Queens release, there is no upstream continuous"},{"line_number":17,"context_line":"          integration testing with a hardware environment that has virtual"},{"line_number":18,"context_line":"          GPUs and therefore this feature is considered experimental."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Hypervisor-specific caveats are mentioned in the `Caveats`_ section."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_e77ea0e2","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":69},"updated":"2018-02-01 14:59:25.000000000","message":"This seems like it should be more than a note. Perhaps \u0027important\u0027 or \u0027caution\u0027? https://docs.openstack.org/doc-contrib-guide/rst-conv/specific-info.html","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"584de7b1ecb8f9ff425b0416b887b00788305691","unresolved":false,"context_lines":[{"line_number":13,"context_line":"This feature is highly dependent on the hypervisor, its version and the"},{"line_number":14,"context_line":"physical devices present on the host."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":".. note:: As of the Queens release, there is no upstream continuous"},{"line_number":17,"context_line":"          integration testing with a hardware environment that has virtual"},{"line_number":18,"context_line":"          GPUs and therefore this feature is considered experimental."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Hypervisor-specific caveats are mentioned in the `Caveats`_ section."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_62e4be0d","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":69},"in_reply_to":"5f93b717_e77ea0e2","updated":"2018-02-01 21:33:29.000000000","message":"Done","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63527fab90f8fc23d2bec77ecbaea5066ecca7eb","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"To enable virtual GPUs, follow the steps below:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"#. `Enable GPU types (Compute)`_"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"#. `Configure a flavor (Controller)`_"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Enable GPU types (Compute)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_47d3d404","line":26,"range":{"start_line":24,"start_character":0,"end_line":26,"end_character":37},"updated":"2018-02-01 14:59:25.000000000","message":"You could just use the \u0027contents\u0027 directive here\n\nhttp://docutils.sourceforge.net/docs/ref/rst/directives.html#table-of-contents","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"584de7b1ecb8f9ff425b0416b887b00788305691","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"To enable virtual GPUs, follow the steps below:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"#. `Enable GPU types (Compute)`_"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"#. `Configure a flavor (Controller)`_"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Enable GPU types (Compute)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_a2de463b","line":26,"range":{"start_line":24,"start_character":0,"end_line":26,"end_character":37},"in_reply_to":"5f93b717_47d3d404","updated":"2018-02-01 21:33:29.000000000","message":"No, because we have other paragraphs that I don\u0027t want to show directly","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63527fab90f8fc23d2bec77ecbaea5066ecca7eb","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Enable GPU types (Compute)"},{"line_number":30,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_e7e220d5","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":26},"updated":"2018-02-01 14:59:25.000000000","message":"Could you use \u0027---\u0027 instead? It\u0027s more consistent with the rest of the docs","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Enable GPU types (Compute)"},{"line_number":30,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"   Edit ``/etc/nova/nova.conf``:"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_2b0b05d6","line":32,"range":{"start_line":32,"start_character":58,"end_line":32,"end_character":61},"updated":"2018-02-01 01:37:02.000000000","message":"nit: punctuation after this?","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"9e1a80a6fa04e6a88dd01f19be1b8614d842b0e7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Enable GPU types (Compute)"},{"line_number":30,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"   Edit ``/etc/nova/nova.conf``:"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_32b11a48","line":32,"range":{"start_line":32,"start_character":58,"end_line":32,"end_character":61},"in_reply_to":"5f93b717_2b0b05d6","updated":"2018-02-02 01:58:49.000000000","message":"Done","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63527fab90f8fc23d2bec77ecbaea5066ecca7eb","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"   Edit ``/etc/nova/nova.conf``:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"   .. code-block:: ini"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_676a901a","line":34,"range":{"start_line":34,"start_character":8,"end_line":34,"end_character":32},"updated":"2018-02-01 14:59:25.000000000","message":"A link to the configuration guide would be helpful here. You might also want to link to the specific option using the \u0027:oslo.config:option:\u0027 role?","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"9e1a80a6fa04e6a88dd01f19be1b8614d842b0e7","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"#. Specify which specific GPU type(s) the instances would get"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"   Edit ``/etc/nova/nova.conf``:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"   .. code-block:: ini"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_72f1e200","line":34,"range":{"start_line":34,"start_character":8,"end_line":34,"end_character":32},"in_reply_to":"5f93b717_676a901a","updated":"2018-02-02 01:58:49.000000000","message":"Done","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"   .. note::"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"         As of the Queens release, Nova only supports one single type. You can"},{"line_number":44,"context_line":"         pass more than one, but then only the first will be supported."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   For knowing which specific type(s) to mention, please refer to"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_eb10bd02","line":43,"range":{"start_line":43,"start_character":54,"end_line":43,"end_character":57},"updated":"2018-02-01 01:37:02.000000000","message":"nit: \"a\"?","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"   .. note::"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"         As of the Queens release, Nova only supports one single type. You can"},{"line_number":44,"context_line":"         pass more than one, but then only the first will be supported."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   For knowing which specific type(s) to mention, please refer to"},{"line_number":47,"context_line":"   `How to discover a GPU type`_."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_2bd9c555","line":44,"range":{"start_line":43,"start_character":71,"end_line":44,"end_character":71},"updated":"2018-02-01 01:37:02.000000000","message":"nit: Rephrase as \"If more than one vGPU type is specified (as a comma-separated list), only the first one will be used.\"","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63527fab90f8fc23d2bec77ecbaea5066ecca7eb","unresolved":false,"context_lines":[{"line_number":43,"context_line":"         As of the Queens release, Nova only supports one single type. You can"},{"line_number":44,"context_line":"         pass more than one, but then only the first will be supported."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   For knowing which specific type(s) to mention, please refer to"},{"line_number":47,"context_line":"   `How to discover a GPU type`_."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"#. Restart the ``nova-compute`` service."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_0775ccf9","line":46,"range":{"start_line":46,"start_character":50,"end_line":46,"end_character":56},"updated":"2018-02-01 14:59:25.000000000","message":"Drop this","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":43,"context_line":"         As of the Queens release, Nova only supports one single type. You can"},{"line_number":44,"context_line":"         pass more than one, but then only the first will be supported."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"   For knowing which specific type(s) to mention, please refer to"},{"line_number":47,"context_line":"   `How to discover a GPU type`_."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"#. Restart the ``nova-compute`` service."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_8bfb39bf","line":46,"range":{"start_line":46,"start_character":3,"end_line":46,"end_character":14},"updated":"2018-02-01 01:37:02.000000000","message":"nit: \"To know\"","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":".. note::"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"       As of the Queens release, all the hypervisors supporting virtual GPUs"},{"line_number":63,"context_line":"       only accept one single virtual GPU per instance."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The enabled vGPU types on the compute hosts are not exposed to API users."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_4b01b1ae","line":62,"range":{"start_line":62,"start_character":53,"end_line":62,"end_character":63},"updated":"2018-02-01 01:37:02.000000000","message":"nit: \"that support\"","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":".. note::"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"       As of the Queens release, all the hypervisors supporting virtual GPUs"},{"line_number":63,"context_line":"       only accept one single virtual GPU per instance."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The enabled vGPU types on the compute hosts are not exposed to API users."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_abf635d6","line":62,"range":{"start_line":62,"start_character":37,"end_line":62,"end_character":40},"updated":"2018-02-01 01:37:02.000000000","message":"nit: remove this","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":60,"context_line":".. note::"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"       As of the Queens release, all the hypervisors supporting virtual GPUs"},{"line_number":63,"context_line":"       only accept one single virtual GPU per instance."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The enabled vGPU types on the compute hosts are not exposed to API users."},{"line_number":66,"context_line":"Flavors configured for vGPU support can be tied to host aggregates as a means"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_6bfcadb4","line":63,"range":{"start_line":63,"start_character":19,"end_line":63,"end_character":22},"updated":"2018-02-01 01:37:02.000000000","message":"nit: \"a\"?","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63527fab90f8fc23d2bec77ecbaea5066ecca7eb","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":".. note::"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"      As of the Queens release, only the *FilterScheduler* scheduler driver"},{"line_number":86,"context_line":"      uses the Placement API."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"How to discover a GPU type"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_47ce7463","line":86,"range":{"start_line":85,"start_character":0,"end_line":86,"end_character":29},"updated":"2018-02-01 14:59:25.000000000","message":"Indentation looks off","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":92,"context_line":"Depending on your hypervisor:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"- For libvirt, virtual GPUs are seen as mediated devices. Physical PCI devices"},{"line_number":95,"context_line":"  (the graphic card here) supporting virtual GPUs will propose mediated"},{"line_number":96,"context_line":"  device (mdev) types. Since mediated devices are supported by the Linux kernel"},{"line_number":97,"context_line":"  through sysfs files, you can see the required properties as follows:"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_0bbf29d1","line":95,"range":{"start_line":95,"start_character":50,"end_line":95,"end_character":54},"updated":"2018-02-01 01:37:02.000000000","message":"nit: Actually, remove the future tense altogether, so just \"GPUs propose\"","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  .. code-block:: console"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"     $ ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"- For XenServer, TODO."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_cbb4e1f4","line":101,"updated":"2018-02-01 01:37:02.000000000","message":"Still waiting for Sylvain\u0027s output example :)","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63527fab90f8fc23d2bec77ecbaea5066ecca7eb","unresolved":false,"context_lines":[{"line_number":101,"context_line":"     $ ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"- For XenServer, TODO."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Caveats"},{"line_number":107,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_e7bd40b7","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":22},"updated":"2018-02-01 14:59:25.000000000","message":"You could use the \u0027todo\u0027 directive for this. That way we can reports of TODO items in the docs","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"9e1a80a6fa04e6a88dd01f19be1b8614d842b0e7","unresolved":false,"context_lines":[{"line_number":101,"context_line":"     $ ls /sys/class/mdev_bus/\u003cdevice\u003e/mdev_supported_types"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"- For XenServer, TODO."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Caveats"},{"line_number":107,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_5295c685","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":22},"in_reply_to":"5f93b717_e7bd40b7","updated":"2018-02-02 01:58:49.000000000","message":"Done","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"For libvirt:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"* Suspending a guest that has vGPUs doesn\u0027t yet work because of a libvirt"},{"line_number":116,"context_line":"  limitation (it can\u0027t hot-unplug mediated devices from a guest). Workarounds"},{"line_number":117,"context_line":"  using other instance actions (like snapshotting the instance or shelving it)"},{"line_number":118,"context_line":"  are recommended until libvirt supports that. If a user attempts to suspend"},{"line_number":119,"context_line":"  the instance, the libvirt driver will raise an exception that will cause"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_cb82a100","line":116,"range":{"start_line":115,"start_character":2,"end_line":116,"end_character":64},"updated":"2018-02-01 01:37:02.000000000","message":"nit: Parenthesis that explain stuff are bad. How about: \"Libvirt cannot hot-unplug mediated from a guest. Therefore, a guest with vGPUs cannot be suspended.","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":115,"context_line":"* Suspending a guest that has vGPUs doesn\u0027t yet work because of a libvirt"},{"line_number":116,"context_line":"  limitation (it can\u0027t hot-unplug mediated devices from a guest). Workarounds"},{"line_number":117,"context_line":"  using other instance actions (like snapshotting the instance or shelving it)"},{"line_number":118,"context_line":"  are recommended until libvirt supports that. If a user attempts to suspend"},{"line_number":119,"context_line":"  the instance, the libvirt driver will raise an exception that will cause"},{"line_number":120,"context_line":"  the instance to be set back to ACTIVE. The ``suspend`` action in the"},{"line_number":121,"context_line":"  ``os-instance-actions`` API will have an *Error* state."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_8b8019f7","line":118,"range":{"start_line":118,"start_character":32,"end_line":118,"end_character":45},"updated":"2018-02-01 01:37:02.000000000","message":"nit: \"until libvirt gains mdev hot-unplug support.\"","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  resizing it. The rebuild operation allocates vGPUS to the instance."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Cold migrating an instance to another host will have the same problem as"},{"line_number":129,"context_line":"  resize. In case you want to migrate an instance, make sure to rebuild"},{"line_number":130,"context_line":"  it after the migration."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"* Rescue images do not use vGPUs. An instance being rescued does not keep its"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_0b988919","line":129,"range":{"start_line":129,"start_character":10,"end_line":129,"end_character":29},"updated":"2018-02-01 01:37:02.000000000","message":"nit: \"If you migrate\"","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6051c0ce2bef458b086ee49026dec44c508e3774","unresolved":false,"context_lines":[{"line_number":132,"context_line":"* Rescue images do not use vGPUs. An instance being rescued does not keep its"},{"line_number":133,"context_line":"  vGPUs during rescue. During that time, another instance can receive those"},{"line_number":134,"context_line":"  vGPUs. This is a known issue. The recommended workaround is to rebuild an"},{"line_number":135,"context_line":"  instance immediately after rescue. That being said, rebuilding the rescued"},{"line_number":136,"context_line":"  instance only helps if there are other free vGPUs on the host."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"For Xen:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_ab8635b8","line":135,"range":{"start_line":135,"start_character":37,"end_line":135,"end_character":52},"updated":"2018-02-01 01:37:02.000000000","message":"This feels too colloquial for a doc... Maybe just replace with \"However\"?","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"63527fab90f8fc23d2bec77ecbaea5066ecca7eb","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"For Xen:"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* TODO"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":".. Links"},{"line_number":143,"context_line":".. _Intel GVT-g: https://01.org/igvt-g"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_27bfa8aa","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":6},"updated":"2018-02-01 14:59:25.000000000","message":"Ditto","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"9e1a80a6fa04e6a88dd01f19be1b8614d842b0e7","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"For Xen:"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* TODO"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":".. Links"},{"line_number":143,"context_line":".. _Intel GVT-g: https://01.org/igvt-g"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f93b717_927fce64","line":140,"range":{"start_line":140,"start_character":0,"end_line":140,"end_character":6},"in_reply_to":"5f93b717_27bfa8aa","updated":"2018-02-02 01:58:49.000000000","message":"Done","commit_id":"950fb250d0860be29bcbeab0e65af240e83d6cde"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e46c173c06ccde3ad33926d0db429ed6a5009f79","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  .. code-block:: console"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"     $ ls /sys/class/mdev_bus/*/mdev_supported_types"},{"line_number":103,"context_line":"/sys/class/mdev_bus/0000:84:00.0/mdev_supported_types:"},{"line_number":104,"context_line":"nvidia-35  nvidia-36  nvidia-37  nvidia-38  nvidia-39  nvidia-40  nvidia-41  nvidia-42  nvidia-43  nvidia-44  nvidia-45"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"/sys/class/mdev_bus/0000:85:00.0/mdev_supported_types:"},{"line_number":107,"context_line":"nvidia-35  nvidia-36  nvidia-37  nvidia-38  nvidia-39  nvidia-40  nvidia-41  nvidia-42  nvidia-43  nvidia-44  nvidia-45"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"/sys/class/mdev_bus/0000:86:00.0/mdev_supported_types:"},{"line_number":110,"context_line":"nvidia-35  nvidia-36  nvidia-37  nvidia-38  nvidia-39  nvidia-40  nvidia-41  nvidia-42  nvidia-43  nvidia-44  nvidia-45"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"/sys/class/mdev_bus/0000:87:00.0/mdev_supported_types:"},{"line_number":113,"context_line":"nvidia-35  nvidia-36  nvidia-37  nvidia-38  nvidia-39  nvidia-40  nvidia-41  nvidia-42  nvidia-43  nvidia-44  nvidia-45"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"- For XenServer, TODO."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f93b717_896ec5fd","line":113,"range":{"start_line":103,"start_character":0,"end_line":113,"end_character":119},"updated":"2018-02-01 23:35:39.000000000","message":"This right here is apparently bad.  I think you need to indent these lines so they\u0027ll get picked up as part of the .. code-block::","commit_id":"414e3d08bdbd00791a7dad66366b8539dfe4e160"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"9e1a80a6fa04e6a88dd01f19be1b8614d842b0e7","unresolved":false,"context_lines":[{"line_number":100,"context_line":"  .. code-block:: console"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"     $ ls /sys/class/mdev_bus/*/mdev_supported_types"},{"line_number":103,"context_line":"/sys/class/mdev_bus/0000:84:00.0/mdev_supported_types:"},{"line_number":104,"context_line":"nvidia-35  nvidia-36  nvidia-37  nvidia-38  nvidia-39  nvidia-40  nvidia-41  nvidia-42  nvidia-43  nvidia-44  nvidia-45"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"/sys/class/mdev_bus/0000:85:00.0/mdev_supported_types:"},{"line_number":107,"context_line":"nvidia-35  nvidia-36  nvidia-37  nvidia-38  nvidia-39  nvidia-40  nvidia-41  nvidia-42  nvidia-43  nvidia-44  nvidia-45"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"/sys/class/mdev_bus/0000:86:00.0/mdev_supported_types:"},{"line_number":110,"context_line":"nvidia-35  nvidia-36  nvidia-37  nvidia-38  nvidia-39  nvidia-40  nvidia-41  nvidia-42  nvidia-43  nvidia-44  nvidia-45"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"/sys/class/mdev_bus/0000:87:00.0/mdev_supported_types:"},{"line_number":113,"context_line":"nvidia-35  nvidia-36  nvidia-37  nvidia-38  nvidia-39  nvidia-40  nvidia-41  nvidia-42  nvidia-43  nvidia-44  nvidia-45"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"- For XenServer, TODO."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5f93b717_125dfe13","line":113,"range":{"start_line":103,"start_character":0,"end_line":113,"end_character":119},"in_reply_to":"5f93b717_896ec5fd","updated":"2018-02-02 01:58:49.000000000","message":"Done","commit_id":"414e3d08bdbd00791a7dad66366b8539dfe4e160"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"990aa2820c52665604ba2a724da6144111027869","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  using other instance actions (like snapshotting the instance or shelving it)"},{"line_number":130,"context_line":"  are recommended until libvirt gains mdev hot-unplug support. If a user"},{"line_number":131,"context_line":"  attempts to suspend the instance, the libvirt driver will raise an exception"},{"line_number":132,"context_line":"  that will cause the instance to be set back to ACTIVE. The ``suspend`` action"},{"line_number":133,"context_line":"  in the ``os-instance-actions`` API will have an *Error* state."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":136,"context_line":"  allocate those vGPUs to the instance (the instance is created without"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa0c359_b1d2d833","line":133,"range":{"start_line":132,"start_character":56,"end_line":133,"end_character":64},"updated":"2018-02-05 13:09:44.000000000","message":"Does it mean that the os-instance-action will put the instance in ERROR state? Or it only means the this API will return an error?","commit_id":"d133590e8bad0d4752ad0df92fb8e56905b55f61"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"101375b77e6d58fbefd821d0d98c639f443a9e0e","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  using other instance actions (like snapshotting the instance or shelving it)"},{"line_number":130,"context_line":"  are recommended until libvirt gains mdev hot-unplug support. If a user"},{"line_number":131,"context_line":"  attempts to suspend the instance, the libvirt driver will raise an exception"},{"line_number":132,"context_line":"  that will cause the instance to be set back to ACTIVE. The ``suspend`` action"},{"line_number":133,"context_line":"  in the ``os-instance-actions`` API will have an *Error* state."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":136,"context_line":"  allocate those vGPUs to the instance (the instance is created without"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa0c359_51aef42e","line":133,"range":{"start_line":132,"start_character":56,"end_line":133,"end_character":64},"in_reply_to":"3fa0c359_91047c7d","updated":"2018-02-05 13:30:25.000000000","message":"OK. After some IRC discussion I finally understood that it is  the instance action that will have the error state [1]. \n\n[1]http://paste.openstack.org/show/662486/","commit_id":"d133590e8bad0d4752ad0df92fb8e56905b55f61"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9da734f2cbdb2ef7a0d1b675119809e40aa64d59","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  using other instance actions (like snapshotting the instance or shelving it)"},{"line_number":130,"context_line":"  are recommended until libvirt gains mdev hot-unplug support. If a user"},{"line_number":131,"context_line":"  attempts to suspend the instance, the libvirt driver will raise an exception"},{"line_number":132,"context_line":"  that will cause the instance to be set back to ACTIVE. The ``suspend`` action"},{"line_number":133,"context_line":"  in the ``os-instance-actions`` API will have an *Error* state."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":136,"context_line":"  allocate those vGPUs to the instance (the instance is created without"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa0c359_f1fce03f","line":133,"range":{"start_line":132,"start_character":56,"end_line":133,"end_character":64},"in_reply_to":"3fa0c359_91047c7d","updated":"2018-02-05 13:25:54.000000000","message":"TBC, see http://paste.openstack.org/show/662486/","commit_id":"d133590e8bad0d4752ad0df92fb8e56905b55f61"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b60ba0eeaa934faa9d51e8ae9bf64e439338c78","unresolved":false,"context_lines":[{"line_number":129,"context_line":"  using other instance actions (like snapshotting the instance or shelving it)"},{"line_number":130,"context_line":"  are recommended until libvirt gains mdev hot-unplug support. If a user"},{"line_number":131,"context_line":"  attempts to suspend the instance, the libvirt driver will raise an exception"},{"line_number":132,"context_line":"  that will cause the instance to be set back to ACTIVE. The ``suspend`` action"},{"line_number":133,"context_line":"  in the ``os-instance-actions`` API will have an *Error* state."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Resizing an instance with a new flavor that has vGPU resources doesn\u0027t"},{"line_number":136,"context_line":"  allocate those vGPUs to the instance (the instance is created without"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa0c359_91047c7d","line":133,"range":{"start_line":132,"start_character":56,"end_line":133,"end_character":64},"in_reply_to":"3fa0c359_b1d2d833","updated":"2018-02-05 13:19:42.000000000","message":"No, it means that the suspend call will return an ACTIVE vm state instead of having suspended the instance, but then asking the os-instance-actions API will explain why.","commit_id":"d133590e8bad0d4752ad0df92fb8e56905b55f61"}],"doc/source/user/feature-matrix-hpc.ini":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cd27d320139fec0b1f891af429962d653a72edaa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[target.libvirt-kvm]"},{"line_number":2,"context_line":"title\u003dlibvirt+kvm (x86 \u0026 ppc64)"},{"line_number":3,"context_line":"link\u003dhttp://docs.openstack.org/infra/manual/developers.html#project-gating"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"[target.libvirt-kvm-s390]"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_3d64d449","line":2,"updated":"2018-01-30 21:28:15.000000000","message":"ppc64 is said to be supported here.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"[operation.virtual-gpu]"},{"line_number":55,"context_line":"title\u003dVirtual GPUs"},{"line_number":56,"context_line":"notes\u003dAttach a virtual GPU to an instance at boot time"},{"line_number":57,"context_line":"maturity\u003dexperimental"},{"line_number":58,"context_line":"api_doc_link\u003dhttp://developer.openstack.org/api-ref-compute-v2.1.html#createServer"},{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_d53eee89","line":56,"range":{"start_line":56,"start_character":45,"end_line":56,"end_character":49},"updated":"2018-01-30 17:34:14.000000000","message":"server create","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":55,"context_line":"title\u003dVirtual GPUs"},{"line_number":56,"context_line":"notes\u003dAttach a virtual GPU to an instance at boot time"},{"line_number":57,"context_line":"maturity\u003dexperimental"},{"line_number":58,"context_line":"api_doc_link\u003dhttp://developer.openstack.org/api-ref-compute-v2.1.html#createServer"},{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"},{"line_number":60,"context_line":"tempest_test_uuids\u003d9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997"},{"line_number":61,"context_line":"libvirt-kvm\u003dpartial:queens"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_954ce642","line":58,"range":{"start_line":58,"start_character":70,"end_line":58,"end_character":82},"updated":"2018-01-30 17:34:14.000000000","message":"This link should be:\n\nhttps://developer.openstack.org/api-ref/compute/#create-server","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":57,"context_line":"maturity\u003dexperimental"},{"line_number":58,"context_line":"api_doc_link\u003dhttp://developer.openstack.org/api-ref-compute-v2.1.html#createServer"},{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"},{"line_number":60,"context_line":"tempest_test_uuids\u003d9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997"},{"line_number":61,"context_line":"libvirt-kvm\u003dpartial:queens"},{"line_number":62,"context_line":"libvirt-kvm-s390\u003dunknown"},{"line_number":63,"context_line":"libvirt-virtuozzo-ct\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_754fda33","line":60,"updated":"2018-01-30 17:34:14.000000000","message":"These are bogus right? These don\u0027t test anything about vGPUs. I guess you could configure tempest with a vgpu-enabled flavor and then run the test, but it\u0027s not very direct.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cd27d320139fec0b1f891af429962d653a72edaa","unresolved":false,"context_lines":[{"line_number":57,"context_line":"maturity\u003dexperimental"},{"line_number":58,"context_line":"api_doc_link\u003dhttp://developer.openstack.org/api-ref-compute-v2.1.html#createServer"},{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"},{"line_number":60,"context_line":"tempest_test_uuids\u003d9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997"},{"line_number":61,"context_line":"libvirt-kvm\u003dpartial:queens"},{"line_number":62,"context_line":"libvirt-kvm-s390\u003dunknown"},{"line_number":63,"context_line":"libvirt-virtuozzo-ct\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_3d085490","line":60,"in_reply_to":"5f93b717_754fda33","updated":"2018-01-30 21:28:15.000000000","message":"Yup, unfortunately we need to pass a list of Tempest tests that check the feature so I basically copied the ones for the GPU passthru above.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"},{"line_number":60,"context_line":"tempest_test_uuids\u003d9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997"},{"line_number":61,"context_line":"libvirt-kvm\u003dpartial:queens"},{"line_number":62,"context_line":"libvirt-kvm-s390\u003dunknown"},{"line_number":63,"context_line":"libvirt-virtuozzo-ct\u003dunknown"},{"line_number":64,"context_line":"libvirt-virtuozzo-vm\u003dunknown"},{"line_number":65,"context_line":"libvirt-xen\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_b572427a","line":62,"range":{"start_line":62,"start_character":12,"end_line":62,"end_character":16},"updated":"2018-01-30 17:34:14.000000000","message":"What about ppc64 (powerkvm)?","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cd27d320139fec0b1f891af429962d653a72edaa","unresolved":false,"context_lines":[{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"},{"line_number":60,"context_line":"tempest_test_uuids\u003d9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997"},{"line_number":61,"context_line":"libvirt-kvm\u003dpartial:queens"},{"line_number":62,"context_line":"libvirt-kvm-s390\u003dunknown"},{"line_number":63,"context_line":"libvirt-virtuozzo-ct\u003dunknown"},{"line_number":64,"context_line":"libvirt-virtuozzo-vm\u003dunknown"},{"line_number":65,"context_line":"libvirt-xen\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_bd6ea42c","line":62,"range":{"start_line":62,"start_character":12,"end_line":62,"end_character":16},"in_reply_to":"5f93b717_b572427a","updated":"2018-01-30 21:28:15.000000000","message":"see above","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d18984609dbe039d73430c6e4b26609092d3aa02","unresolved":false,"context_lines":[{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"},{"line_number":60,"context_line":"tempest_test_uuids\u003d9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997"},{"line_number":61,"context_line":"libvirt-kvm\u003dpartial:queens"},{"line_number":62,"context_line":"libvirt-kvm-s390\u003dunknown"},{"line_number":63,"context_line":"libvirt-virtuozzo-ct\u003dunknown"},{"line_number":64,"context_line":"libvirt-virtuozzo-vm\u003dunknown"},{"line_number":65,"context_line":"libvirt-xen\u003dunknown"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_2b61ce05","line":62,"range":{"start_line":62,"start_character":12,"end_line":62,"end_character":16},"in_reply_to":"5f93b717_bd6ea42c","updated":"2018-01-31 18:26:26.000000000","message":"Hmm, but we don\u0027t actually know if pkvm with libvirt supports vgpus.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dabcb04e7fa70b4fc2b868ff4ad6ce6306ac4b10","unresolved":false,"context_lines":[{"line_number":58,"context_line":"api_doc_link\u003dhttp://developer.openstack.org/api-ref-compute-v2.1.html#createServer"},{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"},{"line_number":60,"context_line":"tempest_test_uuids\u003d9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997"},{"line_number":61,"context_line":"libvirt-kvm\u003dpartial:queens"},{"line_number":62,"context_line":"libvirt-kvm-s390\u003dunknown"},{"line_number":63,"context_line":"libvirt-virtuozzo-ct\u003dunknown"},{"line_number":64,"context_line":"libvirt-virtuozzo-vm\u003dunknown"},{"line_number":65,"context_line":"libvirt-xen\u003dunknown"},{"line_number":66,"context_line":"xenserver\u003dpartial:queens"},{"line_number":67,"context_line":"vmware\u003dmissing"},{"line_number":68,"context_line":"hyperv\u003dmissing"},{"line_number":69,"context_line":"ironic\u003dmissing"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_f55c4aee","line":69,"range":{"start_line":61,"start_character":0,"end_line":69,"end_character":14},"updated":"2018-01-30 17:34:14.000000000","message":"Missing powervm from this list.","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d18984609dbe039d73430c6e4b26609092d3aa02","unresolved":false,"context_lines":[{"line_number":58,"context_line":"api_doc_link\u003dhttp://developer.openstack.org/api-ref-compute-v2.1.html#createServer"},{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"},{"line_number":60,"context_line":"tempest_test_uuids\u003d9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997"},{"line_number":61,"context_line":"libvirt-kvm\u003dpartial:queens"},{"line_number":62,"context_line":"libvirt-kvm-s390\u003dunknown"},{"line_number":63,"context_line":"libvirt-virtuozzo-ct\u003dunknown"},{"line_number":64,"context_line":"libvirt-virtuozzo-vm\u003dunknown"},{"line_number":65,"context_line":"libvirt-xen\u003dunknown"},{"line_number":66,"context_line":"xenserver\u003dpartial:queens"},{"line_number":67,"context_line":"vmware\u003dmissing"},{"line_number":68,"context_line":"hyperv\u003dmissing"},{"line_number":69,"context_line":"ironic\u003dmissing"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_6b3836ed","line":69,"range":{"start_line":61,"start_character":0,"end_line":69,"end_character":14},"in_reply_to":"5f93b717_7de25ca2","updated":"2018-01-31 18:26:26.000000000","message":"Yeah, it\u0027s a supported driver. It\u0027s in the main feature support matrix page, just not this incomplete HPC one:\n\nhttps://docs.openstack.org/nova/latest/user/support-matrix.html","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cd27d320139fec0b1f891af429962d653a72edaa","unresolved":false,"context_lines":[{"line_number":58,"context_line":"api_doc_link\u003dhttp://developer.openstack.org/api-ref-compute-v2.1.html#createServer"},{"line_number":59,"context_line":"admin_doc_link\u003dhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html"},{"line_number":60,"context_line":"tempest_test_uuids\u003d9a438d88-10c6-4bcd-8b5b-5b6e25e1346f;585e934c-448e-43c4-acbf-d06a9b899997"},{"line_number":61,"context_line":"libvirt-kvm\u003dpartial:queens"},{"line_number":62,"context_line":"libvirt-kvm-s390\u003dunknown"},{"line_number":63,"context_line":"libvirt-virtuozzo-ct\u003dunknown"},{"line_number":64,"context_line":"libvirt-virtuozzo-vm\u003dunknown"},{"line_number":65,"context_line":"libvirt-xen\u003dunknown"},{"line_number":66,"context_line":"xenserver\u003dpartial:queens"},{"line_number":67,"context_line":"vmware\u003dmissing"},{"line_number":68,"context_line":"hyperv\u003dmissing"},{"line_number":69,"context_line":"ironic\u003dmissing"}],"source_content_type":"text/x-properties","patch_set":1,"id":"5f93b717_7de25ca2","line":69,"range":{"start_line":61,"start_character":0,"end_line":69,"end_character":14},"in_reply_to":"5f93b717_f55c4aee","updated":"2018-01-30 21:28:15.000000000","message":"I can\u0027t find that driver in any of the Feature Classification pages. I can add it for sure, but is that a big deal ?","commit_id":"d4b46991c5d121f9978cec59a35a3fd4d5e78151"}]}
