)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"67c2eb79293aa1f34a318056d27e8127449bc210","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Eric Fried \u003copenstack@fried.cc\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-07-11 10:32:12 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Propose ACCELERATOR_{FPGA|GPU} resource classes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"These will usually be inventoried by Cyborg."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7faddb67_b6b818e5","line":7,"range":{"start_line":7,"start_character":26,"end_line":7,"end_character":29},"updated":"2019-07-11 20:48:40.000000000","message":"PGPU\n\n(p for pedantic)","commit_id":"127a5f4f4ef9d3af39679a5e134c80db0cca6179"}],"os_resource_classes/__init__.py":[{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"0743e0813d682cff64dce2f638058e187bd3290c","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Namespace used for custom resource classes"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_4a69fd88","line":72,"updated":"2019-05-10 02:28:42.000000000","message":"Why can\u0027t we add an ACCELERATOR_GPU here? The existing RCs are VGPU and VGPU_DISPLAY_HEAD. But both specifically refer to virtual GPUs, and seem to be focused on the graphics use case. For passing the physical GPU for compute offload, we want something distinctive. Also, it will be subject to separate quotas/limits in Keystone.\n\nAlso, using PCI_DEVICE is too general: we want quotas for GPU RC specifically.","commit_id":"d1b90e291cec76bb9bf07c929dc0af020f1ac46f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"be187080120dc19f127d6d8287f7194150327f2e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Namespace used for custom resource classes"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_a20c4f41","line":72,"in_reply_to":"dfbec78f_0ecea72d","updated":"2019-05-10 21:36:00.000000000","message":"Done.\n\nAssuming this is the whole GPU, not just a PGPU thereon.","commit_id":"d1b90e291cec76bb9bf07c929dc0af020f1ac46f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5cf52b88e768b6348f31da17288415db144c0c83","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Namespace used for custom resource classes"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_89b61afa","line":72,"in_reply_to":"dfbec78f_4a69fd88","updated":"2019-05-10 13:48:41.000000000","message":"We could. I just added this one because (however it ends up being spelled) it\u0027s the one I know for sure cyborg is going to use with nova. Is there a consumer for ACCELERATOR_GPU right now? In particular, is it targeted to be part of the cyborg/nova integration in Train? If not, it would be appropriate (and cheap) to propose it in a separate patch tagged (or not) against a separate blueprint.","commit_id":"d1b90e291cec76bb9bf07c929dc0af020f1ac46f"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"5673192c003d4366cc341fd406a6bdd4017982ce","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Namespace used for custom resource classes"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_0ecea72d","line":72,"in_reply_to":"dfbec78f_89b61afa","updated":"2019-05-10 20:28:51.000000000","message":"Cyborg has an Nvidia GPU driver [1]. It is targeted for Nova integration too, i.e., we can put up VMs with physical GPUs.\n\n[1] https://github.com/openstack/cyborg/tree/master/cyborg/accelerator/drivers/gpu","commit_id":"d1b90e291cec76bb9bf07c929dc0af020f1ac46f"},{"author":{"_account_id":17813,"name":"wangzhh","email":"wzh_1993@126.com","username":"wangzhh"},"change_message_id":"39369405be29c78960b16b2c13182ca97f4848aa","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"]"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"# Namespace used for custom resource classes"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_c211435f","line":72,"in_reply_to":"dfbec78f_89b61afa","updated":"2019-05-10 21:35:51.000000000","message":"Hi Eric,\nThanks a lot.\nGPU is also a resource which others want Cyborg support. I think it\u0027s better to add a new one here.","commit_id":"d1b90e291cec76bb9bf07c929dc0af020f1ac46f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9c6c81a5741b8aca8702fe2c3abfb96b811fbe19","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"    # A physical GPU for compute offload."},{"line_number":74,"context_line":"    \u0027ACCELERATOR_GPU\u0027,"},{"line_number":75,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfbec78f_d39909c4","line":72,"range":{"start_line":72,"start_character":5,"end_line":72,"end_character":16},"updated":"2019-05-13 07:24:53.000000000","message":"Why the prefix \"ACCELERATOR\"? Is this there to encode how the  FPGA is intended to be used by the guest? Is it there to encode that Cyborg owns this resource class?\n\nCould we simply call it FPGA and GPU ?","commit_id":"e8e4b135ad5ad276fb41ec86174525159822aca3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8f084f42e524badc742af5485d0f43dbc7244eb9","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"    # A physical GPU for compute offload."},{"line_number":74,"context_line":"    \u0027ACCELERATOR_GPU\u0027,"},{"line_number":75,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_669afc6e","line":72,"range":{"start_line":72,"start_character":5,"end_line":72,"end_character":16},"in_reply_to":"7faddb67_153abee6","updated":"2019-07-11 07:11:09.000000000","message":"Sure. So this needs to be changed to FPGA and the belowACCELEARTOR_GPU  needs to be changed to PGPU according to https://specs.openstack.org/openstack/nova-specs/specs/train/approved/nova-cyborg-interaction.html#developer-impact","commit_id":"e8e4b135ad5ad276fb41ec86174525159822aca3"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"916cf98913eb4fd8ca8b956232e6cd6648cd5335","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"    # A physical GPU for compute offload."},{"line_number":74,"context_line":"    \u0027ACCELERATOR_GPU\u0027,"},{"line_number":75,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_153abee6","line":72,"range":{"start_line":72,"start_character":5,"end_line":72,"end_character":16},"in_reply_to":"dfbec78f_125ea943","updated":"2019-07-03 22:18:48.000000000","message":"The spec has merged. Can we close on this patch?","commit_id":"e8e4b135ad5ad276fb41ec86174525159822aca3"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"8f38aeba3ce69079373dce3bb415188d99623f46","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"    # A physical GPU for compute offload."},{"line_number":74,"context_line":"    \u0027ACCELERATOR_GPU\u0027,"},{"line_number":75,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfbec78f_125ea943","line":72,"range":{"start_line":72,"start_character":5,"end_line":72,"end_character":16},"in_reply_to":"dfbec78f_55a17845","updated":"2019-05-14 05:48:55.000000000","message":"OK. Responded in the spec.","commit_id":"e8e4b135ad5ad276fb41ec86174525159822aca3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"801beb0a94568c79b0903335c9d4c93f55973c83","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"    # A physical GPU for compute offload."},{"line_number":74,"context_line":"    \u0027ACCELERATOR_GPU\u0027,"},{"line_number":75,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfbec78f_55a17845","line":72,"range":{"start_line":72,"start_character":5,"end_line":72,"end_character":16},"in_reply_to":"dfbec78f_c97f1613","updated":"2019-05-13 15:08:22.000000000","message":"https://review.opendev.org/#/c/603955/12/specs/train/approved/nova-cyborg-interaction.rst@307","commit_id":"e8e4b135ad5ad276fb41ec86174525159822aca3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"42f450762c94c373bd20558c42c8852e831de79a","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    # http://specs.openstack.org/openstack/nova-specs/specs/train/approved/amd-sev-libvirt-support.html"},{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"    # A physical GPU for compute offload."},{"line_number":74,"context_line":"    \u0027ACCELERATOR_GPU\u0027,"},{"line_number":75,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dfbec78f_c97f1613","line":72,"range":{"start_line":72,"start_character":5,"end_line":72,"end_character":16},"in_reply_to":"dfbec78f_d39909c4","updated":"2019-05-13 10:15:58.000000000","message":"Let\u0027s have this discussion in the spec.","commit_id":"e8e4b135ad5ad276fb41ec86174525159822aca3"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"80fe2e8c2f9fddc44b828dfe87d2c784e586e024","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"    # A physical GPU for compute offload."},{"line_number":74,"context_line":"    \u0027ACCELERATOR_GPU\u0027,"},{"line_number":75,"context_line":"]"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_d78cd580","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":20},"updated":"2019-07-10 07:55:25.000000000","message":"Can it be a VF of a GPU or a mediated device of a GPU. There are several variants of GPU virtualization. Some are based on hardware SRIOV, some are assisted by software (mediation).","commit_id":"e8e4b135ad5ad276fb41ec86174525159822aca3"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"6a758ed7ab741cdf4f6cefb25fe148a88a8f0ae1","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"    # A physical GPU for compute offload."},{"line_number":74,"context_line":"    \u0027ACCELERATOR_GPU\u0027,"},{"line_number":75,"context_line":"]"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_de3b7ee8","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":20},"in_reply_to":"7faddb67_8c55e7c8","updated":"2019-07-11 01:42:03.000000000","message":"Thanks for the clarification Sundar!","commit_id":"e8e4b135ad5ad276fb41ec86174525159822aca3"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"2d4b7383d88c909de18fc3ed5f1d21df98b9c46e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    \u0027MEM_ENCRYPTION_CONTEXT\u0027,"},{"line_number":71,"context_line":"    # An accelerator (the \"VF\" that can be attached to the guest) from an FPGA."},{"line_number":72,"context_line":"    \u0027ACCELERATOR_FPGA\u0027,"},{"line_number":73,"context_line":"    # A physical GPU for compute offload."},{"line_number":74,"context_line":"    \u0027ACCELERATOR_GPU\u0027,"},{"line_number":75,"context_line":"]"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7faddb67_8c55e7c8","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":20},"in_reply_to":"7faddb67_d78cd580","updated":"2019-07-10 16:35:12.000000000","message":"For Cyborg, our approach is to distinguish between the offload resource (i.e. ACCELERATOR_*, the resource class) from the attach handle, i.e., the means by which it is attached to an instance (VF, mediated device, etc.). Cyborg will internally track the VFs or mediated devices associated with a device. Only the resource class inventory needs to be exposed to Placement.","commit_id":"e8e4b135ad5ad276fb41ec86174525159822aca3"}]}
