)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"02101b1b411b5ccf23fef11ecfabfa649f0b4c8c","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Sean Mooney \u003cwork@seanmooney.info\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-08-11 17:38:20 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"doc: Add guide for NVIDIA vGPU with SR-IOV variant drivers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Starting with RHEL 10, Ubuntu 24.04 and recent NVIDIA vGPU driver"},{"line_number":10,"context_line":"releases, NVIDIA GPUs that support SR-IOV (Ampere, Ada Lovelace and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9f70dca0_9d2de2f6","line":7,"updated":"2026-08-22 13:22:56.000000000","message":"Are we allowed to add vendor-specific guidance like this to upstream docs? We do have a stated goal of vendor neutrality, after all.","commit_id":"078fad7a486798efe1f1035ff3b389de45f9e379"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"808eeb0acc1f1cc5a99c0fff40c6d164ebf1714e","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Sean Mooney \u003cwork@seanmooney.info\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-08-11 17:38:20 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"doc: Add guide for NVIDIA vGPU with SR-IOV variant drivers"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Starting with RHEL 10, Ubuntu 24.04 and recent NVIDIA vGPU driver"},{"line_number":10,"context_line":"releases, NVIDIA GPUs that support SR-IOV (Ampere, Ada Lovelace and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"6f7d8906_430651bb","line":7,"in_reply_to":"9f70dca0_9d2de2f6","updated":"2026-08-24 12:23:09.000000000","message":"well we already have vendor specici guidence for the vgpus\n\nthe split i try to maintian is we can use vendor specifi cexample sbut ideally keep the fetaure doc vendor neutral.\n\nhere im expanding the examples for specifc hardware generation while the main doc remains neutral\n\nthis is more or less inlien with https://docs.openstack.org/nova/latest/admin/virtual-gpu.html\n\ninfact i based many of the addtion on that such as the inclution of the systemd unit file example templates.","commit_id":"078fad7a486798efe1f1035ff3b389de45f9e379"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"02101b1b411b5ccf23fef11ecfabfa649f0b4c8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c3564a37_b11a2767","updated":"2026-08-22 13:22:56.000000000","message":"Before I review this in depth, I want to check if this is something we feel belongs here (versus in a blog or in downstream docs). -1 is purely to catch your eye","commit_id":"078fad7a486798efe1f1035ff3b389de45f9e379"}],"doc/source/admin/pci-passthrough.rst":[{"author":{"_account_id":30523,"name":"Dincer Celik","email":"hello@dincercelik.com","username":"osmanlicilegi"},"change_message_id":"b2f7549d8030028c2356043972c5988e322197d2","unresolved":true,"context_lines":[{"line_number":552,"context_line":"  alias \u003d { \"device_type\": \"type-VF\", \"resource_class\": \"CUSTOM_A16_8A\", \"name\": \"A16_8A\" }"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"Configuring NVIDIA vGPU with SR-IOV and variant drivers"},{"line_number":556,"context_line":"-------------------------------------------------------"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"Starting with certain hypervisor releases (RHEL 10, Ubuntu 24.04) and NVIDIA"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f57de79e_67a063be","line":555,"updated":"2026-07-04 10:38:52.000000000","message":"Hi,\n\nThank you for the documentation update. It is very helpful.\n\nI have one question about using NVIDIA MIG with the new SR-IOV variant driver support.\n\nIf I want to offer different MIG profiles to users, what is the recommended way to configure this in Nova today?\n\nI want to make sure I follow the recommended upstream approach.\n\nThanks!","commit_id":"3fd06d52e1ad99fa9daca862f4d1d561d6984939"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8f43f6d1ace09d798822f8a41216cf7c37335911","unresolved":false,"context_lines":[{"line_number":552,"context_line":"  alias \u003d { \"device_type\": \"type-VF\", \"resource_class\": \"CUSTOM_A16_8A\", \"name\": \"A16_8A\" }"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"Configuring NVIDIA vGPU with SR-IOV and variant drivers"},{"line_number":556,"context_line":"-------------------------------------------------------"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"Starting with certain hypervisor releases (RHEL 10, Ubuntu 24.04) and NVIDIA"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7b62fafd_4cb472dc","line":555,"in_reply_to":"db8a70b5_5fbf35e0","updated":"2026-08-12 12:36:52.000000000","message":"Done","commit_id":"3fd06d52e1ad99fa9daca862f4d1d561d6984939"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3b7286349cfcfc8c8db584febdfbf0249f139aae","unresolved":true,"context_lines":[{"line_number":552,"context_line":"  alias \u003d { \"device_type\": \"type-VF\", \"resource_class\": \"CUSTOM_A16_8A\", \"name\": \"A16_8A\" }"},{"line_number":553,"context_line":""},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"Configuring NVIDIA vGPU with SR-IOV and variant drivers"},{"line_number":556,"context_line":"-------------------------------------------------------"},{"line_number":557,"context_line":""},{"line_number":558,"context_line":"Starting with certain hypervisor releases (RHEL 10, Ubuntu 24.04) and NVIDIA"}],"source_content_type":"text/x-rst","patch_set":2,"id":"db8a70b5_5fbf35e0","line":555,"in_reply_to":"f57de79e_67a063be","updated":"2026-07-06 11:59:16.000000000","message":"so this does not stricly require MIG in fact the card i was testing with (l4)\nstrictly speakign does not support MIG it just nolonger uses mdevs for vgpus.\n\nwith that said to nova mig vs non mig basiclly looks the same in this case.\n\nso the answer your qustion the recommended way to do this is to pre partion your gpu\n\nand create the relevent mdev or mig instnaces using something like these systemd unit files.\n\nonce you have done that then the next step is to add the mig VFs to your nova config\n\nif you are using an older card or kernel you will do that via mdevs usign the generic mdev feature in which case each mig type shoudl be mapped to a different resouce class \n\nyou do that by  defining enabled_mdev_types\n```\n[devices]\nenabled_mdev_types \u003d nvidia-35, nvidia-36\n\n[mdev_nvidia-35]\ndevice_addresses \u003d 0000:84:00.0,0000:85:00.0\nmdev_class \u003d CUSTOM_MIG_SMALL\n\n[vgpu_nvidia-36]\ndevice_addresses \u003d 0000:86:00.0\nmdev_class \u003d CUSTOM_MIG_LARGE\n```\n\nthe same is true when uyour using the more modern way described here\n\n```\n  device_spec \u003d { \"address\": {\"domain\": \"0000\", \"bus\": \"17\", \"slot\": \"00\", \"function\": \"[4-7]\"}, \"managed\": \"no\", \"resource_class\": \"CUSTOM_MIG_SMALL\"}\n  device_spec \u003d { \"address\": {\"domain\": \"0000\", \"bus\": \"17\", \"slot\": \"01\", \"function\": \"[0-1]\"}, \"managed\": \"no\", \"resource_class\": \"CUSTOM_MIG_LARGE\" }\n  alias \u003d { \"resource_class\": CUSTOM_MIG_SMALL, \"device_type\": \"type-VF\", \"name\": \"mig-small\" }\n  alias \u003d { \"resource_class\": CUSTOM_MIG_LARGE, \"device_type\": \"type-VF\", \"name\": \"mig-large\" }\n```\n\none quirk with mig or vgpus si that the pci vendor id and product id does nto chage regradless of the mig/mdev/vgpu type that is configured. as a result we instead rely on using the custom resouce classes to match in the flavor/alias\n\nthink fo the resource_class as an opaque lable, while there are some rule about it format you can use it to declar the vgpus that supprot a give vgpu type by there adress and hav them advertised as a pool to placment, then you can create alias or flavor that use that opacue resource_class to request them and nova will schdule the vm to a host with a free vgpu of the correct type.\n\nif your gpu supprot multiple mig type at the same time or you have confiugred diffent card with diffent vgpu types on the same or diffent host this still works because you are annotating the cards based on there pci adress. if you have specifed the adress the vendor id and product id are entilry optional.\n\nand when you use pci in placmeent the alias can just use a resouce class\n\ni should proably add some addtional examples to ilistrate this","commit_id":"3fd06d52e1ad99fa9daca862f4d1d561d6984939"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"02101b1b411b5ccf23fef11ecfabfa649f0b4c8c","unresolved":true,"context_lines":[{"line_number":810,"context_line":"from the correct address pool. Ensure every address in a pool has the vGPU"},{"line_number":811,"context_line":"type represented by that pool\u0027s resource class."},{"line_number":812,"context_line":""},{"line_number":813,"context_line":"This technique is not specific to MIG. It applies to any variant-driver vGPU"},{"line_number":814,"context_line":"VFs that share PCI IDs, including MIG profiles when the hardware and driver"},{"line_number":815,"context_line":"expose them through this VF model. For GPUs that expose profiles through the"},{"line_number":816,"context_line":"legacy mdev interface, use the configuration described in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d0f3e77d_ee9018f0","line":813,"range":{"start_line":813,"start_character":34,"end_line":813,"end_character":37},"updated":"2026-08-22 13:22:56.000000000","message":"This is the first mention of MIG in the doc. You probably need to explain it first.","commit_id":"078fad7a486798efe1f1035ff3b389de45f9e379"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"808eeb0acc1f1cc5a99c0fff40c6d164ebf1714e","unresolved":true,"context_lines":[{"line_number":810,"context_line":"from the correct address pool. Ensure every address in a pool has the vGPU"},{"line_number":811,"context_line":"type represented by that pool\u0027s resource class."},{"line_number":812,"context_line":""},{"line_number":813,"context_line":"This technique is not specific to MIG. It applies to any variant-driver vGPU"},{"line_number":814,"context_line":"VFs that share PCI IDs, including MIG profiles when the hardware and driver"},{"line_number":815,"context_line":"expose them through this VF model. For GPUs that expose profiles through the"},{"line_number":816,"context_line":"legacy mdev interface, use the configuration described in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c5c64897_9ecd7f9e","line":813,"range":{"start_line":813,"start_character":34,"end_line":813,"end_character":37},"in_reply_to":"d0f3e77d_ee9018f0","updated":"2026-08-24 12:23:09.000000000","message":"ack thats fair ill update it to something like `Multi instace GPU (MIG) partations`. and i can add a short sents explain that MIG partioning is a hardware enforeced multi tenancy feature of some nvida gpus allowing non uniform subdivision of the GPU.","commit_id":"078fad7a486798efe1f1035ff3b389de45f9e379"}]}
