)]}'
{"doc/source/admin/virtual-gpu.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":48,"context_line":"      [vgpu_nvidia-36]"},{"line_number":49,"context_line":"      device_addresses \u003d 0000:86:00.0"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"   To know which specific type(s) to mention, please refer to `How to discover"},{"line_number":54,"context_line":"   a GPU type`_."}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_0dae79e6","line":51,"updated":"2020-04-07 10:57:36.000000000","message":"Do we still have a limitation that a single pGPU can only support one vgpu_types?\n\n// later\n\nOK we have, I see the warning below. Does the compute service logs a warning or refuse to start if a single pGPU is mentioned in more than one of above dynamic config option as device?\n\n// later\nI see the driver will raise InvalidLibvirtGPUConfig so the compute service will refuse to start.","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"      [vgpu_nvidia-36]"},{"line_number":49,"context_line":"      device_addresses \u003d 0000:86:00.0"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"   To know which specific type(s) to mention, please refer to `How to discover"},{"line_number":54,"context_line":"   a GPU type`_."}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_aa63e5dc","line":51,"in_reply_to":"df33271e_0dae79e6","updated":"2020-04-07 20:51:02.000000000","message":"See the spec for the exact behaviour https://specs.openstack.org/openstack/nova-specs/specs/ussuri/approved/vgpu-multiple-types.html#proposed-change\n\nAlso, please see the commit msg, I don\u0027t want to return an exception if the config option is not modified (for a upgrade reason)","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"   .. code-block:: console"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"     $ openstack trait create nvidia-11"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"   In this example, we ask to create a custom trait named ``nvidia-11``."},{"line_number":313,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_0d21594e","line":310,"range":{"start_line":310,"start_character":30,"end_line":310,"end_character":39},"updated":"2020-04-07 10:57:36.000000000","message":"* this needs to use at least api version 1.6\n* trait needs to be prefixed with custom\n* trait name cannot use dash\n* trait name need to be full upper case\n\n\nstack@aio:~$ openstack trait create nvidia-11\nOperation or argument is not supported with version 1.0; requires at least version 1.6\nstack@aio:~$ openstack --os-placement-api-version 1.6 trait create nvidia-11\nThe trait is invalid. A valid trait must be no longer than 255 characters, start with the prefix \"CUSTOM_\" and use following characters: \"A\"-\"Z\", \"0\"-\"9\" and \"_\" (HTTP 400)","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"   .. code-block:: console"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"     $ openstack trait create nvidia-11"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"   In this example, we ask to create a custom trait named ``nvidia-11``."},{"line_number":313,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_8a7d4170","line":310,"range":{"start_line":310,"start_character":30,"end_line":310,"end_character":39},"in_reply_to":"df33271e_0d21594e","updated":"2020-04-07 20:51:02.000000000","message":"thanks","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"     $ openstack trait create nvidia-11"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"   In this example, we ask to create a custom trait named ``nvidia-11``."},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"#. Add the corresponding trait to the Resource Provider matching the GPU"},{"line_number":315,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_ad9b0d64","line":312,"range":{"start_line":312,"start_character":59,"end_line":312,"end_character":69},"updated":"2020-04-07 10:57:36.000000000","message":"ditto","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":309,"context_line":""},{"line_number":310,"context_line":"     $ openstack trait create nvidia-11"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"   In this example, we ask to create a custom trait named ``nvidia-11``."},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"#. Add the corresponding trait to the Resource Provider matching the GPU"},{"line_number":315,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_6acefdb4","line":312,"range":{"start_line":312,"start_character":59,"end_line":312,"end_character":69},"in_reply_to":"df33271e_ad9b0d64","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":315,"context_line":""},{"line_number":316,"context_line":"   .. code-block:: console"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"     $ openstack resource provider trait set --trait nvidia-11 e2f8607b-0683-4141-a8af-f5e20682e28c"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"   In this case, the trait ``nvidia-11`` will be added to the Resource Provider"},{"line_number":321,"context_line":"   with the UUID ``e2f8607b-0683-4141-a8af-f5e20682e28c`` that corresponds to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_4dac018c","line":318,"range":{"start_line":318,"start_character":53,"end_line":318,"end_character":62},"updated":"2020-04-07 10:57:36.000000000","message":"ditto","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":315,"context_line":""},{"line_number":316,"context_line":"   .. code-block:: console"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"     $ openstack resource provider trait set --trait nvidia-11 e2f8607b-0683-4141-a8af-f5e20682e28c"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"   In this case, the trait ``nvidia-11`` will be added to the Resource Provider"},{"line_number":321,"context_line":"   with the UUID ``e2f8607b-0683-4141-a8af-f5e20682e28c`` that corresponds to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_2d437db1","line":318,"range":{"start_line":318,"start_character":7,"end_line":318,"end_character":44},"updated":"2020-04-07 10:57:36.000000000","message":"needs --os-placement-api-version 1.6","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":315,"context_line":""},{"line_number":316,"context_line":"   .. code-block:: console"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"     $ openstack resource provider trait set --trait nvidia-11 e2f8607b-0683-4141-a8af-f5e20682e28c"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"   In this case, the trait ``nvidia-11`` will be added to the Resource Provider"},{"line_number":321,"context_line":"   with the UUID ``e2f8607b-0683-4141-a8af-f5e20682e28c`` that corresponds to"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_8acb81a3","line":318,"range":{"start_line":318,"start_character":53,"end_line":318,"end_character":62},"in_reply_to":"df33271e_4dac018c","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"     $ openstack resource provider trait set --trait nvidia-11 e2f8607b-0683-4141-a8af-f5e20682e28c"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"   In this case, the trait ``nvidia-11`` will be added to the Resource Provider"},{"line_number":321,"context_line":"   with the UUID ``e2f8607b-0683-4141-a8af-f5e20682e28c`` that corresponds to"},{"line_number":322,"context_line":"   the PCI address ``0000:85:00:0``."},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_6d1625aa","line":320,"range":{"start_line":320,"start_character":29,"end_line":320,"end_character":38},"updated":"2020-04-07 10:57:36.000000000","message":"ditto","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":317,"context_line":""},{"line_number":318,"context_line":"     $ openstack resource provider trait set --trait nvidia-11 e2f8607b-0683-4141-a8af-f5e20682e28c"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"   In this case, the trait ``nvidia-11`` will be added to the Resource Provider"},{"line_number":321,"context_line":"   with the UUID ``e2f8607b-0683-4141-a8af-f5e20682e28c`` that corresponds to"},{"line_number":322,"context_line":"   the PCI address ``0000:85:00:0``."},{"line_number":323,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_aabf65fa","line":320,"range":{"start_line":320,"start_character":29,"end_line":320,"end_character":38},"in_reply_to":"df33271e_6d1625aa","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":325,"context_line":""},{"line_number":326,"context_line":"   .. code-block:: console"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"     $ openstack flavor set --property trait:CUSTOM_NVIDIA-11\u003drequired vgpu_1"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"   In this example, we add the ``nvidia-11`` trait as a required information"},{"line_number":331,"context_line":"   for the ``vgpu_1`` flavor we created earlier."}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_0d279914","line":328,"range":{"start_line":328,"start_character":45,"end_line":328,"end_character":61},"updated":"2020-04-07 10:57:36.000000000","message":"almost good but dash is not allowed in trait names","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":325,"context_line":""},{"line_number":326,"context_line":"   .. code-block:: console"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"     $ openstack flavor set --property trait:CUSTOM_NVIDIA-11\u003drequired vgpu_1"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"   In this example, we add the ``nvidia-11`` trait as a required information"},{"line_number":331,"context_line":"   for the ``vgpu_1`` flavor we created earlier."}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_4a3699b6","line":328,"range":{"start_line":328,"start_character":45,"end_line":328,"end_character":61},"in_reply_to":"df33271e_0d279914","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"     $ openstack flavor set --property trait:CUSTOM_NVIDIA-11\u003drequired vgpu_1"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"   In this example, we add the ``nvidia-11`` trait as a required information"},{"line_number":331,"context_line":"   for the ``vgpu_1`` flavor we created earlier."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"   This will allow the Placement service to only return the Resource Providers"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_6d7bc5f3","line":330,"range":{"start_line":330,"start_character":33,"end_line":330,"end_character":42},"updated":"2020-04-07 10:57:36.000000000","message":"ditto","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":327,"context_line":""},{"line_number":328,"context_line":"     $ openstack flavor set --property trait:CUSTOM_NVIDIA-11\u003drequired vgpu_1"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"   In this example, we add the ``nvidia-11`` trait as a required information"},{"line_number":331,"context_line":"   for the ``vgpu_1`` flavor we created earlier."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"   This will allow the Placement service to only return the Resource Providers"}],"source_content_type":"text/x-rst","patch_set":8,"id":"df33271e_6a439d14","line":330,"range":{"start_line":330,"start_character":33,"end_line":330,"end_character":42},"in_reply_to":"df33271e_6d7bc5f3","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":35,"context_line":"      [devices]"},{"line_number":36,"context_line":"      enabled_vgpu_types \u003d nvidia-35"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"   If you want to support more than a single GPU type, please do instead:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   .. code-block:: ini"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_d8a09fa8","line":38,"range":{"start_line":38,"start_character":55,"end_line":38,"end_character":72},"updated":"2020-04-08 17:02:09.000000000","message":"I think it would be helpful to describe what you\u0027re doing instead. How about:\n\n  If you want to support more than a single GPU type, you need to\n  provide a separate `nova.conf` section for each device. For\n  example:","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"      [devices]"},{"line_number":36,"context_line":"      enabled_vgpu_types \u003d nvidia-35"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"   If you want to support more than a single GPU type, please do instead:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   .. code-block:: ini"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_170bec29","line":38,"range":{"start_line":38,"start_character":55,"end_line":38,"end_character":72},"in_reply_to":"df33271e_8c21b8fe","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8e62747d168d9ecc232cf5ecd35a73e18b571185","unresolved":false,"context_lines":[{"line_number":35,"context_line":"      [devices]"},{"line_number":36,"context_line":"      enabled_vgpu_types \u003d nvidia-35"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"   If you want to support more than a single GPU type, please do instead:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"   .. code-block:: ini"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_8c21b8fe","line":38,"range":{"start_line":38,"start_character":55,"end_line":38,"end_character":72},"in_reply_to":"df33271e_d8a09fa8","updated":"2020-04-08 17:20:49.000000000","message":"yep i think this is better too","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c00b205e11124a5431d0bf8e3df065b868d33f77","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      [devices]"},{"line_number":43,"context_line":"      enabled_vgpu_types \u003d nvidia-35, nvidia-36"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"      [vgpu_nvidia-35]"},{"line_number":46,"context_line":"      device_addresses \u003d 0000:84:00.0,0000:85:00.0"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      [vgpu_nvidia-36]"},{"line_number":49,"context_line":"      device_addresses \u003d 0000:86:00.0"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_fe30fc09","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":37},"updated":"2020-04-08 11:00:31.000000000","message":"Maybe include 0000:85:00.0 under vgpu_nvidia-36 to show cards can support multiple types?","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      [devices]"},{"line_number":43,"context_line":"      enabled_vgpu_types \u003d nvidia-35, nvidia-36"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"      [vgpu_nvidia-35]"},{"line_number":46,"context_line":"      device_addresses \u003d 0000:84:00.0,0000:85:00.0"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      [vgpu_nvidia-36]"},{"line_number":49,"context_line":"      device_addresses \u003d 0000:86:00.0"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_7704f818","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":37},"in_reply_to":"df33271e_0cdda841","updated":"2020-04-08 21:42:55.000000000","message":"Yeah, but we can work on this later IMHO.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8e62747d168d9ecc232cf5ecd35a73e18b571185","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      [devices]"},{"line_number":43,"context_line":"      enabled_vgpu_types \u003d nvidia-35, nvidia-36"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"      [vgpu_nvidia-35]"},{"line_number":46,"context_line":"      device_addresses \u003d 0000:84:00.0,0000:85:00.0"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      [vgpu_nvidia-36]"},{"line_number":49,"context_line":"      device_addresses \u003d 0000:86:00.0"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_0cdda841","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":37},"in_reply_to":"df33271e_b2ba2507","updated":"2020-04-08 17:20:49.000000000","message":"in the context of nvida vgpus yes.\n\nin the context of vfio-mediated devices it would be fine\n\nintel were lookign at supporing mdevs for there existing qat crypto cards at one point.\n\ncurrenlty it support sriov but they were considering each of the different cyrpto engines (ipsec,semetric,asymetic) and compresstion  as seperate mdev types since they all had different sets of dedicated hardware.\n\n\nso it is not correct to assume if you consume inventory of one mdev type all other mdev types on the partent type will go to 0 inventory.\n\nthat is just a limitation of nvida\u0027s implemenation so for now i think this example is better since that is the only thing we have tested.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a83586c201b6400243a76298ef77a2f4d228ac8f","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      [devices]"},{"line_number":43,"context_line":"      enabled_vgpu_types \u003d nvidia-35, nvidia-36"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"      [vgpu_nvidia-35]"},{"line_number":46,"context_line":"      device_addresses \u003d 0000:84:00.0,0000:85:00.0"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      [vgpu_nvidia-36]"},{"line_number":49,"context_line":"      device_addresses \u003d 0000:86:00.0"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_b2ba2507","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":37},"in_reply_to":"df33271e_c16d5999","updated":"2020-04-08 13:00:27.000000000","message":"Correct, you\u0027ll get an InvalidLibvirtGPUConfig if so.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"2de4b9c0fa5c6afc8ce9358ff2e2cb5be15b9cf7","unresolved":false,"context_lines":[{"line_number":42,"context_line":"      [devices]"},{"line_number":43,"context_line":"      enabled_vgpu_types \u003d nvidia-35, nvidia-36"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"      [vgpu_nvidia-35]"},{"line_number":46,"context_line":"      device_addresses \u003d 0000:84:00.0,0000:85:00.0"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"      [vgpu_nvidia-36]"},{"line_number":49,"context_line":"      device_addresses \u003d 0000:86:00.0"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_c16d5999","line":49,"range":{"start_line":45,"start_character":0,"end_line":49,"end_character":37},"in_reply_to":"df33271e_fe30fc09","updated":"2020-04-08 11:01:39.000000000","message":"*later* Apologies, I don\u0027t think that\u0027s possible right?","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":53,"context_line":"   To know which specific type(s) to mention, please refer to `How to discover"},{"line_number":54,"context_line":"   a GPU type`_."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"   .. note::"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"      Supporting multiple GPU types is only supported by the Ussuri release and"},{"line_number":59,"context_line":"      later versions."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"#. Restart the ``nova-compute`` service."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_f8ada39b","line":59,"range":{"start_line":56,"start_character":0,"end_line":59,"end_character":21},"updated":"2020-04-08 17:02:09.000000000","message":"This would be a great use of the \u0027.. version-changed\u0027 admonition","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":53,"context_line":"   To know which specific type(s) to mention, please refer to `How to discover"},{"line_number":54,"context_line":"   a GPU type`_."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"   .. note::"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"      Supporting multiple GPU types is only supported by the Ussuri release and"},{"line_number":59,"context_line":"      later versions."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"#. Restart the ``nova-compute`` service."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_fa058d11","line":59,"range":{"start_line":56,"start_character":0,"end_line":59,"end_character":21},"in_reply_to":"df33271e_f8ada39b","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c00b205e11124a5431d0bf8e3df065b868d33f77","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"Since operators want to support different GPU types per compute, it would be"},{"line_number":290,"context_line":"nice to have flavors asking for a specific GPU type. This is now possible"},{"line_number":291,"context_line":"using custom traits by decorating children Resource Providers that correspond"},{"line_number":292,"context_line":"to physical GPUs."},{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_de64184c","line":291,"range":{"start_line":291,"start_character":34,"end_line":291,"end_character":42},"updated":"2020-04-08 11:00:31.000000000","message":"child","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a83586c201b6400243a76298ef77a2f4d228ac8f","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"Since operators want to support different GPU types per compute, it would be"},{"line_number":290,"context_line":"nice to have flavors asking for a specific GPU type. This is now possible"},{"line_number":291,"context_line":"using custom traits by decorating children Resource Providers that correspond"},{"line_number":292,"context_line":"to physical GPUs."},{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_f2394da3","line":291,"range":{"start_line":291,"start_character":34,"end_line":291,"end_character":42},"in_reply_to":"df33271e_de64184c","updated":"2020-04-08 13:00:27.000000000","message":"will be done in a FUP","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"Since operators want to support different GPU types per compute, it would be"},{"line_number":290,"context_line":"nice to have flavors asking for a specific GPU type. This is now possible"},{"line_number":291,"context_line":"using custom traits by decorating children Resource Providers that correspond"},{"line_number":292,"context_line":"to physical GPUs."},{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_9a2d6197","line":291,"range":{"start_line":291,"start_character":34,"end_line":291,"end_character":42},"in_reply_to":"df33271e_f2394da3","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. note::"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"   Possible improvements in a future release could consist in providing an"},{"line_number":297,"context_line":"   automatic tagging of Resource Providers by standard traits corresponding to"},{"line_number":298,"context_line":"   versioned mapping of public GPU types. For the moment, this has to be done"},{"line_number":299,"context_line":"   manually."}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_d889bf26","line":296,"range":{"start_line":296,"start_character":72,"end_line":296,"end_character":74},"updated":"2020-04-08 17:02:09.000000000","message":"drop this","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. note::"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"   Possible improvements in a future release could consist in providing an"},{"line_number":297,"context_line":"   automatic tagging of Resource Providers by standard traits corresponding to"},{"line_number":298,"context_line":"   versioned mapping of public GPU types. For the moment, this has to be done"},{"line_number":299,"context_line":"   manually."}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_78999377","line":296,"range":{"start_line":296,"start_character":59,"end_line":296,"end_character":61},"updated":"2020-04-08 17:02:09.000000000","message":"of","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. note::"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"   Possible improvements in a future release could consist in providing an"},{"line_number":297,"context_line":"   automatic tagging of Resource Providers by standard traits corresponding to"},{"line_number":298,"context_line":"   versioned mapping of public GPU types. For the moment, this has to be done"},{"line_number":299,"context_line":"   manually."}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_ba282586","line":296,"range":{"start_line":296,"start_character":72,"end_line":296,"end_character":74},"in_reply_to":"df33271e_d889bf26","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":294,"context_line":".. note::"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"   Possible improvements in a future release could consist in providing an"},{"line_number":297,"context_line":"   automatic tagging of Resource Providers by standard traits corresponding to"},{"line_number":298,"context_line":"   versioned mapping of public GPU types. For the moment, this has to be done"},{"line_number":299,"context_line":"   manually."},{"line_number":300,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_b88cbb35","line":297,"range":{"start_line":297,"start_character":43,"end_line":297,"end_character":45},"updated":"2020-04-08 17:02:09.000000000","message":"with","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":294,"context_line":".. note::"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"   Possible improvements in a future release could consist in providing an"},{"line_number":297,"context_line":"   automatic tagging of Resource Providers by standard traits corresponding to"},{"line_number":298,"context_line":"   versioned mapping of public GPU types. For the moment, this has to be done"},{"line_number":299,"context_line":"   manually."},{"line_number":300,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_fa1e2d5d","line":297,"range":{"start_line":297,"start_character":43,"end_line":297,"end_character":45},"in_reply_to":"df33271e_b88cbb35","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"   .. code-block:: console"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"     $ openstack --os-placement-api-version 1.6 trait create CUSTOM_NVIDIA_11"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"   In this example, we ask to create a custom trait named ``CUSTOM_NVIDIA_11``."},{"line_number":313,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_18004767","line":310,"range":{"start_line":310,"start_character":4,"end_line":310,"end_character":5},"updated":"2020-04-08 17:02:09.000000000","message":"nit: here and below, another space (or two) would be nice visually","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":307,"context_line":""},{"line_number":308,"context_line":"   .. code-block:: console"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"     $ openstack --os-placement-api-version 1.6 trait create CUSTOM_NVIDIA_11"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"   In this example, we ask to create a custom trait named ``CUSTOM_NVIDIA_11``."},{"line_number":313,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_5a2f5987","line":310,"range":{"start_line":310,"start_character":4,"end_line":310,"end_character":5},"in_reply_to":"df33271e_18004767","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":315,"context_line":""},{"line_number":316,"context_line":"   .. code-block:: console"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"     $ openstack --os-placement-api-version 1.6 resource provider trait set --trait CUSTOM_NVIDIA_11 e2f8607b-0683-4141-a8af-f5e20682e28c"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"   In this case, the trait ``CUSTOM_NVIDIA_11`` will be added to the Resource"},{"line_number":321,"context_line":"   Provider with the UUID ``e2f8607b-0683-4141-a8af-f5e20682e28c`` that"}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_587daf1a","line":318,"range":{"start_line":318,"start_character":75,"end_line":318,"end_character":76},"updated":"2020-04-08 17:02:09.000000000","message":"it would be nice to split this over multiple lines:\n\n  $ openstack --os-placement-api-version 1.6 resource provider trait set \\\n      --trait CUSTOM_NVIDIA_11 e2f8607b-0683-4141-a8af-f5e20682e28c","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":315,"context_line":""},{"line_number":316,"context_line":"   .. code-block:: console"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"     $ openstack --os-placement-api-version 1.6 resource provider trait set --trait CUSTOM_NVIDIA_11 e2f8607b-0683-4141-a8af-f5e20682e28c"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"   In this case, the trait ``CUSTOM_NVIDIA_11`` will be added to the Resource"},{"line_number":321,"context_line":"   Provider with the UUID ``e2f8607b-0683-4141-a8af-f5e20682e28c`` that"}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_fa53cd14","line":318,"range":{"start_line":318,"start_character":75,"end_line":318,"end_character":76},"in_reply_to":"df33271e_587daf1a","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c00b205e11124a5431d0bf8e3df065b868d33f77","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"   In this case, the trait ``CUSTOM_NVIDIA_11`` will be added to the Resource"},{"line_number":321,"context_line":"   Provider with the UUID ``e2f8607b-0683-4141-a8af-f5e20682e28c`` that"},{"line_number":322,"context_line":"   corresponds to the PCI address ``0000:85:00:0``."},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"#. Amend the flavor to add a requested trait"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_be2e74a2","line":322,"updated":"2020-04-08 11:00:31.000000000","message":"as shown above.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a83586c201b6400243a76298ef77a2f4d228ac8f","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"   In this case, the trait ``CUSTOM_NVIDIA_11`` will be added to the Resource"},{"line_number":321,"context_line":"   Provider with the UUID ``e2f8607b-0683-4141-a8af-f5e20682e28c`` that"},{"line_number":322,"context_line":"   corresponds to the PCI address ``0000:85:00:0``."},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"#. Amend the flavor to add a requested trait"},{"line_number":325,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"df33271e_5241190b","line":322,"in_reply_to":"df33271e_be2e74a2","updated":"2020-04-08 13:00:27.000000000","message":"will be done in a FUP","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ded8729e0323bd7e8ebe3c9b6aaabb3424d0c3d2","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      enabled_vgpu_types \u003d nvidia-35"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"   If you want to support more than a single GPU type, you need to provide a"},{"line_number":39,"context_line":"   separate `nova.conf` section for each device. For example:"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"   .. code-block:: ini"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"df33271e_3fc99a58","line":39,"range":{"start_line":39,"start_character":12,"end_line":39,"end_character":23},"updated":"2020-04-09 11:30:43.000000000","message":"``nova.conf`` (or :file:`nova.conf`)","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"94f2b68662a2032495b5a8debbcf3f5c17913e0b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"      enabled_vgpu_types \u003d nvidia-35"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"   If you want to support more than a single GPU type, you need to provide a"},{"line_number":39,"context_line":"   separate `nova.conf` section for each device. For example:"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"   .. code-block:: ini"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"df33271e_a5bf58a8","line":39,"range":{"start_line":39,"start_character":12,"end_line":39,"end_character":23},"in_reply_to":"df33271e_3fc99a58","updated":"2020-04-09 14:14:17.000000000","message":"Done","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ded8729e0323bd7e8ebe3c9b6aaabb3424d0c3d2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   If the same PCI address is provided for two different types, nova-compute"},{"line_number":55,"context_line":"   will return an InvalidLibvirtGPUConfig exception at restart."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"   To know which specific type(s) to mention, please refer to `How to discover"},{"line_number":58,"context_line":"   a GPU type`_."}],"source_content_type":"text/x-rst","patch_set":10,"id":"df33271e_dfdd0e15","line":55,"range":{"start_line":55,"start_character":18,"end_line":55,"end_character":41},"updated":"2020-04-09 11:30:43.000000000","message":"This might be a bit specific. How about just saying \"nova will refuse to start\"?","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"94f2b68662a2032495b5a8debbcf3f5c17913e0b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   If the same PCI address is provided for two different types, nova-compute"},{"line_number":55,"context_line":"   will return an InvalidLibvirtGPUConfig exception at restart."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"   To know which specific type(s) to mention, please refer to `How to discover"},{"line_number":58,"context_line":"   a GPU type`_."}],"source_content_type":"text/x-rst","patch_set":10,"id":"df33271e_45fdac6c","line":55,"range":{"start_line":55,"start_character":18,"end_line":55,"end_character":41},"in_reply_to":"df33271e_7f8cc2d6","updated":"2020-04-09 14:14:17.000000000","message":"Done","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9b90a0ad965028afcf249994b0b218944a9592c0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"   where you have to define which physical GPUs are supported per GPU type."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"   If the same PCI address is provided for two different types, nova-compute"},{"line_number":55,"context_line":"   will return an InvalidLibvirtGPUConfig exception at restart."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"   To know which specific type(s) to mention, please refer to `How to discover"},{"line_number":58,"context_line":"   a GPU type`_."}],"source_content_type":"text/x-rst","patch_set":10,"id":"df33271e_7f8cc2d6","line":55,"range":{"start_line":55,"start_character":18,"end_line":55,"end_character":41},"in_reply_to":"df33271e_dfdd0e15","updated":"2020-04-09 11:57:28.000000000","message":"ya i think that is better or perhaps\n\n\"nova will refuse to start and issue an error in the logs.\"\n\nalthough i would be fine with this in a fup same for the  nova.conf above","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"}],"nova/compute/manager.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2b78932e8b05657ed7f12bc5d6c4c9db159fd70","unresolved":false,"context_lines":[{"line_number":1384,"context_line":"            whitelist.Whitelist(CONF.pci.passthrough_whitelist)"},{"line_number":1385,"context_line":""},{"line_number":1386,"context_line":"        nova.conf.neutron.register_dynamic_opts(CONF)"},{"line_number":1387,"context_line":"        # Even if only libvirt uses them, make it abstractional for all drivers"},{"line_number":1388,"context_line":"        nova.conf.devices.register_dynamic_opts(CONF)"},{"line_number":1389,"context_line":""},{"line_number":1390,"context_line":"        # Override the number of concurrent disk operations allowed if the"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_5a589554","line":1387,"range":{"start_line":1387,"start_character":50,"end_line":1387,"end_character":63},"updated":"2020-04-02 13:57:38.000000000","message":"available? or abstract? abstrational is not really a word","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":1384,"context_line":"            whitelist.Whitelist(CONF.pci.passthrough_whitelist)"},{"line_number":1385,"context_line":""},{"line_number":1386,"context_line":"        nova.conf.neutron.register_dynamic_opts(CONF)"},{"line_number":1387,"context_line":"        # Even if only libvirt uses them, make it abstractional for all drivers"},{"line_number":1388,"context_line":"        nova.conf.devices.register_dynamic_opts(CONF)"},{"line_number":1389,"context_line":""},{"line_number":1390,"context_line":"        # Override the number of concurrent disk operations allowed if the"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_0b7b4a8b","line":1387,"range":{"start_line":1387,"start_character":50,"end_line":1387,"end_character":63},"in_reply_to":"df33271e_5a589554","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"}],"nova/conf/devices.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section must be configured with a single configuration option,"},{"line_number":32,"context_line":"``device_addresses``, which should be a list of PCI addresses corresponding to"},{"line_number":33,"context_line":"the physical GPU(s) to assign to this type."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"An example is as the following::"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_cdb77186","line":33,"updated":"2020-04-07 10:57:36.000000000","message":"I think we should mention that one device can only be mentioned in one of the [vgpu_$(VGPU_TYPE)] section","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section must be configured with a single configuration option,"},{"line_number":32,"context_line":"``device_addresses``, which should be a list of PCI addresses corresponding to"},{"line_number":33,"context_line":"the physical GPU(s) to assign to this type."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"An example is as the following::"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_0a02d1b4","line":33,"in_reply_to":"df33271e_cdb77186","updated":"2020-04-07 20:51:02.000000000","message":"Hu, no. You can have more than only one pGPU for a type (see the example below), but you need to make sure that all the types you want to support are having at least *one* pGPU for it.\n\nEither way, trying to clarify it.","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":35,"context_line":"An example is as the following::"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    [devices]"},{"line_number":38,"context_line":"    enabled_vgpu_types \u003d nvidia-11,nvidia-12"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    [vgpu_nvidia-35]"},{"line_number":41,"context_line":"    device_addresses \u003d 0000:84:00.0,0000:85:00.0"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_2da6dd54","line":38,"range":{"start_line":38,"start_character":25,"end_line":38,"end_character":44},"updated":"2020-04-07 10:57:36.000000000","message":"This is now inconsistent with the types mentioned in the dynamic sections below. Also try to keep the examples in sync with the documentation in virtual-gpu.rst","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"An example is as the following::"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    [devices]"},{"line_number":38,"context_line":"    enabled_vgpu_types \u003d nvidia-11,nvidia-12"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    [vgpu_nvidia-35]"},{"line_number":41,"context_line":"    device_addresses \u003d 0000:84:00.0,0000:85:00.0"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_ea67adb6","line":38,"range":{"start_line":38,"start_character":25,"end_line":38,"end_character":44},"in_reply_to":"df33271e_2da6dd54","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c00b205e11124a5431d0bf8e3df065b868d33f77","unresolved":false,"context_lines":[{"line_number":27,"context_line":"guest instance."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"If more than one single vGPU type is provided, then for each *vGPU type* an"},{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_3ed1c4ce","line":30,"range":{"start_line":30,"start_character":45,"end_line":30,"end_character":49},"updated":"2020-04-08 11:00:31.000000000","message":"can?","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a83586c201b6400243a76298ef77a2f4d228ac8f","unresolved":false,"context_lines":[{"line_number":27,"context_line":"guest instance."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"If more than one single vGPU type is provided, then for each *vGPU type* an"},{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_72453d15","line":30,"range":{"start_line":30,"start_character":45,"end_line":30,"end_character":49},"in_reply_to":"df33271e_3ed1c4ce","updated":"2020-04-08 13:00:27.000000000","message":"will be done in a FUP","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":27,"context_line":"guest instance."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"If more than one single vGPU type is provided, then for each *vGPU type* an"},{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_9848d7cc","line":30,"range":{"start_line":30,"start_character":45,"end_line":30,"end_character":49},"in_reply_to":"df33271e_72453d15","updated":"2020-04-08 17:02:09.000000000","message":"must? I was under the impression you\u0027d have to add these so you could distinguish between them\n\nLater: yeah, you use must in the next sentence :)","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"guest instance."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"If more than one single vGPU type is provided, then for each *vGPU type* an"},{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_fa6c6dd1","line":30,"range":{"start_line":30,"start_character":45,"end_line":30,"end_character":49},"in_reply_to":"df33271e_9848d7cc","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"If more than one single vGPU type is provided, then for each *vGPU type* an"},{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"},{"line_number":34,"context_line":"section is missing (meaning that a specific type is not wanted to use for at"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_180e878c","line":31,"range":{"start_line":31,"start_character":24,"end_line":31,"end_character":30},"updated":"2020-04-08 17:02:09.000000000","message":"**must** (single asterisks are italics)","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c00b205e11124a5431d0bf8e3df065b868d33f77","unresolved":false,"context_lines":[{"line_number":29,"context_line":"If more than one single vGPU type is provided, then for each *vGPU type* an"},{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"},{"line_number":34,"context_line":"section is missing (meaning that a specific type is not wanted to use for at"},{"line_number":35,"context_line":"least one physical GPU) or if no device addresses are provided, then Nova will"},{"line_number":36,"context_line":"only use the first type that was provided by ``[devices]/enabled_vgpu_types``."}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_c1bf19f9","line":33,"range":{"start_line":32,"start_character":30,"end_line":33,"end_character":59},"updated":"2020-04-08 11:00:31.000000000","message":"pGPUs can only be assigned to one vgpu_ type right?","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"If more than one single vGPU type is provided, then for each *vGPU type* an"},{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"},{"line_number":34,"context_line":"section is missing (meaning that a specific type is not wanted to use for at"},{"line_number":35,"context_line":"least one physical GPU) or if no device addresses are provided, then Nova will"},{"line_number":36,"context_line":"only use the first type that was provided by ``[devices]/enabled_vgpu_types``."}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_7a605dd0","line":33,"range":{"start_line":32,"start_character":30,"end_line":33,"end_character":59},"in_reply_to":"df33271e_6ceb94db","updated":"2020-04-08 21:42:55.000000000","message":"We limit it by Nova for now (because of nvidia) but sure we can support it in a next cycle.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8e62747d168d9ecc232cf5ecd35a73e18b571185","unresolved":false,"context_lines":[{"line_number":29,"context_line":"If more than one single vGPU type is provided, then for each *vGPU type* an"},{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"},{"line_number":34,"context_line":"section is missing (meaning that a specific type is not wanted to use for at"},{"line_number":35,"context_line":"least one physical GPU) or if no device addresses are provided, then Nova will"},{"line_number":36,"context_line":"only use the first type that was provided by ``[devices]/enabled_vgpu_types``."}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_6ceb94db","line":33,"range":{"start_line":32,"start_character":30,"end_line":33,"end_character":59},"in_reply_to":"df33271e_b24fc532","updated":"2020-04-08 17:20:49.000000000","message":"again this is an nvidia limitation and for now a nova one but yes you ar correct.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a83586c201b6400243a76298ef77a2f4d228ac8f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"If more than one single vGPU type is provided, then for each *vGPU type* an"},{"line_number":30,"context_line":"additional section, ``[vgpu_$(VGPU_TYPE)]``, will be added to the configuration"},{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"},{"line_number":34,"context_line":"section is missing (meaning that a specific type is not wanted to use for at"},{"line_number":35,"context_line":"least one physical GPU) or if no device addresses are provided, then Nova will"},{"line_number":36,"context_line":"only use the first type that was provided by ``[devices]/enabled_vgpu_types``."}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_b24fc532","line":33,"range":{"start_line":32,"start_character":30,"end_line":33,"end_character":59},"in_reply_to":"df33271e_c1bf19f9","updated":"2020-04-08 13:00:27.000000000","message":"Correct, I\u0027ll clarify here and within the doc in a FUP","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"},{"line_number":34,"context_line":"section is missing (meaning that a specific type is not wanted to use for at"},{"line_number":35,"context_line":"least one physical GPU) or if no device addresses are provided, then Nova will"},{"line_number":36,"context_line":"only use the first type that was provided by ``[devices]/enabled_vgpu_types``."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_188327ce","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":10},"updated":"2020-04-08 17:02:09.000000000","message":"sections are","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":31,"context_line":"file. Each section then *must* be configured with a single configuration"},{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"},{"line_number":34,"context_line":"section is missing (meaning that a specific type is not wanted to use for at"},{"line_number":35,"context_line":"least one physical GPU) or if no device addresses are provided, then Nova will"},{"line_number":36,"context_line":"only use the first type that was provided by ``[devices]/enabled_vgpu_types``."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_3a6a55b2","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":10},"in_reply_to":"df33271e_188327ce","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"},{"line_number":34,"context_line":"section is missing (meaning that a specific type is not wanted to use for at"},{"line_number":35,"context_line":"least one physical GPU) or if no device addresses are provided, then Nova will"},{"line_number":36,"context_line":"only use the first type that was provided by ``[devices]/enabled_vgpu_types``."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"An example is as the following::"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_b864bb4a","line":36,"updated":"2020-04-08 17:02:09.000000000","message":"This last sentence suggests that if you\u0027re missing even a single section, then we\u0027ll always fall back to using only the first value from \u0027[devices] enabled_vgpu_types\u0027. Is that true?\n\nLater: yes, it seems so. This is pretty important. I\u0027d probably make this sentence its own paragraph, tbh\n\n[1] https://review.opendev.org/#/c/715490/9/nova/virt/libvirt/driver.py@6523","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type. If one or more"},{"line_number":34,"context_line":"section is missing (meaning that a specific type is not wanted to use for at"},{"line_number":35,"context_line":"least one physical GPU) or if no device addresses are provided, then Nova will"},{"line_number":36,"context_line":"only use the first type that was provided by ``[devices]/enabled_vgpu_types``."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"An example is as the following::"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_daa6c90f","line":36,"in_reply_to":"df33271e_b864bb4a","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9386c4d18ea7ba8ec2336ac28afcc0c6e628d997","unresolved":false,"context_lines":[{"line_number":37,"context_line":"then Nova will only use the first type that was provided by"},{"line_number":38,"context_line":"``[devices]/enabled_vgpu_types``."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"If the same PCI address is provided for two different types, nova-compute will"},{"line_number":41,"context_line":"return an InvalidLibvirtGPUConfig exception at restart."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"An example is as the following::"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_ce8f2228","line":40,"range":{"start_line":40,"start_character":0,"end_line":40,"end_character":59},"updated":"2020-04-09 09:10:17.000000000","message":"This is what I wanted to see. Thanks!","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"47340cf03aa513a7c2197d9fb8b26ada61e92eab","unresolved":false,"context_lines":[{"line_number":32,"context_line":"option, ``device_addresses``, which should be a list of PCI addresses"},{"line_number":33,"context_line":"corresponding to the physical GPU(s) to assign to this type."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"If one or more sections are missing (meaning that a specific type is not wanted"},{"line_number":36,"context_line":"to use for at least one physical GPU) or if no device addresses are provided,"},{"line_number":37,"context_line":"then Nova will only use the first type that was provided by"},{"line_number":38,"context_line":"``[devices]/enabled_vgpu_types``."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"If the same PCI address is provided for two different types, nova-compute will"},{"line_number":41,"context_line":"return an InvalidLibvirtGPUConfig exception at restart."}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_535d7645","line":38,"range":{"start_line":35,"start_character":0,"end_line":38,"end_character":33},"updated":"2020-04-09 14:59:18.000000000","message":"This is no longer true, right? Now you\u0027re hard failing","commit_id":"32f6085c7d87fe97f257267b67bd37b38ad1cde1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e0db5f8d6c720582d3cf1cb32babd5c25d67dc49","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    [vgpu_nvidia-36]"},{"line_number":52,"context_line":"    device_addresses \u003d 0000:86:00.0"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"\"\"\")"},{"line_number":56,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_8e2fd186","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":0},"updated":"2020-04-09 15:22:20.000000000","message":"nit","commit_id":"32f6085c7d87fe97f257267b67bd37b38ad1cde1"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":23369,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"},{"line_number":23370,"context_line":"        self.assertEqual([], drvr._get_supported_vgpu_types())"},{"line_number":23371,"context_line":""},{"line_number":23372,"context_line":"        # Now, provide only one supported vGPU type"},{"line_number":23373,"context_line":"        self.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027], group\u003d\u0027devices\u0027)"},{"line_number":23374,"context_line":"        self.assertEqual([\u0027nvidia-11\u0027], drvr._get_supported_vgpu_types())"},{"line_number":23375,"context_line":"        # Given we only support one vGPU type, we don\u0027t have any map for PCI"},{"line_number":23376,"context_line":"        # devices *yet*"},{"line_number":23377,"context_line":"        self.assertEqual({}, drvr.pgpu_type)"},{"line_number":23378,"context_line":"        msg \u003d (\"the vGPU type \u0027%(type)s\u0027 was listed in \u0027[devices]/\""},{"line_number":23379,"context_line":"               \"enabled_vgpu_types\u0027 but no corresponding \""},{"line_number":23380,"context_line":"               \"\u0027[vgpu_%(type)s]\u0027 group or \""},{"line_number":23381,"context_line":"               \"\u0027[vgpu_%(type)s]/device_addresses\u0027 \""},{"line_number":23382,"context_line":"               \"option was defined. Only the first type \u0027%(ftype)s\u0027 \""},{"line_number":23383,"context_line":"               \"will be used.\" % {\u0027type\u0027: \u0027nvidia-11\u0027,"},{"line_number":23384,"context_line":"                                  \u0027ftype\u0027: \u0027nvidia-11\u0027})"},{"line_number":23385,"context_line":"        mock_warning.assert_called_once_with(msg)"},{"line_number":23386,"context_line":"        # For further checking"},{"line_number":23387,"context_line":"        mock_warning.reset_mock()"},{"line_number":23388,"context_line":""},{"line_number":23389,"context_line":"        # Now two types without forgetting to provide the pGPU addresses"},{"line_number":23390,"context_line":"        self.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027, \u0027nvidia-12\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_f8480388","line":23387,"range":{"start_line":23372,"start_character":0,"end_line":23387,"end_character":33},"updated":"2020-04-08 17:02:09.000000000","message":"I\u0027m not saying this is a bad idea but do we need to do this? If someone only wants to support a single type, is it necessary to ask them to configure the new section?","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":23369,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"},{"line_number":23370,"context_line":"        self.assertEqual([], drvr._get_supported_vgpu_types())"},{"line_number":23371,"context_line":""},{"line_number":23372,"context_line":"        # Now, provide only one supported vGPU type"},{"line_number":23373,"context_line":"        self.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027], group\u003d\u0027devices\u0027)"},{"line_number":23374,"context_line":"        self.assertEqual([\u0027nvidia-11\u0027], drvr._get_supported_vgpu_types())"},{"line_number":23375,"context_line":"        # Given we only support one vGPU type, we don\u0027t have any map for PCI"},{"line_number":23376,"context_line":"        # devices *yet*"},{"line_number":23377,"context_line":"        self.assertEqual({}, drvr.pgpu_type)"},{"line_number":23378,"context_line":"        msg \u003d (\"the vGPU type \u0027%(type)s\u0027 was listed in \u0027[devices]/\""},{"line_number":23379,"context_line":"               \"enabled_vgpu_types\u0027 but no corresponding \""},{"line_number":23380,"context_line":"               \"\u0027[vgpu_%(type)s]\u0027 group or \""},{"line_number":23381,"context_line":"               \"\u0027[vgpu_%(type)s]/device_addresses\u0027 \""},{"line_number":23382,"context_line":"               \"option was defined. Only the first type \u0027%(ftype)s\u0027 \""},{"line_number":23383,"context_line":"               \"will be used.\" % {\u0027type\u0027: \u0027nvidia-11\u0027,"},{"line_number":23384,"context_line":"                                  \u0027ftype\u0027: \u0027nvidia-11\u0027})"},{"line_number":23385,"context_line":"        mock_warning.assert_called_once_with(msg)"},{"line_number":23386,"context_line":"        # For further checking"},{"line_number":23387,"context_line":"        mock_warning.reset_mock()"},{"line_number":23388,"context_line":""},{"line_number":23389,"context_line":"        # Now two types without forgetting to provide the pGPU addresses"},{"line_number":23390,"context_line":"        self.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027, \u0027nvidia-12\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_9aee0120","line":23387,"range":{"start_line":23372,"start_character":0,"end_line":23387,"end_character":33},"in_reply_to":"df33271e_f8480388","updated":"2020-04-08 21:42:55.000000000","message":"\u003e If someone only wants to support a single type, is it necessary to ask\n \u003e them to configure the new section?\n\nFortunately, no. It works like for Train (the operators don\u0027t need to modify the options before upgrading) : if you only provide one type, then you don\u0027t need to provide the related section.\n\nLater : Oh, I understand your concern. Sure, I\u0027ll not provide a warning if so.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":23411,"context_line":"                         drvr._get_supported_vgpu_types())"},{"line_number":23412,"context_line":"        self.assertEqual({\u00270000:84:00.0\u0027: \u0027nvidia-11\u0027,"},{"line_number":23413,"context_line":"                          \u00270000:85:00.0\u0027: \u0027nvidia-12\u0027}, drvr.pgpu_type)"},{"line_number":23414,"context_line":""},{"line_number":23415,"context_line":"    def test_get_supported_vgpu_types_with_duplicate_types(self):"},{"line_number":23416,"context_line":"        self.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027, \u0027nvidia-12\u0027],"},{"line_number":23417,"context_line":"                   group\u003d\u0027devices\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_9859f75b","line":23414,"updated":"2020-04-08 17:02:09.000000000","message":"Can you check that the log is empty (after resetting the mock)?","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":23411,"context_line":"                         drvr._get_supported_vgpu_types())"},{"line_number":23412,"context_line":"        self.assertEqual({\u00270000:84:00.0\u0027: \u0027nvidia-11\u0027,"},{"line_number":23413,"context_line":"                          \u00270000:85:00.0\u0027: \u0027nvidia-12\u0027}, drvr.pgpu_type)"},{"line_number":23414,"context_line":""},{"line_number":23415,"context_line":"    def test_get_supported_vgpu_types_with_duplicate_types(self):"},{"line_number":23416,"context_line":"        self.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027, \u0027nvidia-12\u0027],"},{"line_number":23417,"context_line":"                   group\u003d\u0027devices\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_dadec93c","line":23414,"in_reply_to":"df33271e_9859f75b","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ded8729e0323bd7e8ebe3c9b6aaabb3424d0c3d2","unresolved":false,"context_lines":[{"line_number":23333,"context_line":"                \u0027._get_mdev_capable_devices\u0027)"},{"line_number":23334,"context_line":"    def test_get_gpu_inventories_with_two_types(self, get_mdev_capable_devs):"},{"line_number":23335,"context_line":"        self.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027, \u0027nvidia-12\u0027],"},{"line_number":23336,"context_line":"                                       group\u003d\u0027devices\u0027)"},{"line_number":23337,"context_line":"        # we need to call the below again to ensure the updated"},{"line_number":23338,"context_line":"        # \u0027device_addresses\u0027 value is read and the new groups created"},{"line_number":23339,"context_line":"        nova.conf.devices.register_dynamic_opts(CONF)"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_1ffdb66d","line":23336,"range":{"start_line":23336,"start_character":19,"end_line":23336,"end_character":39},"updated":"2020-04-09 11:30:43.000000000","message":"nit","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9b90a0ad965028afcf249994b0b218944a9592c0","unresolved":false,"context_lines":[{"line_number":23333,"context_line":"                \u0027._get_mdev_capable_devices\u0027)"},{"line_number":23334,"context_line":"    def test_get_gpu_inventories_with_two_types(self, get_mdev_capable_devs):"},{"line_number":23335,"context_line":"        self.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027, \u0027nvidia-12\u0027],"},{"line_number":23336,"context_line":"                                       group\u003d\u0027devices\u0027)"},{"line_number":23337,"context_line":"        # we need to call the below again to ensure the updated"},{"line_number":23338,"context_line":"        # \u0027device_addresses\u0027 value is read and the new groups created"},{"line_number":23339,"context_line":"        nova.conf.devices.register_dynamic_opts(CONF)"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_bf8e4976","line":23336,"range":{"start_line":23336,"start_character":19,"end_line":23336,"end_character":39},"in_reply_to":"df33271e_1ffdb66d","updated":"2020-04-09 11:57:28.000000000","message":"hehe actully it should be \nself.flags(\n    enabled_vgpu_types\u003d[\u0027nvidia-11\u0027, \u0027nvidia-12\u0027], group\u003d\u0027devices\u0027)\nif you need to wrap you should move all paramters to the next line althouh\n\nself.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027, \u0027nvidia-12\u0027],\n           group\u003d\u0027devices\u0027)\n\nis also allowed by pep8 i just wastes space horizontally\n\nim kind of surprised pep8 flake8 allows the current indentation but ya i would also adresss this in a followup","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"94f2b68662a2032495b5a8debbcf3f5c17913e0b","unresolved":false,"context_lines":[{"line_number":23333,"context_line":"                \u0027._get_mdev_capable_devices\u0027)"},{"line_number":23334,"context_line":"    def test_get_gpu_inventories_with_two_types(self, get_mdev_capable_devs):"},{"line_number":23335,"context_line":"        self.flags(enabled_vgpu_types\u003d[\u0027nvidia-11\u0027, \u0027nvidia-12\u0027],"},{"line_number":23336,"context_line":"                                       group\u003d\u0027devices\u0027)"},{"line_number":23337,"context_line":"        # we need to call the below again to ensure the updated"},{"line_number":23338,"context_line":"        # \u0027device_addresses\u0027 value is read and the new groups created"},{"line_number":23339,"context_line":"        nova.conf.devices.register_dynamic_opts(CONF)"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_e5f5e058","line":23336,"range":{"start_line":23336,"start_character":19,"end_line":23336,"end_character":39},"in_reply_to":"df33271e_bf8e4976","updated":"2020-04-09 14:14:17.000000000","message":"Done","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"507367674c18dc96bfdc3377e0d82c22de184295","unresolved":false,"context_lines":[{"line_number":23870,"context_line":""},{"line_number":23871,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"},{"line_number":23872,"context_line":"        drvr.init_host(host\u003d\u0027foo\u0027)"},{"line_number":23873,"context_line":"        # Only mdev2 will be recreated since mdev3 has a vGPU type that the"},{"line_number":23874,"context_line":"        # operator no longer wants to support."},{"line_number":23875,"context_line":"        privsep_create_mdev.assert_called_once_with("},{"line_number":23876,"context_line":"            \"0000:06:00.0\", \u0027nvidia-11\u0027, uuid\u003duuids.mdev2)"},{"line_number":23877,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_b96ae17d","line":23874,"range":{"start_line":23873,"start_character":39,"end_line":23874,"end_character":46},"updated":"2020-04-09 15:52:54.000000000","message":"*facepalms* forgot to remove it, preparing a FUP","commit_id":"f765934a1d9ad57df8aacd75c45fc5e59b3168be"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e5d156fafee63b44633a749964bac8340bd0c554","unresolved":false,"context_lines":[{"line_number":23870,"context_line":""},{"line_number":23871,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), True)"},{"line_number":23872,"context_line":"        drvr.init_host(host\u003d\u0027foo\u0027)"},{"line_number":23873,"context_line":"        # Only mdev2 will be recreated since mdev3 has a vGPU type that the"},{"line_number":23874,"context_line":"        # operator no longer wants to support."},{"line_number":23875,"context_line":"        privsep_create_mdev.assert_called_once_with("},{"line_number":23876,"context_line":"            \"0000:06:00.0\", \u0027nvidia-11\u0027, uuid\u003duuids.mdev2)"},{"line_number":23877,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_39da514a","line":23874,"range":{"start_line":23873,"start_character":39,"end_line":23874,"end_character":46},"in_reply_to":"df33271e_b96ae17d","updated":"2020-04-09 15:54:56.000000000","message":":)","commit_id":"f765934a1d9ad57df8aacd75c45fc5e59b3168be"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"65060bb127b9e393b3f7727c0354ba0e1f619fa6","unresolved":false,"context_lines":[{"line_number":801,"context_line":"                # Count how many vGPUs are in use for this instance"},{"line_number":802,"context_line":"                dev_info \u003d self._get_mediated_device_information(dev_name)"},{"line_number":803,"context_line":"                parent \u003d dev_info[\u0027parent\u0027]"},{"line_number":804,"context_line":"                mdev_created \u003d self._create_new_mediated_device("},{"line_number":805,"context_line":"                    parent, uuid\u003dmdev_uuid)"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"    def _set_multiattach_support(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_61986969","line":804,"updated":"2020-04-01 15:21:04.000000000","message":"F841 local variable \u0027mdev_created\u0027 is assigned to but never used","commit_id":"3677edd07a7ea7c64e2f95c59469332f33d05a58"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2b78932e8b05657ed7f12bc5d6c4c9db159fd70","unresolved":false,"context_lines":[{"line_number":721,"context_line":"                        \"force_raw_images to True.\")"},{"line_number":722,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        self._get_supported_vgpu_types()"},{"line_number":725,"context_line":"        # TODO(sbauza): Remove this code once mediated devices are persisted"},{"line_number":726,"context_line":"        # across reboots."},{"line_number":727,"context_line":"        self._recreate_assigned_mediated_devices()"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_ee99eac3","line":724,"range":{"start_line":724,"start_character":8,"end_line":724,"end_character":40},"updated":"2020-04-02 13:57:38.000000000","message":"set  self.supported_vgpu_types \u003d self._get_supported_vgpu_types()\n\ninstead and see my comment below","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":721,"context_line":"                        \"force_raw_images to True.\")"},{"line_number":722,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        self._get_supported_vgpu_types()"},{"line_number":725,"context_line":"        # TODO(sbauza): Remove this code once mediated devices are persisted"},{"line_number":726,"context_line":"        # across reboots."},{"line_number":727,"context_line":"        self._recreate_assigned_mediated_devices()"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_2ba3aeb3","line":724,"range":{"start_line":724,"start_character":8,"end_line":724,"end_character":40},"in_reply_to":"df33271e_ee99eac3","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2b78932e8b05657ed7f12bc5d6c4c9db159fd70","unresolved":false,"context_lines":[{"line_number":6500,"context_line":"            greenthread.sleep(0)"},{"line_number":6501,"context_line":"        return total"},{"line_number":6502,"context_line":""},{"line_number":6503,"context_line":"    def _get_supported_vgpu_types(self):"},{"line_number":6504,"context_line":"        if not CONF.devices.enabled_vgpu_types:"},{"line_number":6505,"context_line":"            self.supported_vgpu_types \u003d []"},{"line_number":6506,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_6ed4ba48","line":6503,"range":{"start_line":6503,"start_character":8,"end_line":6503,"end_character":33},"updated":"2020-04-02 13:57:38.000000000","message":"if you dont make this return as i suggest below then you need to rename thist to _set... as this is nolonger a getter","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6500,"context_line":"            greenthread.sleep(0)"},{"line_number":6501,"context_line":"        return total"},{"line_number":6502,"context_line":""},{"line_number":6503,"context_line":"    def _get_supported_vgpu_types(self):"},{"line_number":6504,"context_line":"        if not CONF.devices.enabled_vgpu_types:"},{"line_number":6505,"context_line":"            self.supported_vgpu_types \u003d []"},{"line_number":6506,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_ebc70663","line":6503,"range":{"start_line":6503,"start_character":8,"end_line":6503,"end_character":33},"in_reply_to":"df33271e_6ed4ba48","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2b78932e8b05657ed7f12bc5d6c4c9db159fd70","unresolved":false,"context_lines":[{"line_number":6502,"context_line":""},{"line_number":6503,"context_line":"    def _get_supported_vgpu_types(self):"},{"line_number":6504,"context_line":"        if not CONF.devices.enabled_vgpu_types:"},{"line_number":6505,"context_line":"            self.supported_vgpu_types \u003d []"},{"line_number":6506,"context_line":"            return"},{"line_number":6507,"context_line":""},{"line_number":6508,"context_line":"        for vgpu_type in CONF.devices.enabled_vgpu_types:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_0e440e46","line":6505,"range":{"start_line":6505,"start_character":12,"end_line":6505,"end_character":42},"updated":"2020-04-02 13:57:38.000000000","message":"i think it would be better not to have this sideefect it will make testing harder.\n\njust return []","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6502,"context_line":""},{"line_number":6503,"context_line":"    def _get_supported_vgpu_types(self):"},{"line_number":6504,"context_line":"        if not CONF.devices.enabled_vgpu_types:"},{"line_number":6505,"context_line":"            self.supported_vgpu_types \u003d []"},{"line_number":6506,"context_line":"            return"},{"line_number":6507,"context_line":""},{"line_number":6508,"context_line":"        for vgpu_type in CONF.devices.enabled_vgpu_types:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_cbc20253","line":6505,"range":{"start_line":6505,"start_character":12,"end_line":6505,"end_character":42},"in_reply_to":"df33271e_0e440e46","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2b78932e8b05657ed7f12bc5d6c4c9db159fd70","unresolved":false,"context_lines":[{"line_number":6517,"context_line":"                       \"will be used.\" % {\u0027type\u0027: vgpu_type,"},{"line_number":6518,"context_line":"                                          \u0027ftype\u0027: first_type})"},{"line_number":6519,"context_line":"                LOG.warning(msg)"},{"line_number":6520,"context_line":"                self.supported_vgpu_types \u003d [first_type]"},{"line_number":6521,"context_line":"                # We need to reset the mapping table that we started to use"},{"line_number":6522,"context_line":"                self.pgpu_type.clear()"},{"line_number":6523,"context_line":"                return"},{"line_number":6524,"context_line":"            for device_address in group.device_addresses:"},{"line_number":6525,"context_line":"                if self.pgpu_type[device_address]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_2ebe32fe","line":6522,"range":{"start_line":6520,"start_character":16,"end_line":6522,"end_character":38},"updated":"2020-04-02 13:57:38.000000000","message":"self.pgpu_type.clear()\nreturn [first_type]","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6517,"context_line":"                       \"will be used.\" % {\u0027type\u0027: vgpu_type,"},{"line_number":6518,"context_line":"                                          \u0027ftype\u0027: first_type})"},{"line_number":6519,"context_line":"                LOG.warning(msg)"},{"line_number":6520,"context_line":"                self.supported_vgpu_types \u003d [first_type]"},{"line_number":6521,"context_line":"                # We need to reset the mapping table that we started to use"},{"line_number":6522,"context_line":"                self.pgpu_type.clear()"},{"line_number":6523,"context_line":"                return"},{"line_number":6524,"context_line":"            for device_address in group.device_addresses:"},{"line_number":6525,"context_line":"                if self.pgpu_type[device_address]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_6ba9368e","line":6522,"range":{"start_line":6520,"start_character":16,"end_line":6522,"end_character":38},"in_reply_to":"df33271e_2ebe32fe","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2b78932e8b05657ed7f12bc5d6c4c9db159fd70","unresolved":false,"context_lines":[{"line_number":6535,"context_line":"                        reason\u003d\"incorrect PCI address: %s\" % device_address"},{"line_number":6536,"context_line":"                    )"},{"line_number":6537,"context_line":"                self.pgpu_type[device_address] \u003d vgpu_type"},{"line_number":6538,"context_line":"        self.supported_vgpu_types \u003d CONF.devices.enabled_vgpu_types"},{"line_number":6539,"context_line":""},{"line_number":6540,"context_line":"    def _get_vgpu_type_per_pgpu(device_address):"},{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_eede0a6b","line":6538,"range":{"start_line":6538,"start_character":8,"end_line":6538,"end_character":34},"updated":"2020-04-02 13:57:38.000000000","message":"return","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6535,"context_line":"                        reason\u003d\"incorrect PCI address: %s\" % device_address"},{"line_number":6536,"context_line":"                    )"},{"line_number":6537,"context_line":"                self.pgpu_type[device_address] \u003d vgpu_type"},{"line_number":6538,"context_line":"        self.supported_vgpu_types \u003d CONF.devices.enabled_vgpu_types"},{"line_number":6539,"context_line":""},{"line_number":6540,"context_line":"    def _get_vgpu_type_per_pgpu(device_address):"},{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_4b0f1287","line":6538,"range":{"start_line":6538,"start_character":8,"end_line":6538,"end_character":34},"in_reply_to":"df33271e_eede0a6b","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":6538,"context_line":"        self.supported_vgpu_types \u003d CONF.devices.enabled_vgpu_types"},{"line_number":6539,"context_line":""},{"line_number":6540,"context_line":"    def _get_vgpu_type_per_pgpu(device_address):"},{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."},{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_bf58b330","line":6541,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: H401: docstring should not start with a space","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6538,"context_line":"        self.supported_vgpu_types \u003d CONF.devices.enabled_vgpu_types"},{"line_number":6539,"context_line":""},{"line_number":6540,"context_line":"    def _get_vgpu_type_per_pgpu(device_address):"},{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."},{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_ab297ee6","line":6541,"in_reply_to":"df33271e_bf58b330","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":6539,"context_line":""},{"line_number":6540,"context_line":"    def _get_vgpu_type_per_pgpu(device_address):"},{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."},{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""},{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_1f439f43","line":6542,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: H401: docstring should not start with a space","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6539,"context_line":""},{"line_number":6540,"context_line":"    def _get_vgpu_type_per_pgpu(device_address):"},{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."},{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""},{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_8b247a0e","line":6542,"in_reply_to":"df33271e_1f439f43","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":6540,"context_line":"    def _get_vgpu_type_per_pgpu(device_address):"},{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."},{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""},{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"},{"line_number":6546,"context_line":"            # The operator wanted to only support one single type so we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_ff3d1bbb","line":6543,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: H401: docstring should not start with a space","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6540,"context_line":"    def _get_vgpu_type_per_pgpu(device_address):"},{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."},{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""},{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"},{"line_number":6546,"context_line":"            # The operator wanted to only support one single type so we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_eb1f06b4","line":6543,"in_reply_to":"df33271e_ff3d1bbb","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."},{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""},{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"},{"line_number":6546,"context_line":"            # The operator wanted to only support one single type so we can"},{"line_number":6547,"context_line":"            # blindly return it for every single pGPU"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_5f49a75d","line":6544,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: H401: docstring should not start with a space","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6541,"context_line":"        \"\"\" Provides the vGPU type the pGPU supports."},{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""},{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"},{"line_number":6546,"context_line":"            # The operator wanted to only support one single type so we can"},{"line_number":6547,"context_line":"            # blindly return it for every single pGPU"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_2b7baef4","line":6544,"in_reply_to":"df33271e_5f49a75d","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""},{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"},{"line_number":6546,"context_line":"            # The operator wanted to only support one single type so we can"},{"line_number":6547,"context_line":"            # blindly return it for every single pGPU"},{"line_number":6548,"context_line":"            return self.supported_vgpu_types[0]"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_3f44a346","line":6545,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: F821 undefined name \u0027self\u0027","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6542,"context_line":""},{"line_number":6543,"context_line":"        :param device_address: pGPU PCI address or the libvirt name"},{"line_number":6544,"context_line":"        \"\"\""},{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"},{"line_number":6546,"context_line":"            # The operator wanted to only support one single type so we can"},{"line_number":6547,"context_line":"            # blindly return it for every single pGPU"},{"line_number":6548,"context_line":"            return self.supported_vgpu_types[0]"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_0b7eaae2","line":6545,"in_reply_to":"df33271e_3f44a346","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"},{"line_number":6546,"context_line":"            # The operator wanted to only support one single type so we can"},{"line_number":6547,"context_line":"            # blindly return it for every single pGPU"},{"line_number":6548,"context_line":"            return self.supported_vgpu_types[0]"},{"line_number":6549,"context_line":"        try:"},{"line_number":6550,"context_line":"            # Validates whether it\u0027s a PCI ID..."},{"line_number":6551,"context_line":"            pci_utils.parse_address(device_address)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_9f784f90","line":6548,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: F821 undefined name \u0027self\u0027","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6545,"context_line":"        if len(self.supported_vgpu_types) \u003d\u003d 1:"},{"line_number":6546,"context_line":"            # The operator wanted to only support one single type so we can"},{"line_number":6547,"context_line":"            # blindly return it for every single pGPU"},{"line_number":6548,"context_line":"            return self.supported_vgpu_types[0]"},{"line_number":6549,"context_line":"        try:"},{"line_number":6550,"context_line":"            # Validates whether it\u0027s a PCI ID..."},{"line_number":6551,"context_line":"            pci_utils.parse_address(device_address)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_6b8136c3","line":6548,"in_reply_to":"df33271e_9f784f90","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":6556,"context_line":"            device_address \u003d \"{}:{}:{}.{}\".format("},{"line_number":6557,"context_line":"                *device_address[4:].split(\u0027_\u0027))"},{"line_number":6558,"context_line":"        try:"},{"line_number":6559,"context_line":"            return self.pgpu_type[pci_addr]"},{"line_number":6560,"context_line":"        except KeyError:"},{"line_number":6561,"context_line":"            LOG.warning(\"No vGPU type was configured for PCI address: \""},{"line_number":6562,"context_line":"                       \"%s\" % device_address)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_df6e57c7","line":6559,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: F821 undefined name \u0027pci_addr\u0027","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":6556,"context_line":"            device_address \u003d \"{}:{}:{}.{}\".format("},{"line_number":6557,"context_line":"                *device_address[4:].split(\u0027_\u0027))"},{"line_number":6558,"context_line":"        try:"},{"line_number":6559,"context_line":"            return self.pgpu_type[pci_addr]"},{"line_number":6560,"context_line":"        except KeyError:"},{"line_number":6561,"context_line":"            LOG.warning(\"No vGPU type was configured for PCI address: \""},{"line_number":6562,"context_line":"                       \"%s\" % device_address)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_7f7bcb8a","line":6559,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: F821 undefined name \u0027self\u0027","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6556,"context_line":"            device_address \u003d \"{}:{}:{}.{}\".format("},{"line_number":6557,"context_line":"                *device_address[4:].split(\u0027_\u0027))"},{"line_number":6558,"context_line":"        try:"},{"line_number":6559,"context_line":"            return self.pgpu_type[pci_addr]"},{"line_number":6560,"context_line":"        except KeyError:"},{"line_number":6561,"context_line":"            LOG.warning(\"No vGPU type was configured for PCI address: \""},{"line_number":6562,"context_line":"                       \"%s\" % device_address)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_4b8432d3","line":6559,"in_reply_to":"df33271e_7f7bcb8a","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6556,"context_line":"            device_address \u003d \"{}:{}:{}.{}\".format("},{"line_number":6557,"context_line":"                *device_address[4:].split(\u0027_\u0027))"},{"line_number":6558,"context_line":"        try:"},{"line_number":6559,"context_line":"            return self.pgpu_type[pci_addr]"},{"line_number":6560,"context_line":"        except KeyError:"},{"line_number":6561,"context_line":"            LOG.warning(\"No vGPU type was configured for PCI address: \""},{"line_number":6562,"context_line":"                       \"%s\" % device_address)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_ab6e9e2b","line":6559,"in_reply_to":"df33271e_df6e57c7","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":6558,"context_line":"        try:"},{"line_number":6559,"context_line":"            return self.pgpu_type[pci_addr]"},{"line_number":6560,"context_line":"        except KeyError:"},{"line_number":6561,"context_line":"            LOG.warning(\"No vGPU type was configured for PCI address: \""},{"line_number":6562,"context_line":"                       \"%s\" % device_address)"},{"line_number":6563,"context_line":""},{"line_number":6564,"context_line":"    def _count_mediated_devices(self, enabled_vgpu_types):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_bf71d3aa","line":6561,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: H904: String interpolation should be delayed to be handled by the logging code, rather than being done at the point of the logging call. Use \u0027,\u0027 instead of \u0027%\u0027.","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":6558,"context_line":"        try:"},{"line_number":6559,"context_line":"            return self.pgpu_type[pci_addr]"},{"line_number":6560,"context_line":"        except KeyError:"},{"line_number":6561,"context_line":"            LOG.warning(\"No vGPU type was configured for PCI address: \""},{"line_number":6562,"context_line":"                       \"%s\" % device_address)"},{"line_number":6563,"context_line":""},{"line_number":6564,"context_line":"    def _count_mediated_devices(self, enabled_vgpu_types):"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_8b691a26","line":6561,"in_reply_to":"df33271e_bf71d3aa","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"be4c3d395163f9ee50bfb9480109f37dd3ed1e10","unresolved":false,"context_lines":[{"line_number":7020,"context_line":"            dev_supported_type \u003d self._get_vgpu_type_per_pgpu(dev_name)"},{"line_number":7021,"context_line":"            if device[\u0027types\u0027][dev_supported_type][\u0027availableInstances\u0027] \u003e 0:"},{"line_number":7022,"context_line":"                # That physical GPU has enough room for a new mdev"},{"line_number":7023,"context_line":"                # We need the PCI address, not the libvirt name"},{"line_number":7024,"context_line":"                # The libvirt name is like \u0027pci_0000_84_00_0\u0027"},{"line_number":7025,"context_line":"                pci_addr \u003d \"{}:{}:{}.{}\".format(*dev_name[4:].split(\u0027_\u0027))"},{"line_number":7026,"context_line":"                chosen_mdev \u003d nova.privsep.libvirt.create_mdev(pci_addr,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_1f6c3fcc","line":7023,"updated":"2020-04-02 12:52:10.000000000","message":"pep8: F821 undefined name \u0027asked_type\u0027","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e9e4bbafb5a7220f23c930a1edeef96a7cc6829d","unresolved":false,"context_lines":[{"line_number":7020,"context_line":"            dev_supported_type \u003d self._get_vgpu_type_per_pgpu(dev_name)"},{"line_number":7021,"context_line":"            if device[\u0027types\u0027][dev_supported_type][\u0027availableInstances\u0027] \u003e 0:"},{"line_number":7022,"context_line":"                # That physical GPU has enough room for a new mdev"},{"line_number":7023,"context_line":"                # We need the PCI address, not the libvirt name"},{"line_number":7024,"context_line":"                # The libvirt name is like \u0027pci_0000_84_00_0\u0027"},{"line_number":7025,"context_line":"                pci_addr \u003d \"{}:{}:{}.{}\".format(*dev_name[4:].split(\u0027_\u0027))"},{"line_number":7026,"context_line":"                chosen_mdev \u003d nova.privsep.libvirt.create_mdev(pci_addr,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_eb742600","line":7023,"in_reply_to":"df33271e_1f6c3fcc","updated":"2020-04-03 10:24:35.000000000","message":"Done","commit_id":"5c34350eb63f71206d876f58304bb3daffa87003"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":436,"context_line":"    @property"},{"line_number":437,"context_line":"    def supported_vgpu_types(self):"},{"line_number":438,"context_line":"        if not self._supported_vgpu_types:"},{"line_number":439,"context_line":"            self._supported_vgpu_types \u003d self._get_supported_vgpu_types()"},{"line_number":440,"context_line":"        return self._supported_vgpu_types"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def _discover_vpmems(self, vpmem_conf\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_885f17e4","line":439,"range":{"start_line":439,"start_character":46,"end_line":439,"end_character":71},"updated":"2020-04-07 10:57:36.000000000","message":"why do we delay this call? For me it would be more natural to simply call it at L433.","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":436,"context_line":"    @property"},{"line_number":437,"context_line":"    def supported_vgpu_types(self):"},{"line_number":438,"context_line":"        if not self._supported_vgpu_types:"},{"line_number":439,"context_line":"            self._supported_vgpu_types \u003d self._get_supported_vgpu_types()"},{"line_number":440,"context_line":"        return self._supported_vgpu_types"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def _discover_vpmems(self, vpmem_conf\u003dNone):"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_8ae6e1e7","line":439,"range":{"start_line":439,"start_character":46,"end_line":439,"end_character":71},"in_reply_to":"df33271e_885f17e4","updated":"2020-04-07 20:51:02.000000000","message":"that\u0027s reasonable I think","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":6535,"context_line":"                       \"will be used.\" % {\u0027type\u0027: vgpu_type,"},{"line_number":6536,"context_line":"                                          \u0027ftype\u0027: first_type})"},{"line_number":6537,"context_line":"                LOG.warning(msg)"},{"line_number":6538,"context_line":"                # We need to reset the mapping table that we started to use"},{"line_number":6539,"context_line":"                self.pgpu_type.clear()"},{"line_number":6540,"context_line":"                return [first_type]"},{"line_number":6541,"context_line":"            for device_address in group.device_addresses:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_68ba93c0","line":6538,"updated":"2020-04-07 10:57:36.000000000","message":"because that table might already has mapping from previously processed vgpu_type and now we basically reject such config as there are fault later in the dynamic config processing.","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":6535,"context_line":"                       \"will be used.\" % {\u0027type\u0027: vgpu_type,"},{"line_number":6536,"context_line":"                                          \u0027ftype\u0027: first_type})"},{"line_number":6537,"context_line":"                LOG.warning(msg)"},{"line_number":6538,"context_line":"                # We need to reset the mapping table that we started to use"},{"line_number":6539,"context_line":"                self.pgpu_type.clear()"},{"line_number":6540,"context_line":"                return [first_type]"},{"line_number":6541,"context_line":"            for device_address in group.device_addresses:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_019e3462","line":6538,"in_reply_to":"df33271e_68ba93c0","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":6539,"context_line":"                self.pgpu_type.clear()"},{"line_number":6540,"context_line":"                return [first_type]"},{"line_number":6541,"context_line":"            for device_address in group.device_addresses:"},{"line_number":6542,"context_line":"                if self.pgpu_type[device_address]:"},{"line_number":6543,"context_line":"                    raise exception.InvalidLibvirtGPUConfig("},{"line_number":6544,"context_line":"                        reason\u003d\"duplicate types for PCI ID %s\" % device_address"},{"line_number":6545,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_08cf877f","line":6542,"range":{"start_line":6542,"start_character":19,"end_line":6542,"end_character":49},"updated":"2020-04-07 10:57:36.000000000","message":"checking containment would be more descriptive here\n\n  if device_address in self.pgpu_type:","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":6539,"context_line":"                self.pgpu_type.clear()"},{"line_number":6540,"context_line":"                return [first_type]"},{"line_number":6541,"context_line":"            for device_address in group.device_addresses:"},{"line_number":6542,"context_line":"                if self.pgpu_type[device_address]:"},{"line_number":6543,"context_line":"                    raise exception.InvalidLibvirtGPUConfig("},{"line_number":6544,"context_line":"                        reason\u003d\"duplicate types for PCI ID %s\" % device_address"},{"line_number":6545,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_0177543c","line":6542,"range":{"start_line":6542,"start_character":19,"end_line":6542,"end_character":49},"in_reply_to":"df33271e_08cf877f","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":6547,"context_line":"                # If it\u0027s wrong, it will return an exception"},{"line_number":6548,"context_line":"                try:"},{"line_number":6549,"context_line":"                    pci_utils.parse_address(device_address)"},{"line_number":6550,"context_line":"                except exception.NovaException:"},{"line_number":6551,"context_line":"                    raise exception.InvalidLibvirtGPUConfig("},{"line_number":6552,"context_line":"                        reason\u003d\"incorrect PCI address: %s\" % device_address"},{"line_number":6553,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_e877c33a","line":6550,"range":{"start_line":6550,"start_character":33,"end_line":6550,"end_character":46},"updated":"2020-04-07 10:57:36.000000000","message":"super nit: you can be more specific here PciDeviceWrongAddressFormat","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":6547,"context_line":"                # If it\u0027s wrong, it will return an exception"},{"line_number":6548,"context_line":"                try:"},{"line_number":6549,"context_line":"                    pci_utils.parse_address(device_address)"},{"line_number":6550,"context_line":"                except exception.NovaException:"},{"line_number":6551,"context_line":"                    raise exception.InvalidLibvirtGPUConfig("},{"line_number":6552,"context_line":"                        reason\u003d\"incorrect PCI address: %s\" % device_address"},{"line_number":6553,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_e1719046","line":6550,"range":{"start_line":6550,"start_character":33,"end_line":6550,"end_character":46},"in_reply_to":"df33271e_e877c33a","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":6574,"context_line":"                *device_address[4:].split(\u0027_\u0027))"},{"line_number":6575,"context_line":"            # Validates whether it\u0027s a PCI ID..."},{"line_number":6576,"context_line":"            pci_utils.parse_address(device_address)"},{"line_number":6577,"context_line":"        except Exception:"},{"line_number":6578,"context_line":"            # this is not a valid PCI address"},{"line_number":6579,"context_line":"            return"},{"line_number":6580,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_083e6728","line":6577,"range":{"start_line":6577,"start_character":15,"end_line":6577,"end_character":24},"updated":"2020-04-07 10:57:36.000000000","message":"please be consistent, above you caught NovaException for the same situation.","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":6574,"context_line":"                *device_address[4:].split(\u0027_\u0027))"},{"line_number":6575,"context_line":"            # Validates whether it\u0027s a PCI ID..."},{"line_number":6576,"context_line":"            pci_utils.parse_address(device_address)"},{"line_number":6577,"context_line":"        except Exception:"},{"line_number":6578,"context_line":"            # this is not a valid PCI address"},{"line_number":6579,"context_line":"            return"},{"line_number":6580,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_212d38fd","line":6577,"range":{"start_line":6577,"start_character":15,"end_line":6577,"end_character":24},"in_reply_to":"df33271e_083e6728","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":6575,"context_line":"            # Validates whether it\u0027s a PCI ID..."},{"line_number":6576,"context_line":"            pci_utils.parse_address(device_address)"},{"line_number":6577,"context_line":"        except Exception:"},{"line_number":6578,"context_line":"            # this is not a valid PCI address"},{"line_number":6579,"context_line":"            return"},{"line_number":6580,"context_line":"        try:"},{"line_number":6581,"context_line":"            return self.pgpu_type[device_address]"},{"line_number":6582,"context_line":"        except KeyError:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_28436bb1","line":6579,"range":{"start_line":6578,"start_character":0,"end_line":6579,"end_character":18},"updated":"2020-04-07 10:57:36.000000000","message":"this would mean that libvirt returned invalid data? I think we should log a warning about it to make fault tracing easier.","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":6575,"context_line":"            # Validates whether it\u0027s a PCI ID..."},{"line_number":6576,"context_line":"            pci_utils.parse_address(device_address)"},{"line_number":6577,"context_line":"        except Exception:"},{"line_number":6578,"context_line":"            # this is not a valid PCI address"},{"line_number":6579,"context_line":"            return"},{"line_number":6580,"context_line":"        try:"},{"line_number":6581,"context_line":"            return self.pgpu_type[device_address]"},{"line_number":6582,"context_line":"        except KeyError:"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_8134044c","line":6579,"range":{"start_line":6578,"start_character":0,"end_line":6579,"end_character":18},"in_reply_to":"df33271e_28436bb1","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":6582,"context_line":"        except KeyError:"},{"line_number":6583,"context_line":"            LOG.warning(\"No vGPU type was configured for PCI address: %s\","},{"line_number":6584,"context_line":"                        device_address)"},{"line_number":6585,"context_line":"            # We accept to return None instead of raising an exception"},{"line_number":6586,"context_line":"            # because we prefer the callers to return the existing exceptions"},{"line_number":6587,"context_line":"            # in case we can\u0027t find a specific pGPU"},{"line_number":6588,"context_line":"            return"},{"line_number":6589,"context_line":""},{"line_number":6590,"context_line":"    def _count_mediated_devices(self, enabled_vgpu_types):"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_0855c750","line":6587,"range":{"start_line":6585,"start_character":0,"end_line":6587,"end_character":51},"updated":"2020-04-07 10:57:36.000000000","message":"the result of this function is used in multiple places. I think in _create_new_mediated_device() it will cause a KeyError at L7052 and that will not be too helpful for troubleshooting.","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":6582,"context_line":"        except KeyError:"},{"line_number":6583,"context_line":"            LOG.warning(\"No vGPU type was configured for PCI address: %s\","},{"line_number":6584,"context_line":"                        device_address)"},{"line_number":6585,"context_line":"            # We accept to return None instead of raising an exception"},{"line_number":6586,"context_line":"            # because we prefer the callers to return the existing exceptions"},{"line_number":6587,"context_line":"            # in case we can\u0027t find a specific pGPU"},{"line_number":6588,"context_line":"            return"},{"line_number":6589,"context_line":""},{"line_number":6590,"context_line":"    def _count_mediated_devices(self, enabled_vgpu_types):"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_3c839f58","line":6587,"range":{"start_line":6585,"start_character":0,"end_line":6587,"end_character":51},"in_reply_to":"df33271e_0855c750","updated":"2020-04-07 20:51:02.000000000","message":"Shit, good call. I won\u0027t change the behaviour but I\u0027ll fix the problem at L7052.","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":6603,"context_line":"        for mdev in mediated_devices:"},{"line_number":6604,"context_line":"            parent_vgpu_type \u003d self._get_vgpu_type_per_pgpu(mdev[\u0027parent\u0027])"},{"line_number":6605,"context_line":"            if mdev[\u0027type\u0027] !\u003d parent_vgpu_type:"},{"line_number":6606,"context_line":"                # Even if some mdev was created for another vGPU type, just"},{"line_number":6607,"context_line":"                # verify all the mdevs related to the type that their pGPU"},{"line_number":6608,"context_line":"                # has"},{"line_number":6609,"context_line":"                continue"},{"line_number":6610,"context_line":"            counts_per_parent[mdev[\u0027parent\u0027]] +\u003d 1"},{"line_number":6611,"context_line":"        return counts_per_parent"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_a8a13b49","line":6608,"range":{"start_line":6606,"start_character":0,"end_line":6608,"end_character":21},"updated":"2020-04-07 10:57:36.000000000","message":"Does this mean we have a pGPU used for two vgpu_types? Isn\u0027t that disallowed?","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9386c4d18ea7ba8ec2336ac28afcc0c6e628d997","unresolved":false,"context_lines":[{"line_number":6603,"context_line":"        for mdev in mediated_devices:"},{"line_number":6604,"context_line":"            parent_vgpu_type \u003d self._get_vgpu_type_per_pgpu(mdev[\u0027parent\u0027])"},{"line_number":6605,"context_line":"            if mdev[\u0027type\u0027] !\u003d parent_vgpu_type:"},{"line_number":6606,"context_line":"                # Even if some mdev was created for another vGPU type, just"},{"line_number":6607,"context_line":"                # verify all the mdevs related to the type that their pGPU"},{"line_number":6608,"context_line":"                # has"},{"line_number":6609,"context_line":"                continue"},{"line_number":6610,"context_line":"            counts_per_parent[mdev[\u0027parent\u0027]] +\u003d 1"},{"line_number":6611,"context_line":"        return counts_per_parent"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_4ec95257","line":6608,"range":{"start_line":6606,"start_character":0,"end_line":6608,"end_character":21},"in_reply_to":"df33271e_9cbf4bfb","updated":"2020-04-09 09:10:17.000000000","message":"thanks","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":6603,"context_line":"        for mdev in mediated_devices:"},{"line_number":6604,"context_line":"            parent_vgpu_type \u003d self._get_vgpu_type_per_pgpu(mdev[\u0027parent\u0027])"},{"line_number":6605,"context_line":"            if mdev[\u0027type\u0027] !\u003d parent_vgpu_type:"},{"line_number":6606,"context_line":"                # Even if some mdev was created for another vGPU type, just"},{"line_number":6607,"context_line":"                # verify all the mdevs related to the type that their pGPU"},{"line_number":6608,"context_line":"                # has"},{"line_number":6609,"context_line":"                continue"},{"line_number":6610,"context_line":"            counts_per_parent[mdev[\u0027parent\u0027]] +\u003d 1"},{"line_number":6611,"context_line":"        return counts_per_parent"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_9cbf4bfb","line":6608,"range":{"start_line":6606,"start_character":0,"end_line":6608,"end_character":21},"in_reply_to":"df33271e_a8a13b49","updated":"2020-04-07 20:51:02.000000000","message":"No, that means that if the mdev was created *before* (just by calling sysfs or having modified the config after creating new instances), we won\u0027t use it (like we did since Queens)","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f00d5628972691f3bda1008358135ee632576daf","unresolved":false,"context_lines":[{"line_number":7049,"context_line":"                # the mdev"},{"line_number":7050,"context_line":"                continue"},{"line_number":7051,"context_line":"            dev_supported_type \u003d self._get_vgpu_type_per_pgpu(dev_name)"},{"line_number":7052,"context_line":"            if device[\u0027types\u0027][dev_supported_type][\u0027availableInstances\u0027] \u003e 0:"},{"line_number":7053,"context_line":"                # That physical GPU has enough room for a new mdev"},{"line_number":7054,"context_line":"                # We need the PCI address, not the libvirt name"},{"line_number":7055,"context_line":"                # The libvirt name is like \u0027pci_0000_84_00_0\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_6865731d","line":7052,"updated":"2020-04-07 10:57:36.000000000","message":"This could raise KeyError if dev_supported_type returns None","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6d39abede61955eb912fcc83980ad960e955d84b","unresolved":false,"context_lines":[{"line_number":7049,"context_line":"                # the mdev"},{"line_number":7050,"context_line":"                continue"},{"line_number":7051,"context_line":"            dev_supported_type \u003d self._get_vgpu_type_per_pgpu(dev_name)"},{"line_number":7052,"context_line":"            if device[\u0027types\u0027][dev_supported_type][\u0027availableInstances\u0027] \u003e 0:"},{"line_number":7053,"context_line":"                # That physical GPU has enough room for a new mdev"},{"line_number":7054,"context_line":"                # We need the PCI address, not the libvirt name"},{"line_number":7055,"context_line":"                # The libvirt name is like \u0027pci_0000_84_00_0\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_9c446b1b","line":7052,"in_reply_to":"df33271e_6865731d","updated":"2020-04-07 20:51:02.000000000","message":"Done","commit_id":"438f02a1a22a3cf7a5a046e83427b30ab3ec3285"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":430,"context_line":"                vpmem_conf\u003dCONF.libvirt.pmem_namespaces)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        # We default to not support vGPUs unless the configuration is set."},{"line_number":433,"context_line":"        self.pgpu_type \u003d collections.defaultdict(str)"},{"line_number":434,"context_line":"        self.supported_vgpu_types \u003d self._get_supported_vgpu_types()"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"    def _discover_vpmems(self, vpmem_conf\u003dNone):"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_ec432412","line":433,"range":{"start_line":433,"start_character":7,"end_line":433,"end_character":53},"updated":"2020-04-08 17:02:09.000000000","message":"How about something like \u0027pgpu_dev_types\u0027 or \u0027pgpu_type_mapping\u0027. This isn\u0027t very clear as-is","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":430,"context_line":"                vpmem_conf\u003dCONF.libvirt.pmem_namespaces)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        # We default to not support vGPUs unless the configuration is set."},{"line_number":433,"context_line":"        self.pgpu_type \u003d collections.defaultdict(str)"},{"line_number":434,"context_line":"        self.supported_vgpu_types \u003d self._get_supported_vgpu_types()"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"    def _discover_vpmems(self, vpmem_conf\u003dNone):"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_3a2895e0","line":433,"range":{"start_line":433,"start_character":7,"end_line":433,"end_character":53},"in_reply_to":"df33271e_ec432412","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":6515,"context_line":"    def _get_supported_vgpu_types(self):"},{"line_number":6516,"context_line":"        if not CONF.devices.enabled_vgpu_types:"},{"line_number":6517,"context_line":"            return []"},{"line_number":6518,"context_line":""},{"line_number":6519,"context_line":"        for vgpu_type in CONF.devices.enabled_vgpu_types:"},{"line_number":6520,"context_line":"            group \u003d getattr(CONF, \u0027vgpu_%s\u0027 % vgpu_type, None)"},{"line_number":6521,"context_line":"            if group is None or not group.device_addresses:"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_0c5ac8f1","line":6518,"updated":"2020-04-08 17:02:09.000000000","message":"Do we need to run through this again if we have values in \u0027self.pgpu_type\u0027, i.e. should we attempt to check that before doing any of the below?","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":6515,"context_line":"    def _get_supported_vgpu_types(self):"},{"line_number":6516,"context_line":"        if not CONF.devices.enabled_vgpu_types:"},{"line_number":6517,"context_line":"            return []"},{"line_number":6518,"context_line":""},{"line_number":6519,"context_line":"        for vgpu_type in CONF.devices.enabled_vgpu_types:"},{"line_number":6520,"context_line":"            group \u003d getattr(CONF, \u0027vgpu_%s\u0027 % vgpu_type, None)"},{"line_number":6521,"context_line":"            if group is None or not group.device_addresses:"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_dab7e9f4","line":6518,"in_reply_to":"df33271e_0c5ac8f1","updated":"2020-04-08 21:42:55.000000000","message":"We only call self._get_supported_vgpu_types() once at startup (in the driver __init__() method).\nAt that time, we\u0027re *sure* that self.pgpu_type is not used yet (see L434 above)","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":6520,"context_line":"            group \u003d getattr(CONF, \u0027vgpu_%s\u0027 % vgpu_type, None)"},{"line_number":6521,"context_line":"            if group is None or not group.device_addresses:"},{"line_number":6522,"context_line":"                first_type \u003d CONF.devices.enabled_vgpu_types[0]"},{"line_number":6523,"context_line":"                msg \u003d (\"the vGPU type \u0027%(type)s\u0027 was listed in \u0027[devices]/\""},{"line_number":6524,"context_line":"                       \"enabled_vgpu_types\u0027 but no corresponding \""},{"line_number":6525,"context_line":"                       \"\u0027[vgpu_%(type)s]\u0027 group or \""},{"line_number":6526,"context_line":"                       \"\u0027[vgpu_%(type)s]/device_addresses\u0027 \""}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_cc9aa0c3","line":6523,"range":{"start_line":6523,"start_character":24,"end_line":6523,"end_character":27},"updated":"2020-04-08 17:02:09.000000000","message":"The","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae9e6b662e04e2669b970a7441d0ba8be7064871","unresolved":false,"context_lines":[{"line_number":6520,"context_line":"            group \u003d getattr(CONF, \u0027vgpu_%s\u0027 % vgpu_type, None)"},{"line_number":6521,"context_line":"            if group is None or not group.device_addresses:"},{"line_number":6522,"context_line":"                first_type \u003d CONF.devices.enabled_vgpu_types[0]"},{"line_number":6523,"context_line":"                msg \u003d (\"the vGPU type \u0027%(type)s\u0027 was listed in \u0027[devices]/\""},{"line_number":6524,"context_line":"                       \"enabled_vgpu_types\u0027 but no corresponding \""},{"line_number":6525,"context_line":"                       \"\u0027[vgpu_%(type)s]\u0027 group or \""},{"line_number":6526,"context_line":"                       \"\u0027[vgpu_%(type)s]/device_addresses\u0027 \""}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_4c97b091","line":6523,"range":{"start_line":6523,"start_character":73,"end_line":6523,"end_character":74},"updated":"2020-04-08 17:02:09.000000000","message":"nit: the slash is unnecessary when you\u0027re already delimiting the group name with brackets","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":6520,"context_line":"            group \u003d getattr(CONF, \u0027vgpu_%s\u0027 % vgpu_type, None)"},{"line_number":6521,"context_line":"            if group is None or not group.device_addresses:"},{"line_number":6522,"context_line":"                first_type \u003d CONF.devices.enabled_vgpu_types[0]"},{"line_number":6523,"context_line":"                msg \u003d (\"the vGPU type \u0027%(type)s\u0027 was listed in \u0027[devices]/\""},{"line_number":6524,"context_line":"                       \"enabled_vgpu_types\u0027 but no corresponding \""},{"line_number":6525,"context_line":"                       \"\u0027[vgpu_%(type)s]\u0027 group or \""},{"line_number":6526,"context_line":"                       \"\u0027[vgpu_%(type)s]/device_addresses\u0027 \""}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_5aeab9d7","line":6523,"range":{"start_line":6523,"start_character":73,"end_line":6523,"end_character":74},"in_reply_to":"df33271e_4c97b091","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":6520,"context_line":"            group \u003d getattr(CONF, \u0027vgpu_%s\u0027 % vgpu_type, None)"},{"line_number":6521,"context_line":"            if group is None or not group.device_addresses:"},{"line_number":6522,"context_line":"                first_type \u003d CONF.devices.enabled_vgpu_types[0]"},{"line_number":6523,"context_line":"                msg \u003d (\"the vGPU type \u0027%(type)s\u0027 was listed in \u0027[devices]/\""},{"line_number":6524,"context_line":"                       \"enabled_vgpu_types\u0027 but no corresponding \""},{"line_number":6525,"context_line":"                       \"\u0027[vgpu_%(type)s]\u0027 group or \""},{"line_number":6526,"context_line":"                       \"\u0027[vgpu_%(type)s]/device_addresses\u0027 \""}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_7aedfdee","line":6523,"range":{"start_line":6523,"start_character":24,"end_line":6523,"end_character":27},"in_reply_to":"df33271e_cc9aa0c3","updated":"2020-04-08 21:42:55.000000000","message":"Done","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8e62747d168d9ecc232cf5ecd35a73e18b571185","unresolved":false,"context_lines":[{"line_number":6567,"context_line":"        # The libvirt name is like \u0027pci_0000_84_00_0\u0027"},{"line_number":6568,"context_line":"        try:"},{"line_number":6569,"context_line":"            device_address \u003d \"{}:{}:{}.{}\".format("},{"line_number":6570,"context_line":"                *device_address[4:].split(\u0027_\u0027))"},{"line_number":6571,"context_line":"            # Validates whether it\u0027s a PCI ID..."},{"line_number":6572,"context_line":"            pci_utils.parse_address(device_address)"},{"line_number":6573,"context_line":"        # .format() can return IndexError"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_8cc5383f","line":6570,"range":{"start_line":6570,"start_character":18,"end_line":6570,"end_character":47},"updated":"2020-04-08 17:20:49.000000000","message":"its a little crypting that the 4 is because you are first striping off the pci_ in \u0027pci_0000_84_00_0\u0027 and then splitting the remainder \u00270000_84_00_0\u0027","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6f4ed20c34ae05420945554e1a05eaaad16b31f4","unresolved":false,"context_lines":[{"line_number":6567,"context_line":"        # The libvirt name is like \u0027pci_0000_84_00_0\u0027"},{"line_number":6568,"context_line":"        try:"},{"line_number":6569,"context_line":"            device_address \u003d \"{}:{}:{}.{}\".format("},{"line_number":6570,"context_line":"                *device_address[4:].split(\u0027_\u0027))"},{"line_number":6571,"context_line":"            # Validates whether it\u0027s a PCI ID..."},{"line_number":6572,"context_line":"            pci_utils.parse_address(device_address)"},{"line_number":6573,"context_line":"        # .format() can return IndexError"}],"source_content_type":"text/x-python","patch_set":9,"id":"df33271e_baa145ac","line":6570,"range":{"start_line":6570,"start_character":18,"end_line":6570,"end_character":47},"in_reply_to":"df33271e_8cc5383f","updated":"2020-04-08 21:42:55.000000000","message":"hence the comment above L6567.\nIf we use it more than once, I\u0027m OK to make it a libvirt.utils method like we have for mdev_uuid2name for example, but in a FUP.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ded8729e0323bd7e8ebe3c9b6aaabb3424d0c3d2","unresolved":false,"context_lines":[{"line_number":430,"context_line":"                vpmem_conf\u003dCONF.libvirt.pmem_namespaces)"},{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        # We default to not support vGPUs unless the configuration is set."},{"line_number":433,"context_line":"        self.pgpu_type_mapping \u003d collections.defaultdict(str)"},{"line_number":434,"context_line":"        self.supported_vgpu_types \u003d self._get_supported_vgpu_types()"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"    def _discover_vpmems(self, vpmem_conf\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_5f3f3e24","line":433,"range":{"start_line":433,"start_character":13,"end_line":433,"end_character":30},"updated":"2020-04-09 11:30:43.000000000","message":"++ much better","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ded8729e0323bd7e8ebe3c9b6aaabb3424d0c3d2","unresolved":false,"context_lines":[{"line_number":811,"context_line":"                                \"is not accepted for the pGPU.\","},{"line_number":812,"context_line":"                                {\u0027inst\u0027: instance_uuid,"},{"line_number":813,"context_line":"                                 \u0027parent\u0027: parent,"},{"line_number":814,"context_line":"                                 \u0027type\u0027: dev_info[\u0027type\u0027]})"},{"line_number":815,"context_line":"                    continue"},{"line_number":816,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":817,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_9f4546b7","line":814,"updated":"2020-04-09 11:30:43.000000000","message":"Any reason this isn\u0027t a hard error?","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9b90a0ad965028afcf249994b0b218944a9592c0","unresolved":false,"context_lines":[{"line_number":811,"context_line":"                                \"is not accepted for the pGPU.\","},{"line_number":812,"context_line":"                                {\u0027inst\u0027: instance_uuid,"},{"line_number":813,"context_line":"                                 \u0027parent\u0027: parent,"},{"line_number":814,"context_line":"                                 \u0027type\u0027: dev_info[\u0027type\u0027]})"},{"line_number":815,"context_line":"                    continue"},{"line_number":816,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":817,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_bf6ac97d","line":814,"in_reply_to":"df33271e_9f4546b7","updated":"2020-04-09 11:57:28.000000000","message":"this should proably stop the agent starting","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"94f2b68662a2032495b5a8debbcf3f5c17913e0b","unresolved":false,"context_lines":[{"line_number":811,"context_line":"                                \"is not accepted for the pGPU.\","},{"line_number":812,"context_line":"                                {\u0027inst\u0027: instance_uuid,"},{"line_number":813,"context_line":"                                 \u0027parent\u0027: parent,"},{"line_number":814,"context_line":"                                 \u0027type\u0027: dev_info[\u0027type\u0027]})"},{"line_number":815,"context_line":"                    continue"},{"line_number":816,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":817,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"df33271e_e5ccc036","line":814,"in_reply_to":"df33271e_bf6ac97d","updated":"2020-04-09 14:14:17.000000000","message":"Done","commit_id":"d4eb51a8c761f2a6c8a0ef939f588e696d0d4842"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"013370caf18d43de0b158b2ae7754dcc2a026c24","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                                {\u0027inst\u0027: instance_uuid,"},{"line_number":813,"context_line":"                                 \u0027parent\u0027: parent,"},{"line_number":814,"context_line":"                                 \u0027type\u0027: dev_info[\u0027type\u0027]})"},{"line_number":815,"context_line":"                    continue"},{"line_number":816,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"    def _set_multiattach_support(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_33b5527f","line":815,"updated":"2020-04-09 14:57:13.000000000","message":"This is still not a hard error. You\u0027re saying you have an mdev with a type that isn\u0027t listed in \u0027[devices] enabled_vgpu_types\u0027, right? Why shouldn\u0027t we fall over if that\u0027s misconfiguration has happened?","commit_id":"32f6085c7d87fe97f257267b67bd37b38ad1cde1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e0db5f8d6c720582d3cf1cb32babd5c25d67dc49","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                                {\u0027inst\u0027: instance_uuid,"},{"line_number":813,"context_line":"                                 \u0027parent\u0027: parent,"},{"line_number":814,"context_line":"                                 \u0027type\u0027: dev_info[\u0027type\u0027]})"},{"line_number":815,"context_line":"                    continue"},{"line_number":816,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"    def _set_multiattach_support(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_cec1d956","line":815,"in_reply_to":"df33271e_33b5527f","updated":"2020-04-09 15:22:20.000000000","message":"Note to reviewers: I was concerned that there was a corner case where \u0027_get_vgpu_type_per_pgpu\u0027 would return None. However, that\u0027s not an issue. \u0027_get_vgpu_type_per_pgpu\u0027 reads from \u0027self.supported_vgpu_types\u0027, which is populated by \u0027_get_supported_vgpu_types\u0027. If any of the values in \u0027CONF.devices.enabled_vgpu_types\u0027 we currently exit. However, before that, if we didnt have a corresponding section, we simply return the first value. As such, if \u0027CONF.devices.enabled_vgpu_types\u0027 is populated then we\u0027ll always have _something_ to follow","commit_id":"32f6085c7d87fe97f257267b67bd37b38ad1cde1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4f8fd5419d4e4e641df09d7d09c897000e1ed231","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                                {\u0027inst\u0027: instance_uuid,"},{"line_number":813,"context_line":"                                 \u0027parent\u0027: parent,"},{"line_number":814,"context_line":"                                 \u0027type\u0027: dev_info[\u0027type\u0027]})"},{"line_number":815,"context_line":"                    continue"},{"line_number":816,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"    def _set_multiattach_support(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"df33271e_f9e9091a","line":815,"in_reply_to":"df33271e_cec1d956","updated":"2020-04-09 15:47:38.000000000","message":"Done","commit_id":"32f6085c7d87fe97f257267b67bd37b38ad1cde1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"507367674c18dc96bfdc3377e0d82c22de184295","unresolved":false,"context_lines":[{"line_number":814,"context_line":"                            \u0027parent\u0027: parent,"},{"line_number":815,"context_line":"                            \u0027type\u0027: dev_info[\u0027type\u0027]})"},{"line_number":816,"context_line":"                    raise exception.InvalidLibvirtGPUConfig(reason\u003dmsg)"},{"line_number":817,"context_line":"                    continue"},{"line_number":818,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"    def _set_multiattach_support(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_19114d05","line":817,"updated":"2020-04-09 15:52:54.000000000","message":"*fuuuuuck* will be addressed in a FUP","commit_id":"f765934a1d9ad57df8aacd75c45fc5e59b3168be"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e5d156fafee63b44633a749964bac8340bd0c554","unresolved":false,"context_lines":[{"line_number":814,"context_line":"                            \u0027parent\u0027: parent,"},{"line_number":815,"context_line":"                            \u0027type\u0027: dev_info[\u0027type\u0027]})"},{"line_number":816,"context_line":"                    raise exception.InvalidLibvirtGPUConfig(reason\u003dmsg)"},{"line_number":817,"context_line":"                    continue"},{"line_number":818,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"    def _set_multiattach_support(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_195cadeb","line":817,"range":{"start_line":817,"start_character":21,"end_line":817,"end_character":28},"updated":"2020-04-09 15:54:56.000000000","message":"nit the continue will never be called.","commit_id":"f765934a1d9ad57df8aacd75c45fc5e59b3168be"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6fac537ac746f20fb2a21a674cb3d4ef0a55c4cb","unresolved":false,"context_lines":[{"line_number":814,"context_line":"                            \u0027parent\u0027: parent,"},{"line_number":815,"context_line":"                            \u0027type\u0027: dev_info[\u0027type\u0027]})"},{"line_number":816,"context_line":"                    raise exception.InvalidLibvirtGPUConfig(reason\u003dmsg)"},{"line_number":817,"context_line":"                    continue"},{"line_number":818,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"    def _set_multiattach_support(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"df33271e_994efd35","line":817,"range":{"start_line":817,"start_character":20,"end_line":817,"end_character":28},"updated":"2020-04-09 15:52:12.000000000","message":"whoops","commit_id":"f765934a1d9ad57df8aacd75c45fc5e59b3168be"}],"releasenotes/notes/vgpu-multiple-types-2b1ded7d1cc28880.yaml":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c00b205e11124a5431d0bf8e3df065b868d33f77","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The libvirt driver now supports defining different virtual GPU types for"},{"line_number":5,"context_line":"    each physical GPU. See the ``[devices]/enabled_vgpu_types`` configuration"},{"line_number":6,"context_line":"    option for knowing how to do it."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"df33271e_0160e1a4","line":6,"range":{"start_line":5,"start_character":23,"end_line":6,"end_character":36},"updated":"2020-04-08 11:00:31.000000000","message":"I think we need to link to the docs at least here.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a83586c201b6400243a76298ef77a2f4d228ac8f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The libvirt driver now supports defining different virtual GPU types for"},{"line_number":5,"context_line":"    each physical GPU. See the ``[devices]/enabled_vgpu_types`` configuration"},{"line_number":6,"context_line":"    option for knowing how to do it."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"df33271e_12d3113a","line":6,"range":{"start_line":5,"start_character":23,"end_line":6,"end_character":36},"in_reply_to":"df33271e_0160e1a4","updated":"2020-04-08 13:00:27.000000000","message":"will be done in a FUP.","commit_id":"1135621fc1e876e2b792c8396e735da5eca74be4"}]}
