)]}'
{"specs/xena/approved/generic-mdevs.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/generic-mdevs"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"As Nova already supports to look at existing mediated devices by the libvirt"},{"line_number":15,"context_line":"driver for virtual GPUs, we would want to help the operator to use this for"},{"line_number":16,"context_line":"generic PCI devices that use the VFIO-mdev framework but aren\u0027t GPUs."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"6ff3d818_a6c9e1f7","line":14,"range":{"start_line":14,"start_character":25,"end_line":14,"end_character":35},"updated":"2021-05-25 13:01:56.000000000","message":"to manage","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/generic-mdevs"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"As Nova already supports to look at existing mediated devices by the libvirt"},{"line_number":15,"context_line":"driver for virtual GPUs, we would want to help the operator to use this for"},{"line_number":16,"context_line":"generic PCI devices that use the VFIO-mdev framework but aren\u0027t GPUs."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5eb59028_e6a735c1","line":14,"range":{"start_line":14,"start_character":62,"end_line":14,"end_character":64},"updated":"2021-05-25 13:01:56.000000000","message":"via","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/generic-mdevs"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"As Nova already supports to look at existing mediated devices by the libvirt"},{"line_number":15,"context_line":"driver for virtual GPUs, we would want to help the operator to use this for"},{"line_number":16,"context_line":"generic PCI devices that use the VFIO-mdev framework but aren\u0027t GPUs."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"75d1c5d1_7383ef66","line":14,"range":{"start_line":14,"start_character":62,"end_line":14,"end_character":64},"in_reply_to":"5eb59028_e6a735c1","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/generic-mdevs"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"As Nova already supports to look at existing mediated devices by the libvirt"},{"line_number":15,"context_line":"driver for virtual GPUs, we would want to help the operator to use this for"},{"line_number":16,"context_line":"generic PCI devices that use the VFIO-mdev framework but aren\u0027t GPUs."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7242777a_80bbff07","line":14,"range":{"start_line":14,"start_character":25,"end_line":14,"end_character":35},"in_reply_to":"6ff3d818_a6c9e1f7","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cd5ae3d116b63a2cb7c7775891330b366449c9b","unresolved":true,"context_lines":[{"line_number":21,"context_line":"As the Linux kernel supports a framework that\u0027s called `VFIO-mdev`_ , hardware"},{"line_number":22,"context_line":"vendors can use it for their devices, like `nVidia does for their GPUs`_. For"},{"line_number":23,"context_line":"example, you can create virtual GPUs by asking the kernel to create a new"},{"line_number":24,"context_line":"mediated device to the parent. As this API is abstractional, any hardware could"},{"line_number":25,"context_line":"use this framework for supporting the fact to create a virtual device off the"},{"line_number":26,"context_line":"physical device."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e7b6e2f3_93897d92","line":24,"range":{"start_line":24,"start_character":46,"end_line":24,"end_character":59},"updated":"2021-05-25 10:56:23.000000000","message":"nit:abstract?","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":21,"context_line":"As the Linux kernel supports a framework that\u0027s called `VFIO-mdev`_ , hardware"},{"line_number":22,"context_line":"vendors can use it for their devices, like `nVidia does for their GPUs`_. For"},{"line_number":23,"context_line":"example, you can create virtual GPUs by asking the kernel to create a new"},{"line_number":24,"context_line":"mediated device to the parent. As this API is abstractional, any hardware could"},{"line_number":25,"context_line":"use this framework for supporting the fact to create a virtual device off the"},{"line_number":26,"context_line":"physical device."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ee77b57_ab891122","line":24,"range":{"start_line":24,"start_character":46,"end_line":24,"end_character":59},"in_reply_to":"e7b6e2f3_93897d92","updated":"2021-05-25 13:01:56.000000000","message":"+1","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":false,"context_lines":[{"line_number":21,"context_line":"As the Linux kernel supports a framework that\u0027s called `VFIO-mdev`_ , hardware"},{"line_number":22,"context_line":"vendors can use it for their devices, like `nVidia does for their GPUs`_. For"},{"line_number":23,"context_line":"example, you can create virtual GPUs by asking the kernel to create a new"},{"line_number":24,"context_line":"mediated device to the parent. As this API is abstractional, any hardware could"},{"line_number":25,"context_line":"use this framework for supporting the fact to create a virtual device off the"},{"line_number":26,"context_line":"physical device."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"a575779d_12dc9912","line":24,"range":{"start_line":24,"start_character":46,"end_line":24,"end_character":59},"in_reply_to":"e7b6e2f3_93897d92","updated":"2021-05-25 15:07:47.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":25,"context_line":"use this framework for supporting the fact to create a virtual device off the"},{"line_number":26,"context_line":"physical device."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"a40e8318_18b9ec02","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":77},"updated":"2021-05-25 13:01:56.000000000","message":"In the queens release the libvirt driver gain support for looking up...","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":25,"context_line":"use this framework for supporting the fact to create a virtual device off the"},{"line_number":26,"context_line":"physical device."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7e8766fe_a392db84","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":77},"in_reply_to":"a40e8318_18b9ec02","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":26,"context_line":"physical device."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1c9f22e8_477331a2","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":2},"updated":"2021-05-25 13:01:56.000000000","message":"delete at","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":26,"context_line":"physical device."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"12cd9993_fe79710f","line":29,"range":{"start_line":29,"start_character":29,"end_line":29,"end_character":71},"updated":"2021-05-25 13:01:56.000000000","message":"to enable `managing virtual GPUs`_","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":26,"context_line":"physical device."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"665b2a31_43933bd9","line":29,"range":{"start_line":29,"start_character":29,"end_line":29,"end_character":71},"in_reply_to":"12cd9993_fe79710f","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":26,"context_line":"physical device."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dc24b6ad_01f620df","line":29,"range":{"start_line":29,"start_character":0,"end_line":29,"end_character":2},"in_reply_to":"1c9f22e8_477331a2","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"218d32cc_ad2d0b42","line":30,"range":{"start_line":30,"start_character":14,"end_line":30,"end_character":19},"updated":"2021-05-25 13:01:56.000000000","message":"call","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b167ab5f_a2e874ee","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":4},"updated":"2021-05-25 13:01:56.000000000","message":"can also","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"91cf709f_d778b01a","line":30,"range":{"start_line":30,"start_character":40,"end_line":30,"end_character":48},"updated":"2021-05-25 13:01:56.000000000","message":"create","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d0bc940c_8235e588","line":30,"range":{"start_line":30,"start_character":35,"end_line":30,"end_character":38},"updated":"2021-05-25 13:01:56.000000000","message":"to","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"27ceacf6_e40ad104","line":30,"range":{"start_line":30,"start_character":14,"end_line":30,"end_character":19},"in_reply_to":"218d32cc_ad2d0b42","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fb7e097e_bfea5ee6","line":30,"range":{"start_line":30,"start_character":40,"end_line":30,"end_character":48},"in_reply_to":"91cf709f_d778b01a","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"00179488_2413f9db","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":4},"in_reply_to":"b167ab5f_a2e874ee","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"For what it\u0027s worth, the Nova libvirt driver supports since Queens looking up"},{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"57b897bd_ccbc4dbf","line":30,"range":{"start_line":30,"start_character":35,"end_line":30,"end_character":38},"in_reply_to":"d0bc940c_8235e588","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"},{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."}],"source_content_type":"text/x-rst","patch_set":1,"id":"433797ff_9ab871f0","line":32,"range":{"start_line":32,"start_character":40,"end_line":32,"end_character":53},"updated":"2021-05-25 13:01:56.000000000","message":"abstract\nhere and throughout the rest of the doc\n\nabstractional while technically a valid conjugation would only be correct in a limited set of uses.\nfor example \"the api present by the component is overly focused on abstractional purity at the cost of usability\"\n\nin most other cases it would be more natural to use abstract\n\n\"the api present by the component is overly abstract at the cost of usability\"","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":29,"context_line":"at existing mediated devices for `knowing about existing virtual GPUs`_ and"},{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"},{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."}],"source_content_type":"text/x-rst","patch_set":1,"id":"953bc883_c051bea9","line":32,"range":{"start_line":32,"start_character":40,"end_line":32,"end_character":53},"in_reply_to":"433797ff_9ab871f0","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"},{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e4b5ddce_d37d6884","line":33,"range":{"start_line":33,"start_character":27,"end_line":33,"end_character":38},"updated":"2021-05-25 13:01:56.000000000","message":"disparity or divide or distinction.\n\nreciprocity would be speaking about a equivalence between them.\nso as written \"unnecessary reciprocity\" woudl be saying the equivalence between vGPUs and mdevs is not needed.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80654fb0352d6681532626511f621d33610d13d5","unresolved":false,"context_lines":[{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"},{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9560759c_5a460ac4","line":33,"range":{"start_line":33,"start_character":27,"end_line":33,"end_character":38},"in_reply_to":"18288398_18e30346","updated":"2021-06-16 10:32:02.000000000","message":"\u003e Ack\n\nTo be clear, I wrote \"reciprocity\" for saying that in Nova \"mdevs \u003d\u003d vGPUs\" while it shouldn\u0027t be.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":30,"context_line":"also directly calls the kernel API for `creating a new mediated device if"},{"line_number":31,"context_line":"needed`_."},{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"},{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"18288398_18e30346","line":33,"range":{"start_line":33,"start_character":27,"end_line":33,"end_character":38},"in_reply_to":"e4b5ddce_d37d6884","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"},{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c5a22cce_e3ccb82b","line":35,"range":{"start_line":35,"start_character":13,"end_line":35,"end_character":21},"updated":"2021-05-25 13:01:56.000000000","message":"other than","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Unfortunately, while this kernel API is abstractional, we created an"},{"line_number":33,"context_line":"artificial and unnecessary reciprocity between a virtual GPU and a mediated"},{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a94972ea_4b7e1c17","line":35,"range":{"start_line":35,"start_character":13,"end_line":35,"end_character":21},"in_reply_to":"c5a22cce_e3ccb82b","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"},{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"523b0309_29e07e03","line":37,"range":{"start_line":37,"start_character":50,"end_line":37,"end_character":61},"updated":"2021-05-25 13:01:56.000000000","message":"dispartity","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cd5ae3d116b63a2cb7c7775891330b366449c9b","unresolved":true,"context_lines":[{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"},{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"48d2c19c_c69bf665","line":37,"range":{"start_line":37,"start_character":28,"end_line":37,"end_character":35},"updated":"2021-05-25 10:56:23.000000000","message":"nit:remove","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":false,"context_lines":[{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"},{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"36807252_2885a3d6","line":37,"range":{"start_line":37,"start_character":28,"end_line":37,"end_character":35},"in_reply_to":"48d2c19c_c69bf665","updated":"2021-05-25 15:07:47.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"},{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fd1249c3_e311d45f","line":37,"range":{"start_line":37,"start_character":28,"end_line":37,"end_character":35},"in_reply_to":"48d2c19c_c69bf665","updated":"2021-05-25 13:01:56.000000000","message":"relax","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":34,"context_line":"device : a virtual GPU is indeed a mediated device, but a mediated device can"},{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"},{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7b87889a_3de1bc52","line":37,"range":{"start_line":37,"start_character":50,"end_line":37,"end_character":61},"in_reply_to":"523b0309_29e07e03","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"},{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"feea0274_07e1ff9b","line":38,"range":{"start_line":38,"start_character":19,"end_line":38,"end_character":21},"updated":"2021-05-25 13:01:56.000000000","message":"have\n\nwe want to allow a resource class to be specified rather then have a single \nMEDIATED_DEVICE resource class.\n\nso a mediated device is not a (to be) resouce class i has (to have) a resouce class so \"to have\" is the correct verb here.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":35,"context_line":"be something else but a virtual GPU."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"},{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"51272eb3_bb883c89","line":38,"range":{"start_line":38,"start_character":19,"end_line":38,"end_character":21},"in_reply_to":"feea0274_07e1ff9b","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"91dca090cc2a7142f5040d443ca6549638f420fd","unresolved":true,"context_lines":[{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"},{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Use Cases"},{"line_number":42,"context_line":"---------"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e70d240a_63d74a32","line":40,"updated":"2021-05-26 14:34:55.000000000","message":"fwict, as no point have you noted that this is intended for *stateless* devices with vfio-mdev capabilities. You should probably make that clear here","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2b826c04094faead277757247c5a948d44c2a478","unresolved":false,"context_lines":[{"line_number":37,"context_line":"In this spec, we propose to release a bit of this reciprocity by considering a"},{"line_number":38,"context_line":"mediated device to be a distinct Placement resource class and not a virtual"},{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Use Cases"},{"line_number":42,"context_line":"---------"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"4973fdfc_f2203943","line":40,"in_reply_to":"e70d240a_63d74a32","updated":"2021-06-01 09:20:39.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cd5ae3d116b63a2cb7c7775891330b366449c9b","unresolved":true,"context_lines":[{"line_number":45,"context_line":"ask for generic mediated devices that aren\u0027t virtual GPUs, as I already have"},{"line_number":46,"context_line":"hardware that use VFIO-mdev fremework in the Linux kernel for abstracting"},{"line_number":47,"context_line":"virtual resources."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"aea62864_eadd4e13","line":48,"updated":"2021-05-25 10:56:23.000000000","message":"Does Cyborg have plans to do the same after they add vGPU / mdev support with https://review.opendev.org/c/openstack/nova-specs/+/780452 ? I\u0027m wondering about having synergy between the two projects to limit the duplication if possible.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f382e6c4a406e0ffc8d67f48cdac04a3d03ae30a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"ask for generic mediated devices that aren\u0027t virtual GPUs, as I already have"},{"line_number":46,"context_line":"hardware that use VFIO-mdev fremework in the Linux kernel for abstracting"},{"line_number":47,"context_line":"virtual resources."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b8f7e9dc_621604f0","line":48,"in_reply_to":"54a72a50_accbece8","updated":"2021-05-26 09:12:33.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cc9bdf58a4072ae242d2266499de9ccc758f8ff6","unresolved":true,"context_lines":[{"line_number":45,"context_line":"ask for generic mediated devices that aren\u0027t virtual GPUs, as I already have"},{"line_number":46,"context_line":"hardware that use VFIO-mdev fremework in the Linux kernel for abstracting"},{"line_number":47,"context_line":"virtual resources."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"6e56880e_1e652e74","line":48,"in_reply_to":"584129e4_89f9b0f4","updated":"2021-05-25 15:03:16.000000000","message":"I don\u0027t like potential duplication but I feel I\u0027m alone in this fight so I stop fighting :)","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":true,"context_lines":[{"line_number":45,"context_line":"ask for generic mediated devices that aren\u0027t virtual GPUs, as I already have"},{"line_number":46,"context_line":"hardware that use VFIO-mdev fremework in the Linux kernel for abstracting"},{"line_number":47,"context_line":"virtual resources."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"54a72a50_accbece8","line":48,"in_reply_to":"aea62864_eadd4e13","updated":"2021-05-25 15:07:47.000000000","message":"We could use the same methods from libvirt in between Cyborg and Nova as we told in their spec.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":45,"context_line":"ask for generic mediated devices that aren\u0027t virtual GPUs, as I already have"},{"line_number":46,"context_line":"hardware that use VFIO-mdev fremework in the Linux kernel for abstracting"},{"line_number":47,"context_line":"virtual resources."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Proposed change"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"584129e4_89f9b0f4","line":48,"in_reply_to":"aea62864_eadd4e13","updated":"2021-05-25 13:01:56.000000000","message":"they do but i actully dont think we shoudl limit the feature set in nova based on what is in cyborg at least in the general case of stateless devices.\n\ncyborg is appropriate for programmable devices but i don\u0027t really think it should be a requirement of static no programmable devices.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cd5ae3d116b63a2cb7c7775891330b366449c9b","unresolved":true,"context_lines":[{"line_number":63,"context_line":"The configuration changes"},{"line_number":64,"context_line":"-------------------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Today, you can specify the Nova libvirt driver to use mediated devices for"},{"line_number":67,"context_line":"virtual GPU management by defining in `nova.conf` :"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ec66fa57_816768bf","line":66,"range":{"start_line":66,"start_character":15,"end_line":66,"end_character":22},"updated":"2021-05-25 10:56:23.000000000","message":"nit:instruct","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":false,"context_lines":[{"line_number":63,"context_line":"The configuration changes"},{"line_number":64,"context_line":"-------------------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Today, you can specify the Nova libvirt driver to use mediated devices for"},{"line_number":67,"context_line":"virtual GPU management by defining in `nova.conf` :"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"513e9a80_b56a11ff","line":66,"range":{"start_line":66,"start_character":15,"end_line":66,"end_character":22},"in_reply_to":"ec66fa57_816768bf","updated":"2021-05-25 15:07:47.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":63,"context_line":"The configuration changes"},{"line_number":64,"context_line":"-------------------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Today, you can specify the Nova libvirt driver to use mediated devices for"},{"line_number":67,"context_line":"virtual GPU management by defining in `nova.conf` :"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7a8583_b84be093","line":66,"range":{"start_line":66,"start_character":15,"end_line":66,"end_character":22},"in_reply_to":"ec66fa57_816768bf","updated":"2021-05-25 13:01:56.000000000","message":"instruct is better, allow or permit might be more correct however.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":76,"context_line":"  device_addresses \u003d \u003cpci_address_3\u003e"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"We propose to deprecate the `enabled_vgpu_types` option name and replace it"},{"line_number":80,"context_line":"with `enabled_mdev_types`. Accordingly, groups could be named `mdev_\u003ctype\u003e`."},{"line_number":81,"context_line":"An extra option could be specified under a `mdev_\u003ctype\u003e` group, named"},{"line_number":82,"context_line":"`mdev_class` and which could be defined as below :"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1876339b_2151a4b6","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":26},"updated":"2021-05-25 13:01:56.000000000","message":"+1","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  device_addresses \u003d \u003cpci_address_3\u003e"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"We propose to deprecate the `enabled_vgpu_types` option name and replace it"},{"line_number":80,"context_line":"with `enabled_mdev_types`. Accordingly, groups could be named `mdev_\u003ctype\u003e`."},{"line_number":81,"context_line":"An extra option could be specified under a `mdev_\u003ctype\u003e` group, named"},{"line_number":82,"context_line":"`mdev_class` and which could be defined as below :"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"366bfca4_991e0a3b","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":26},"in_reply_to":"1876339b_2151a4b6","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"91dca090cc2a7142f5040d443ca6549638f420fd","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  device_addresses \u003d \u003cpci_address_3\u003e"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"We propose to deprecate the `enabled_vgpu_types` option name and replace it"},{"line_number":80,"context_line":"with `enabled_mdev_types`. Accordingly, groups could be named `mdev_\u003ctype\u003e`."},{"line_number":81,"context_line":"An extra option could be specified under a `mdev_\u003ctype\u003e` group, named"},{"line_number":82,"context_line":"`mdev_class` and which could be defined as below :"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b55db4a9_4a6b216f","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":26},"in_reply_to":"366bfca4_991e0a3b","updated":"2021-05-26 14:34:55.000000000","message":"This is implementation detail, but rather than deprecating it we can simply rename it and use the old name as a legacy alias","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2b826c04094faead277757247c5a948d44c2a478","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  device_addresses \u003d \u003cpci_address_3\u003e"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"We propose to deprecate the `enabled_vgpu_types` option name and replace it"},{"line_number":80,"context_line":"with `enabled_mdev_types`. Accordingly, groups could be named `mdev_\u003ctype\u003e`."},{"line_number":81,"context_line":"An extra option could be specified under a `mdev_\u003ctype\u003e` group, named"},{"line_number":82,"context_line":"`mdev_class` and which could be defined as below :"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"c5accc71_789294ac","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":26},"in_reply_to":"b55db4a9_4a6b216f","updated":"2021-06-01 09:20:39.000000000","message":"\u003e This is implementation detail, but rather than deprecating it we can simply rename it and use the old name as a legacy alias\n\nGood idea.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":80,"context_line":"with `enabled_mdev_types`. Accordingly, groups could be named `mdev_\u003ctype\u003e`."},{"line_number":81,"context_line":"An extra option could be specified under a `mdev_\u003ctype\u003e` group, named"},{"line_number":82,"context_line":"`mdev_class` and which could be defined as below :"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":".. code::"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6381d889_5c96780e","line":83,"updated":"2021-05-25 13:01:56.000000000","message":"yep this makes sense to me.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":80,"context_line":"with `enabled_mdev_types`. Accordingly, groups could be named `mdev_\u003ctype\u003e`."},{"line_number":81,"context_line":"An extra option could be specified under a `mdev_\u003ctype\u003e` group, named"},{"line_number":82,"context_line":"`mdev_class` and which could be defined as below :"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":".. code::"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"2f3681c9_3ad04108","line":83,"in_reply_to":"6381d889_5c96780e","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cd5ae3d116b63a2cb7c7775891330b366449c9b","unresolved":true,"context_lines":[{"line_number":86,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"},{"line_number":87,"context_line":"             default\u003d\u0027vgpu\u0027,"},{"line_number":88,"context_line":"             help\u003d\u0027Class of mediated device to manage.\u0027,"},{"line_number":89,"context_line":"             choices\u003d[\u0027vgpu\u0027, \u0027generic\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"An example would be as follows :"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3d954fe9_a8872a9a","line":89,"updated":"2021-05-25 10:56:23.000000000","message":"It feels a bit strange that we have only vgpu and generic types. What are the real devices under the generic set? \n\nCan a new deployment use generic for vgpus as well to unify the resource pools? \n\nIs there a need to specify traits for the generic devices so that the end user can actually select in the flavor what device she needs?","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":true,"context_lines":[{"line_number":86,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"},{"line_number":87,"context_line":"             default\u003d\u0027vgpu\u0027,"},{"line_number":88,"context_line":"             help\u003d\u0027Class of mediated device to manage.\u0027,"},{"line_number":89,"context_line":"             choices\u003d[\u0027vgpu\u0027, \u0027generic\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"An example would be as follows :"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bc97fd50_0f16113c","line":89,"in_reply_to":"3d954fe9_a8872a9a","updated":"2021-05-25 15:07:47.000000000","message":"As Sean said in the IRC, we could just remove the \u0027choices\u0027 argument and then use a custom RC using then the mdev_class name if we want.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":86,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"},{"line_number":87,"context_line":"             default\u003d\u0027vgpu\u0027,"},{"line_number":88,"context_line":"             help\u003d\u0027Class of mediated device to manage.\u0027,"},{"line_number":89,"context_line":"             choices\u003d[\u0027vgpu\u0027, \u0027generic\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"An example would be as follows :"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"6e4d2868_aa9a78fc","line":89,"in_reply_to":"3d954fe9_a8872a9a","updated":"2021-05-25 13:01:56.000000000","message":"i think we shoudl remove the choices element.\n\nwhen we were discussing this at teh patch i was expect the mdev_class name to be free from.\n\ne.g. CUSTOM_CRYPTO_DEV, CUSTOM_SMART_NIC, CUSTOM_\u003cvendor-id\u003e_\u003cproduct-id\u003e\n\n\nthis is similar to how im intenidng to expand pci passthough. by allowing custom resouce classes to be assocaited with device in the pci whitelist and pci alias.\n\nso i think it would be good to have parity here also and allow custom resouce classes to be used.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b09ea22a5a977b838c06319c55b90ba4d30a5e6","unresolved":true,"context_lines":[{"line_number":86,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"},{"line_number":87,"context_line":"             default\u003d\u0027vgpu\u0027,"},{"line_number":88,"context_line":"             help\u003d\u0027Class of mediated device to manage.\u0027,"},{"line_number":89,"context_line":"             choices\u003d[\u0027vgpu\u0027, \u0027generic\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"An example would be as follows :"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b91c2813_36417c43","line":89,"in_reply_to":"7f9550a2_1555e91b","updated":"2021-05-26 12:00:57.000000000","message":"yes if we can tell that the RP was previously assocated with a different RC then i agree that blocking this change if it has allocation agasint the inventory is proably for the best.\n\ni think the libvirt drvier shoudl be able to detech that the resouce class change by inspecting the exsting provider tree inventories and asserting that the RP for the parent device has the correct set of inventories/resouce classes.\n\nthis would have to be a driver level check rather then a compute agent check but i think that is ok.\n\ndo you think that such an error shoudl prevent agent start or would you prefer the agent to continue to use the old name but complain loudly in the config. im leanting towords preventing the agent start.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e27b6d11c3f1558f85c0d0032d6e1ac4ddc12b5b","unresolved":true,"context_lines":[{"line_number":86,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"},{"line_number":87,"context_line":"             default\u003d\u0027vgpu\u0027,"},{"line_number":88,"context_line":"             help\u003d\u0027Class of mediated device to manage.\u0027,"},{"line_number":89,"context_line":"             choices\u003d[\u0027vgpu\u0027, \u0027generic\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"An example would be as follows :"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"d5078050_216b43e5","line":89,"in_reply_to":"b91c2813_36417c43","updated":"2021-05-26 13:57:09.000000000","message":"We already look at the config options in https://github.com/openstack/nova/blob/7953c0197d1a4466cb5b78070d47626c92f9db6e/nova/virt/libvirt/driver.py#L7357 so we could verify at the current provider tree and raise an exception if so.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f382e6c4a406e0ffc8d67f48cdac04a3d03ae30a","unresolved":true,"context_lines":[{"line_number":86,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"},{"line_number":87,"context_line":"             default\u003d\u0027vgpu\u0027,"},{"line_number":88,"context_line":"             help\u003d\u0027Class of mediated device to manage.\u0027,"},{"line_number":89,"context_line":"             choices\u003d[\u0027vgpu\u0027, \u0027generic\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"An example would be as follows :"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7f9550a2_1555e91b","line":89,"in_reply_to":"bc97fd50_0f16113c","updated":"2021-05-26 09:12:33.000000000","message":"CUSTOM_ RC makes this super flexible. The admin only needs to take care that what is set in the nova compute conf are matching with the flavors created. One can say that it will be a bit of interop issue if two clouds names their resource classes differently while representing the same hardware. But I guess the content of the flavors are already an interop difference between clouds. So I\u0027m OK with this.\n\nIn the other hand if there is free naming then what will happen if the admin reconfigures the a compute by changing the name of the resource class? Will that need a reshape? I suggest to try to somehow block such renaming of resource classes for already configured devices, but I\u0027m not sure how can we do that now as the nova-compute will not remember the old config when started up with a new config and custom resource classes are all free to use by any clients.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80654fb0352d6681532626511f621d33610d13d5","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"},{"line_number":87,"context_line":"             default\u003d\u0027vgpu\u0027,"},{"line_number":88,"context_line":"             help\u003d\u0027Class of mediated device to manage.\u0027,"},{"line_number":89,"context_line":"             choices\u003d[\u0027vgpu\u0027, \u0027generic\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"An example would be as follows :"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"63fafff0_e7b72a1c","line":89,"in_reply_to":"d5078050_216b43e5","updated":"2021-06-16 10:32:02.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":98,"context_line":"  device_addresses \u003d 0000:84:00.0,0000:85:00.0"},{"line_number":99,"context_line":"  [mdev_mlx5_core-local]"},{"line_number":100,"context_line":"  device_addresses \u003d 0000:86:00.0"},{"line_number":101,"context_line":"  mdev_class\u003dgeneric"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"0a21dece_e760b673","line":101,"range":{"start_line":101,"start_character":13,"end_line":101,"end_character":20},"updated":"2021-05-25 13:01:56.000000000","message":"CUSTOM_MLX5","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80654fb0352d6681532626511f621d33610d13d5","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  device_addresses \u003d 0000:84:00.0,0000:85:00.0"},{"line_number":99,"context_line":"  [mdev_mlx5_core-local]"},{"line_number":100,"context_line":"  device_addresses \u003d 0000:86:00.0"},{"line_number":101,"context_line":"  mdev_class\u003dgeneric"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1e1a98cb_52f6d0d3","line":101,"range":{"start_line":101,"start_character":13,"end_line":101,"end_character":20},"in_reply_to":"0a21dece_e760b673","updated":"2021-06-16 10:32:02.000000000","message":"Done","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":110,"context_line":"The only difference is that if a PCI device is set as *generic*, then the"},{"line_number":111,"context_line":"inventory of the number of virtual devices it can create for the specific type"},{"line_number":112,"context_line":"will use a new resource class named `MDEV`."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Accordingly, if a flavor specifies an extraspec with resource groups like"},{"line_number":115,"context_line":"`resources:MDEV\u003d1`, then Placement will create allocations on a Resource"},{"line_number":116,"context_line":"Privoder with this resource class. When, later in the boot sequence, the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"14781386_d98ebb90","line":113,"updated":"2021-05-25 13:01:56.000000000","message":"-1\n\ni think this will not add much value as i will not be able to scudle on the type of mdev this way. i would be forced to use the placment group syntax to use traits to identify the device and would require me to use a group policy which will break other things.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7b09ea22a5a977b838c06319c55b90ba4d30a5e6","unresolved":true,"context_lines":[{"line_number":110,"context_line":"The only difference is that if a PCI device is set as *generic*, then the"},{"line_number":111,"context_line":"inventory of the number of virtual devices it can create for the specific type"},{"line_number":112,"context_line":"will use a new resource class named `MDEV`."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Accordingly, if a flavor specifies an extraspec with resource groups like"},{"line_number":115,"context_line":"`resources:MDEV\u003d1`, then Placement will create allocations on a Resource"},{"line_number":116,"context_line":"Privoder with this resource class. When, later in the boot sequence, the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8e2d9fa2_c6c56add","line":113,"in_reply_to":"0bc8d8d6_6dab1a89","updated":"2021-05-26 12:00:57.000000000","message":"mainly im against add an RC that required you to use placement groups in the flavor to use it correctly\nas the only way of usign this featrue.\n\nwe coudl add an MDEV RC but i dont see a usecase where i woudl use it if i could use the CUSTOM_ one.\nto use the standard MDEV RC i would still need to use traits to descibe it and it so it feels slightly odd.\n\nif this is not the only value we allow (e.g. we can use CUSTOM_ RCs) then i guess adding a stardard RC would be ok it just that resource:MDEV\u003d1 could result in a gpu, a tty or any number of other devices.\nSo to use it properly you would really have to do \"resource1:MDEV\u003d1 traits1:CUSTOM_SSL\u003drequired\"\nwhile that certenly has its uses it feels clunky to me and easy to not use correctly.\n\ni would prefer to do \"resource1:CUSTOM_CRYPTO_CARD\u003d1 traits1:CUSTOM_SSL\u003drequired\"\n\nwhile i like using traits for qualitative aspects i think form a quota persective i would\nlike to also be more fine graned then jsut MDEV when we eventually have unifed limits\nwhich is one of the benefits of having custom resources classes in my view.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":true,"context_lines":[{"line_number":110,"context_line":"The only difference is that if a PCI device is set as *generic*, then the"},{"line_number":111,"context_line":"inventory of the number of virtual devices it can create for the specific type"},{"line_number":112,"context_line":"will use a new resource class named `MDEV`."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Accordingly, if a flavor specifies an extraspec with resource groups like"},{"line_number":115,"context_line":"`resources:MDEV\u003d1`, then Placement will create allocations on a Resource"},{"line_number":116,"context_line":"Privoder with this resource class. When, later in the boot sequence, the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0bc8d8d6_6dab1a89","line":113,"in_reply_to":"14781386_d98ebb90","updated":"2021-05-25 15:11:56.000000000","message":"Can you clarify what you\u0027re against ? Just the standard RC or something else ?","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e27b6d11c3f1558f85c0d0032d6e1ac4ddc12b5b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"The only difference is that if a PCI device is set as *generic*, then the"},{"line_number":111,"context_line":"inventory of the number of virtual devices it can create for the specific type"},{"line_number":112,"context_line":"will use a new resource class named `MDEV`."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Accordingly, if a flavor specifies an extraspec with resource groups like"},{"line_number":115,"context_line":"`resources:MDEV\u003d1`, then Placement will create allocations on a Resource"},{"line_number":116,"context_line":"Privoder with this resource class. When, later in the boot sequence, the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"355fea48_c628cda1","line":113,"in_reply_to":"8e2d9fa2_c6c56add","updated":"2021-05-26 13:57:09.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cd5ae3d116b63a2cb7c7775891330b366449c9b","unresolved":true,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Accordingly, if a flavor specifies an extraspec with resource groups like"},{"line_number":115,"context_line":"`resources:MDEV\u003d1`, then Placement will create allocations on a Resource"},{"line_number":116,"context_line":"Privoder with this resource class. When, later in the boot sequence, the"},{"line_number":117,"context_line":"libvirt driver will get allocations for the instance in the `spawn()` method"},{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"59b82581_614184be","line":116,"range":{"start_line":116,"start_character":0,"end_line":116,"end_character":8},"updated":"2021-05-25 10:56:23.000000000","message":"nit: Provider","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Accordingly, if a flavor specifies an extraspec with resource groups like"},{"line_number":115,"context_line":"`resources:MDEV\u003d1`, then Placement will create allocations on a Resource"},{"line_number":116,"context_line":"Privoder with this resource class. When, later in the boot sequence, the"},{"line_number":117,"context_line":"libvirt driver will get allocations for the instance in the `spawn()` method"},{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"}],"source_content_type":"text/x-rst","patch_set":1,"id":"747a9199_c882f19a","line":116,"range":{"start_line":116,"start_character":0,"end_line":116,"end_character":8},"in_reply_to":"59b82581_614184be","updated":"2021-05-25 15:07:47.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"26dab3e3142357100ff88fcb5b70621d47bfff1e","unresolved":true,"context_lines":[{"line_number":117,"context_line":"libvirt driver will get allocations for the instance in the `spawn()` method"},{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"},{"line_number":120,"context_line":"existing mdev or ask sysfs to create a new one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"964f7889_0af771c3","line":120,"updated":"2021-05-25 06:34:31.000000000","message":"When we add virtual persistent memory support, then found the current vgpu implement has race problem, since it claims the vgpu by libvirt and outside the resource tracker.\nThen we add virtual persistent memory support, we add an generic code to support different devices, and still use ResourceTracker to do the resource claim. Maybe we use it for GPU now https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L189","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":true,"context_lines":[{"line_number":117,"context_line":"libvirt driver will get allocations for the instance in the `spawn()` method"},{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"},{"line_number":120,"context_line":"existing mdev or ask sysfs to create a new one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e582504c_facd2213","line":120,"in_reply_to":"964f7889_0af771c3","updated":"2021-05-25 15:07:47.000000000","message":"Well, it\u0027s not related to this spec but sure we could do this.\n\nThat being said, we can also allocate mdevs in a synchronious method as you can see in https://github.com/openstack/nova/blob/771ea5bf1ea667d6ffe456ee6ef081b83a77f53c/nova/virt/libvirt/driver.py#L7817 so I don\u0027t see why we could have races.\n\nDo we have an open bug for this ? Can\u0027t see it in https://bugs.launchpad.net/nova/+bugs?field.tag\u003dvgpu","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":117,"context_line":"libvirt driver will get allocations for the instance in the `spawn()` method"},{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"},{"line_number":120,"context_line":"existing mdev or ask sysfs to create a new one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"41316ba6_7eba4c7c","line":120,"in_reply_to":"964f7889_0af771c3","updated":"2021-05-25 13:01:56.000000000","message":"that or we can start modeling mdevs using the pci tracker as device type \"mdev\" or reuse teh resouce tabel that pMEM uses which is what you are pointing too.\n\ni would prefer to moving to tracking mdev in the nova db using either of the existing tables and remove the use of the domain xmls we have today.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e27b6d11c3f1558f85c0d0032d6e1ac4ddc12b5b","unresolved":false,"context_lines":[{"line_number":117,"context_line":"libvirt driver will get allocations for the instance in the `spawn()` method"},{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"},{"line_number":120,"context_line":"existing mdev or ask sysfs to create a new one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"eb49076e_c2e4803c","line":120,"in_reply_to":"a9040604_7f9de887","updated":"2021-05-26 13:57:09.000000000","message":"OK, please raise a bug then and we\u0027ll try to fix it for both the vGPU and mdev features then.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"75c8146007f743ea996ac151ac2200f795806e56","unresolved":true,"context_lines":[{"line_number":117,"context_line":"libvirt driver will get allocations for the instance in the `spawn()` method"},{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"},{"line_number":120,"context_line":"existing mdev or ask sysfs to create a new one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a9040604_7f9de887","line":120,"in_reply_to":"e582504c_facd2213","updated":"2021-05-26 08:09:44.000000000","message":"The race window is between allocate_mdev https://github.com/openstack/nova/blob/771ea5bf1ea667d6ffe456ee6ef081b83a77f53c/nova/virt/libvirt/driver.py#L10978 and create domain in the libvirt https://github.com/openstack/nova/blob/771ea5bf1ea667d6ffe456ee6ef081b83a77f53c/nova/virt/libvirt/driver.py#L10992\n\nThe `allocate_mdev` get the a free mdev based on the mdev usage of libvirt domain. Another request can get the same free mdev before we actually create the previous domain in the libvirt.\n\nemm...I didn\u0027t remember we file bug or not.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cd5ae3d116b63a2cb7c7775891330b366449c9b","unresolved":true,"context_lines":[{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"},{"line_number":120,"context_line":"existing mdev or ask sysfs to create a new one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"},{"line_number":124,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"af0d2ba3_1a7331d7","line":121,"updated":"2021-05-25 10:56:23.000000000","message":"Is there any difference between plugging an mdev that was allocated as VGPU resource and an mdev that was allocated as a MDEV resource?","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f382e6c4a406e0ffc8d67f48cdac04a3d03ae30a","unresolved":false,"context_lines":[{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"},{"line_number":120,"context_line":"existing mdev or ask sysfs to create a new one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"},{"line_number":124,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"eb5cc3ae_8d80eec2","line":121,"in_reply_to":"4fa1ade0_4ed6d1ed","updated":"2021-05-26 09:12:33.000000000","message":"Ack, then lets try to create a generic solution.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":true,"context_lines":[{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"},{"line_number":120,"context_line":"existing mdev or ask sysfs to create a new one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"},{"line_number":124,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4fa1ade0_4ed6d1ed","line":121,"in_reply_to":"af0d2ba3_1a7331d7","updated":"2021-05-25 15:07:47.000000000","message":"TBH, nothing really AFAIK. This is just that we have VGPU allocations where sometimes those aren\u0027t for virtual GPUs...","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":118,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":119,"context_line":"allocations but also the `MDEV` ones and will consequently either bind an"},{"line_number":120,"context_line":"existing mdev or ask sysfs to create a new one."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Alternatives"},{"line_number":124,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"14bc9560_999a5bb3","line":121,"in_reply_to":"af0d2ba3_1a7331d7","updated":"2021-05-25 13:01:56.000000000","message":"not that i am aware of.\nthere should be no different form a pure libvirt point of view although generically i would not expect there to be the same interaction with a liciense server at teh driver level that nvidia requries for vGPUs.\nthat interaction however happens out of band of nova so we dont really need to worry about it in this workflow.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"91dca090cc2a7142f5040d443ca6549638f420fd","unresolved":true,"context_lines":[{"line_number":130,"context_line":"which would potentially require to modify existing allocations. Besides, other"},{"line_number":131,"context_line":"virt drivers could continue to use the VGPU resource class, which would mean"},{"line_number":132,"context_line":"a discrepancy between virt drivers."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Data model impact"},{"line_number":135,"context_line":"-----------------"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"d7582870_f07e4e83","line":133,"updated":"2021-05-26 14:34:55.000000000","message":"Use cyborg. I know why we don\u0027t want to do this, but it would be good to mention all the same","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2b826c04094faead277757247c5a948d44c2a478","unresolved":false,"context_lines":[{"line_number":130,"context_line":"which would potentially require to modify existing allocations. Besides, other"},{"line_number":131,"context_line":"virt drivers could continue to use the VGPU resource class, which would mean"},{"line_number":132,"context_line":"a discrepancy between virt drivers."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Data model impact"},{"line_number":135,"context_line":"-----------------"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"c3d80f38_aea0b92f","line":133,"in_reply_to":"d7582870_f07e4e83","updated":"2021-06-01 09:20:39.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3df356ecbc14097e4048a89c73f7018d4d350d61","unresolved":true,"context_lines":[{"line_number":139,"context_line":"REST API impact"},{"line_number":140,"context_line":"---------------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"None."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Security impact"},{"line_number":145,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"575cbfa2_e570b5e3","line":142,"updated":"2021-05-25 06:40:35.000000000","message":"probably need to define the scope, like what operation we support in this propose, we have resize, rebuild, live migration, shelve/unshelve...etc","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":false,"context_lines":[{"line_number":139,"context_line":"REST API impact"},{"line_number":140,"context_line":"---------------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"None."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Security impact"},{"line_number":145,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"886073d8_bf2422f4","line":142,"in_reply_to":"575cbfa2_e570b5e3","updated":"2021-05-25 15:07:47.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":139,"context_line":"REST API impact"},{"line_number":140,"context_line":"---------------"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"None."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"Security impact"},{"line_number":145,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1155c6a9_717d725b","line":142,"in_reply_to":"575cbfa2_e570b5e3","updated":"2021-05-25 13:01:56.000000000","message":"you are suggesting listing the set of operation that will return a 400 \"not implemeted with mdev\" message untill they are all completed?\n\nif so sure althoguh i woudl assume sylavain is aming to enable all opartions currently supproted by vgpus so that would be everything excluding live migration?","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":170,"context_line":"----------------"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Potentially other virt drivers could use the opportunity to have a new resource"},{"line_number":173,"context_line":"class for their needs."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Upgrade impact"},{"line_number":176,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"340b90ad_5929bcd8","line":173,"updated":"2021-05-25 13:01:56.000000000","message":"they could but i dont think we should add a new standard resource class for mdevs.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":170,"context_line":"----------------"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Potentially other virt drivers could use the opportunity to have a new resource"},{"line_number":173,"context_line":"class for their needs."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Upgrade impact"},{"line_number":176,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"041ac066_5255b30b","line":173,"in_reply_to":"340b90ad_5929bcd8","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3df356ecbc14097e4048a89c73f7018d4d350d61","unresolved":true,"context_lines":[{"line_number":179,"context_line":"use the new generic class for new hardware in order to prevent unneeded and"},{"line_number":180,"context_line":"unnecessary Placement inventories modifications, but this isn\u0027t really changing"},{"line_number":181,"context_line":"the situation where some operator decides to reshuffle their GPUs with"},{"line_number":182,"context_line":"different types."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dac82708_cceba950","line":182,"updated":"2021-05-25 06:40:35.000000000","message":"maybe we can check the operator doesn\u0027t put the same devices into the new and old configuration. that prevent the operator break existing env.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":true,"context_lines":[{"line_number":179,"context_line":"use the new generic class for new hardware in order to prevent unneeded and"},{"line_number":180,"context_line":"unnecessary Placement inventories modifications, but this isn\u0027t really changing"},{"line_number":181,"context_line":"the situation where some operator decides to reshuffle their GPUs with"},{"line_number":182,"context_line":"different types."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7e603725_b4c3f77f","line":182,"in_reply_to":"dac82708_cceba950","updated":"2021-05-25 15:07:47.000000000","message":"We already discussed this and we said no before. We already have documentation about this :\nhttps://docs.openstack.org/nova/latest/admin/virtual-gpu.html#enable-gpu-types-compute (see the warning note)","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":179,"context_line":"use the new generic class for new hardware in order to prevent unneeded and"},{"line_number":180,"context_line":"unnecessary Placement inventories modifications, but this isn\u0027t really changing"},{"line_number":181,"context_line":"the situation where some operator decides to reshuffle their GPUs with"},{"line_number":182,"context_line":"different types."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"12006bee_6455b6e4","line":182,"in_reply_to":"dac82708_cceba950","updated":"2021-05-25 13:01:56.000000000","message":"ya that shoudl be posible we can jsut check if both the deprecated and new config options are present in agent startup.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4cd5ae3d116b63a2cb7c7775891330b366449c9b","unresolved":true,"context_lines":[{"line_number":180,"context_line":"unnecessary Placement inventories modifications, but this isn\u0027t really changing"},{"line_number":181,"context_line":"the situation where some operator decides to reshuffle their GPUs with"},{"line_number":182,"context_line":"different types."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"79f01d8f_e8f9227c","line":183,"updated":"2021-05-25 10:56:23.000000000","message":"Do you need a new service version check for this or we can simply rely on the fact that only new computes can ever have MDEV inventories in placement?","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f382e6c4a406e0ffc8d67f48cdac04a3d03ae30a","unresolved":false,"context_lines":[{"line_number":180,"context_line":"unnecessary Placement inventories modifications, but this isn\u0027t really changing"},{"line_number":181,"context_line":"the situation where some operator decides to reshuffle their GPUs with"},{"line_number":182,"context_line":"different types."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bd6ca226_02b18e63","line":183,"in_reply_to":"3a443b85_b8029af4","updated":"2021-05-26 09:12:33.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"cc9bdf58a4072ae242d2266499de9ccc758f8ff6","unresolved":true,"context_lines":[{"line_number":180,"context_line":"unnecessary Placement inventories modifications, but this isn\u0027t really changing"},{"line_number":181,"context_line":"the situation where some operator decides to reshuffle their GPUs with"},{"line_number":182,"context_line":"different types."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"83340147_13141e3e","line":183,"in_reply_to":"54f33432_7ac51502","updated":"2021-05-25 15:03:16.000000000","message":"I\u0027m on the same page. I believe we can rely on having the placement inventory in place only on the new computes. Just wanted to make sure other does not see any potential downside of that approach","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"77badecf46090643dc5bff51bbeea5f7353dcdbb","unresolved":true,"context_lines":[{"line_number":180,"context_line":"unnecessary Placement inventories modifications, but this isn\u0027t really changing"},{"line_number":181,"context_line":"the situation where some operator decides to reshuffle their GPUs with"},{"line_number":182,"context_line":"different types."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a443b85_b8029af4","line":183,"in_reply_to":"79f01d8f_e8f9227c","updated":"2021-05-25 15:07:47.000000000","message":"Well, I don\u0027t think so, old nova-compute services would then just have none MDEV resources so they couldn\u0027t be used if a flavor asks for this, that\u0027s it.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":180,"context_line":"unnecessary Placement inventories modifications, but this isn\u0027t really changing"},{"line_number":181,"context_line":"the situation where some operator decides to reshuffle their GPUs with"},{"line_number":182,"context_line":"different types."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Implementation"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"54f33432_7ac51502","line":183,"in_reply_to":"79f01d8f_e8f9227c","updated":"2021-05-25 13:01:56.000000000","message":"i would like to rely on placement, i think that should be sufficent but its a good question. for spwan i belive it will be for move operation i hope it will be.\n\nthe only concern i woudl have is if cyborg or some other service also reported the same custome resouce class you tried to use but i dont think that should happen. a compute service version check is relitvly cheap but it happens rather late if we want to do it on a per host basis so i assuem we woudl instead do a min compute service change in the api?\n\nthere by delaying this feature until all nodes have been updated?\n\nits a resonable question to ask but i am not sure we need that.","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"41b0b80b143450c52db32257681f829a68420ac9","unresolved":true,"context_lines":[{"line_number":201,"context_line":"Work Items"},{"line_number":202,"context_line":"----------"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"* Propose the new resource class to `os-resource-classes`."},{"line_number":205,"context_line":"* Amend the libvirt methods to look at `MDEV` allocations and create `MDEV`"},{"line_number":206,"context_line":"  inventories."},{"line_number":207,"context_line":"* Expose the configuration changes."}],"source_content_type":"text/x-rst","patch_set":1,"id":"a4780ba1_880ee4c7","line":204,"range":{"start_line":204,"start_character":0,"end_line":204,"end_character":58},"updated":"2021-05-25 13:01:56.000000000","message":"-1","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"227b3690c09b2164446fff95bc2945e4a19bcb64","unresolved":false,"context_lines":[{"line_number":201,"context_line":"Work Items"},{"line_number":202,"context_line":"----------"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"* Propose the new resource class to `os-resource-classes`."},{"line_number":205,"context_line":"* Amend the libvirt methods to look at `MDEV` allocations and create `MDEV`"},{"line_number":206,"context_line":"  inventories."},{"line_number":207,"context_line":"* Expose the configuration changes."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9905515e_8e5f9a5c","line":204,"range":{"start_line":204,"start_character":0,"end_line":204,"end_character":58},"in_reply_to":"a4780ba1_880ee4c7","updated":"2021-05-25 15:11:56.000000000","message":"Ack","commit_id":"e3c9eec74f42598b841afb4383db0c25a88a5f83"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79dc34ba3689b8902d47d5aaa3ac006b0e1c92bc","unresolved":true,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. code::"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"},{"line_number":93,"context_line":"             default\u003d\u0027vgpu\u0027,"},{"line_number":94,"context_line":"             help\u003d\u0027Class of mediated device to manage.\u0027)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a04fb41_f5b7074a","line":92,"updated":"2021-06-09 07:48:29.000000000","message":"As this will be mapped to CUSTOM_ RC in placement we need to implement and document restriction of the value. Placement enforces a [A-Z0-9_] (note that it is all capital) character set and 255 max length (including the CUSTOM_ prefix) for the RC names. Alternatively we can try to translate to that charset. Still I think it is better to restrict than to translate.","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80654fb0352d6681532626511f621d33610d13d5","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":".. code::"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  cfg.StrOpt(\u0027mdev_class\u0027,"},{"line_number":93,"context_line":"             default\u003d\u0027vgpu\u0027,"},{"line_number":94,"context_line":"             help\u003d\u0027Class of mediated device to manage.\u0027)"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"91e4fd00_2d140425","line":92,"in_reply_to":"7a04fb41_f5b7074a","updated":"2021-06-16 10:32:02.000000000","message":"Ack","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79dc34ba3689b8902d47d5aaa3ac006b0e1c92bc","unresolved":true,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":" ..note:: We already have `configuration checks`_ for this but we could try to"},{"line_number":110,"context_line":"          look at the inventories to detect unwanted changes if allocations"},{"line_number":111,"context_line":"          were create and prevent the compute service to start."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"The custom resource classes"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9dd43946_7496a044","line":111,"updated":"2021-06-09 07:48:29.000000000","message":"+1","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80654fb0352d6681532626511f621d33610d13d5","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":" ..note:: We already have `configuration checks`_ for this but we could try to"},{"line_number":110,"context_line":"          look at the inventories to detect unwanted changes if allocations"},{"line_number":111,"context_line":"          were create and prevent the compute service to start."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"The custom resource classes"}],"source_content_type":"text/x-rst","patch_set":2,"id":"77c7348b_28c51e26","line":111,"in_reply_to":"9dd43946_7496a044","updated":"2021-06-16 10:32:02.000000000","message":"Ack","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79dc34ba3689b8902d47d5aaa3ac006b0e1c92bc","unresolved":true,"context_lines":[{"line_number":120,"context_line":"`vgpu`*, then the inventory of the number of virtual devices it can create for"},{"line_number":121,"context_line":"the specific type will use a custom resource class named `CUSTOM_\u003ctype\u003e`."},{"line_number":122,"context_line":"For example, in the example above, inventories of physical devices using the"},{"line_number":123,"context_line":"`mlx5` mdev class will have resources of a class named `CUSTOM_MLX5`."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Accordingly, if a flavor specifies an extraspec with resource groups like"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5febf1c4_46afae5b","line":123,"updated":"2021-06-09 07:48:29.000000000","message":"OK. So if the mdev_class \u003d\u003d vgpu then rc_name will be VGPU (non custom) but in every other case we use f\"CUSTOM_{mdev_class.upper()}\". This is fine for me.","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80654fb0352d6681532626511f621d33610d13d5","unresolved":false,"context_lines":[{"line_number":120,"context_line":"`vgpu`*, then the inventory of the number of virtual devices it can create for"},{"line_number":121,"context_line":"the specific type will use a custom resource class named `CUSTOM_\u003ctype\u003e`."},{"line_number":122,"context_line":"For example, in the example above, inventories of physical devices using the"},{"line_number":123,"context_line":"`mlx5` mdev class will have resources of a class named `CUSTOM_MLX5`."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Accordingly, if a flavor specifies an extraspec with resource groups like"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4431c4ca_7eec8dd3","line":123,"in_reply_to":"5febf1c4_46afae5b","updated":"2021-06-16 10:32:02.000000000","message":"Ack","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79dc34ba3689b8902d47d5aaa3ac006b0e1c92bc","unresolved":true,"context_lines":[{"line_number":129,"context_line":"libvirt driver will get allocations for the instance in the `spawn()` method"},{"line_number":130,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":131,"context_line":"allocations but also the `CUSTOM_MLX5` ones and will consequently either bind"},{"line_number":132,"context_line":"an existing mdev or ask sysfs to create a new one."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f3290e2_1c0b2a55","line":132,"updated":"2021-06-09 07:48:29.000000000","message":"In practice the libvirt driver needs to look at every CUSTOM_ RC in the incoming allocation and figure out what needs to be mapped to an MDEV. It should not be an error if there is allocation to other CUSTOM_ RCs that cannot be mapped to an MDEV device.","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80654fb0352d6681532626511f621d33610d13d5","unresolved":false,"context_lines":[{"line_number":129,"context_line":"libvirt driver will get allocations for the instance in the `spawn()` method"},{"line_number":130,"context_line":"(or for other move operations), it will not only lookup at the `VGPU` related"},{"line_number":131,"context_line":"allocations but also the `CUSTOM_MLX5` ones and will consequently either bind"},{"line_number":132,"context_line":"an existing mdev or ask sysfs to create a new one."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"17290cfa_828bd707","line":132,"in_reply_to":"1f3290e2_1c0b2a55","updated":"2021-06-16 10:32:02.000000000","message":"Ack","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"79dc34ba3689b8902d47d5aaa3ac006b0e1c92bc","unresolved":true,"context_lines":[{"line_number":131,"context_line":"allocations but also the `CUSTOM_MLX5` ones and will consequently either bind"},{"line_number":132,"context_line":"an existing mdev or ask sysfs to create a new one."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Alternatives"},{"line_number":136,"context_line":"------------"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"8f0ee836_d33e206d","line":134,"updated":"2021-06-09 07:48:29.000000000","message":"I\u0027m wondering that having only a mdev_class that is encoded in a CUSTOM_ RC means that deployers will encode not only quantitative but also qualitative information in the name of the RC. For qualitative information we have traits in placement. \n\nFor example: A deployer has a compute with two pGPUs both MDEV capable, supporting 4 vGPUs each. But one of the pGPU is a newer model, causing that vGPUs from it has a better performance. With the current proposal deployer can only encode this difference in the mdev_class and hence in the CUSTOM_ RC name. E.g.:\n\n  [devices]\n  enabled_mdev_types \u003d vgpu_slow, vgpu_fast\n  [mdev_vgpu_slow]\n  device_addresses \u003d 0000:84:00.0\n  mdev_class\u003dvgpu_slow\n  [mdev_vgpu_fast]\n  device_addresses \u003d 0000:85:00.0\n  mdev_class\u003dvgpu_fast\n\nThen the deployer creates two different flavors one referring to CUSTOM_VGPU_SLOW the other referring to CUSTOM_VGPU_FAST. This works so far.\n\nHowever the deployer cannot create flavors expressing the give-me-a-vgpu-i-dont-care-how-fast-it-is case. For this to be expressible the qualitative part of the resource would need to be represented with a trait instead of an RC. Then a trait can be required in the flavor to get a fast vGPU or can be omitted to get any (fast or slow) vGPU.\n\nOne way to do this is to add an extra \u0027mdev_traits\u0027 config option which would be a list of string. Nova would map that to CUSTOM_ traits. Or alternatively we can tell the deployer to use provider.yaml but it would be strange to set the RC by nova.conf but the trait by provider.yaml.","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80654fb0352d6681532626511f621d33610d13d5","unresolved":true,"context_lines":[{"line_number":131,"context_line":"allocations but also the `CUSTOM_MLX5` ones and will consequently either bind"},{"line_number":132,"context_line":"an existing mdev or ask sysfs to create a new one."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Alternatives"},{"line_number":136,"context_line":"------------"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"c8a7f148_402b068c","line":134,"in_reply_to":"8f0ee836_d33e206d","updated":"2021-06-16 10:32:02.000000000","message":"Well, two thoughts :\n\n1/ VGPU types exist for this.\nFor example, for the same GPU, you can ask for a few fast vGPUs or a lot of slow vGPUs.\nExample with a V100 : V100-1A gives me a large number of vGPUs while V100-16C gives you max performance for AI.\nhttps://docs.nvidia.com/grid/latest/grid-vgpu-user-guide/index.html#vgpu-types-tesla-v100-pcie\n\n2/ Also, for the usecase, we provided a documentation explaining how to use custom traits : https://docs.openstack.org/nova/latest/admin/virtual-gpu.html#optional-provide-custom-traits-for-multiple-gpu-types\n\nSo, I guess that\u0027s maybe something we could eventually do, but this is unrelated to the spec here and should be discussed in another spec.","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6e2cefcf415b2bc9b9d1548fca3183856f599ec5","unresolved":false,"context_lines":[{"line_number":131,"context_line":"allocations but also the `CUSTOM_MLX5` ones and will consequently either bind"},{"line_number":132,"context_line":"an existing mdev or ask sysfs to create a new one."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Alternatives"},{"line_number":136,"context_line":"------------"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"d3949c7f_c3ca948b","line":134,"in_reply_to":"c8a7f148_402b068c","updated":"2021-06-18 13:19:50.000000000","message":"We discussed it on IRC[1] with Sylvain and Sean and I think I see now how this works.\n\nSo the deployer can specify two mdev types in the config with the same mdev_class value to put them into the same resource pool, then the deployer can use custom traits to still differentiate between the two mdev types that are pooled in the same RC. That logic works for me and that preserves the current vgpu logic where every vgpu type is pooled into the same VGPU resource inventory. \n\nWe agreed that some documentation needed that encourages the deployer to use custom traits instead of encoding qualitative information into the mdev_class name. \n\n[1] https://meetings.opendev.org/irclogs/%23openstack-nova/%23openstack-nova.2021-06-18.log.html#t2021-06-18T12:38:49","commit_id":"863ef70f679f952375b13458ec0f1dcd925b66cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"c6f3c07ba36a09241fca438cd0df875d1faf9c90","unresolved":true,"context_lines":[{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  .. note:: As currently, we only support stateless physical devices, as Nova"},{"line_number":43,"context_line":"            just reuses existing mediated devices between instances."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d177322c_f0919303","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":2},"updated":"2021-06-22 13:04:21.000000000","message":"nit: Remove white spaces.","commit_id":"b4a7e1838a09a9f099fdc57d2529cbc7d1021dff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9194b54603332a5e80f7df7051373a6e8f2acee7","unresolved":true,"context_lines":[{"line_number":39,"context_line":"GPU, if specified."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  .. note:: As currently, we only support stateless physical devices, as Nova"},{"line_number":43,"context_line":"            just reuses existing mediated devices between instances."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"55d1dd2b_4a9559e0","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":2},"in_reply_to":"d177322c_f0919303","updated":"2021-07-05 12:05:43.000000000","message":"this note renders correctly\nso the paces before are fine\nhttps://ee7333e37ee142bf80a3-cf46b97128df9f2b5d8420d3b89377a5.ssl.cf5.rackcdn.com/792796/3/check/openstack-tox-docs/685b52a/docs/specs/xena/approved/generic-mdevs.html#problem-description","commit_id":"b4a7e1838a09a9f099fdc57d2529cbc7d1021dff"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"c6f3c07ba36a09241fca438cd0df875d1faf9c90","unresolved":true,"context_lines":[{"line_number":108,"context_line":"  mdev_class\u003dmlx5"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":" ..note:: We already have `configuration checks`_ for this but we could try to"},{"line_number":112,"context_line":"          look at the inventories to detect unwanted changes if allocations"},{"line_number":113,"context_line":"          were create and prevent the compute service to start."},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5bfaf496_bdd43673","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":1},"updated":"2021-06-22 13:04:21.000000000","message":"nit: Remove a white space.","commit_id":"b4a7e1838a09a9f099fdc57d2529cbc7d1021dff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9194b54603332a5e80f7df7051373a6e8f2acee7","unresolved":true,"context_lines":[{"line_number":108,"context_line":"  mdev_class\u003dmlx5"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":" ..note:: We already have `configuration checks`_ for this but we could try to"},{"line_number":112,"context_line":"          look at the inventories to detect unwanted changes if allocations"},{"line_number":113,"context_line":"          were create and prevent the compute service to start."},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"cbf0649a_3679f2fd","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":1},"in_reply_to":"5bfaf496_bdd43673","updated":"2021-07-05 12:05:43.000000000","message":"however this note does not becaue teh spaces after the .. are required i.e.\".. note::\"\nhttps://ee7333e37ee142bf80a3-cf46b97128df9f2b5d8420d3b89377a5.ssl.cf5.rackcdn.com/792796/3/check/openstack-tox-docs/685b52a/docs/specs/xena/approved/generic-mdevs.html#the-configuration-changes","commit_id":"b4a7e1838a09a9f099fdc57d2529cbc7d1021dff"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9194b54603332a5e80f7df7051373a6e8f2acee7","unresolved":true,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Nothing really fancy here. The Nova libvirt driver will lookup at existing"},{"line_number":120,"context_line":"PCI devices that support mediated devices and create inventories as of now."},{"line_number":121,"context_line":"The only difference is that if a PCI device is set as *something else but"},{"line_number":122,"context_line":"`vgpu`*, then the inventory of the number of virtual devices it can create for"},{"line_number":123,"context_line":"the specific type will use a custom resource class named `CUSTOM_\u003ctype\u003e`."},{"line_number":124,"context_line":"For example, in the example above, inventories of physical devices using the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"cb33fe40_e2af0aef","line":121,"range":{"start_line":121,"start_character":65,"end_line":121,"end_character":73},"updated":"2021-07-05 12:05:43.000000000","message":"nit: other than","commit_id":"b4a7e1838a09a9f099fdc57d2529cbc7d1021dff"}]}
