)]}'
{"id":"openstack%2Fnova~994160","triplet_id":"openstack%2Fnova~master~Ibe5e3784f55058a66e34db9a5edcfa1dcf6e5203","project":"openstack/nova","branch":"master","topic":"bp/support-vfio-variant-driver-managed-mode-via-cyborg","attention_set":{"30523":{"account":{"_account_id":30523,"name":"Dincer Celik","email":"hello@dincercelik.com","username":"osmanlicilegi"},"last_update":"2026-07-06 11:59:16.000000000","reason":"\u003cGERRIT_ACCOUNT_11604\u003e replied on the change","reason_account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}}},"removed_from_attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-07-06 11:59:16.000000000","reason":"\u003cGERRIT_ACCOUNT_11604\u003e replied on the change","reason_account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}}},"hashtags":[],"change_id":"Ibe5e3784f55058a66e34db9a5edcfa1dcf6e5203","subject":"doc: Add guide for NVIDIA vGPU with SR-IOV variant drivers","status":"NEW","created":"2026-06-19 19:48:37.000000000","updated":"2026-07-06 11:59:16.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":2,"unresolved_comment_count":1,"has_review_started":true,"meta_rev_id":"3b7286349cfcfc8c8db584febdfbf0249f139aae","_number":994160,"virtual_id_number":994160,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-06-24 01:52:57.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":30523,"name":"Dincer Celik","email":"hello@dincercelik.com","username":"osmanlicilegi"},{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"}],"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-19 20:03:02.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-06-19 20:03:08.000000000","updated_by":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"reviewer":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"state":"CC"},{"updated":"2026-06-19 20:51:50.000000000","updated_by":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-07-04 08:06:41.000000000","updated_by":{"_account_id":30523,"name":"Dincer Celik","email":"hello@dincercelik.com","username":"osmanlicilegi"},"reviewer":{"_account_id":30523,"name":"Dincer Celik","email":"hello@dincercelik.com","username":"osmanlicilegi"},"state":"CC"}],"messages":[{"id":"022c99b20a6f1335fbf26691abc8743ed21977ea","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-19 19:48:37.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"28f3f23a3683ef2d145a52fe2ad139f283639450","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-19 20:03:02.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4840c0c42d324754911d975b0da5a800\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dff818665a794fe28f7b73a517e01958 : SUCCESS in 5m 42s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a19ce01ef44f44b389ff13a31d807f41 : SUCCESS in 12m 47s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/c8d3e3c175a9428287d87ebb7dd60e33 : SUCCESS in 4m 35s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/fb90c9b96b35498c928799e04d6fe9d1 : SUCCESS in 6m 21s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"e44918dedc920c571340922794baf17d7974c731","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-06-19 20:13:47.000000000","message":"Patch Set 1:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":1},{"id":"63058c5310ee0bd401e0b65beca3ab7a9ec045a1","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-06-19 20:51:50.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/Ibe5e3784f55058a66e34db9a5edcfa1dcf6e5203 .","accounts_in_message":[],"_revision_number":1},{"id":"4bb7756416407aaef1a293984c25cf224c159719","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-24 01:38:37.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"08fd9038afe2993a076fe09176c41bdd2ba83b5b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-24 01:52:57.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2108e684fc0b4beba03da20820117766\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/460071cc0c0d4fdea30c32dec0ff5d38 : SUCCESS in 8m 25s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e736f26411e84397b035d41167069e88 : SUCCESS in 8m 20s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/86ca59c3af694f179f86c96dda5b171e : SUCCESS in 9m 14s\n- nova-tox-validate-backport https://zuul.opendev.org/t/openstack/build/58b5e0a9a6d1433da30a1bd4d71221b9 : SUCCESS in 3m 10s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"47adff4330c8f3cc6d8af6bc376bedc81bb16cad","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":34420,"name":"openstack lightbits","display_name":"Lightbits CI","email":"openstack@lightbitslabs.com","username":"openstack_lightbits"},"date":"2026-06-24 02:04:41.000000000","message":"Patch Set 2:\n\nBuild succeeded. log path: ${LOG_PATH}\nLeave a comment with","accounts_in_message":[],"_revision_number":2},{"id":"b2c56dac074779efa37158f2a8dd6208f17fb078","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2026-06-24 02:39:03.000000000","message":"Patch Set 2:\n\nBuild Successful \n\n* quobyteci:  nova_quobyteci : SUCCESS, logs at: https://oscilogs.quobyte.com/logs/Ibe5e3784f55058a66e34db9a5edcfa1dcf6e5203 .","accounts_in_message":[],"_revision_number":2},{"id":"b2f7549d8030028c2356043972c5988e322197d2","author":{"_account_id":30523,"name":"Dincer Celik","email":"hello@dincercelik.com","username":"osmanlicilegi"},"date":"2026-07-04 10:38:52.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"3b7286349cfcfc8c8db584febdfbf0249f139aae","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-06 11:59:16.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"3fd06d52e1ad99fa9daca862f4d1d561d6984939","revisions":{"2b80d165370d6a5639f461822d1145b2504c1f90":{"kind":"REWORK","_number":1,"created":"2026-06-19 19:48:37.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/60/994160/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/60/994160/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/60/994160/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/60/994160/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/60/994160/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/60/994160/1"}}},"commit":{"parents":[{"commit":"d5b82e107e46a8e29483c22f9713335f2e028939","subject":"Merge \"Restore \u0027fork\u0027 start method for daemon mode on Python 3.14\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/d5b82e107e46a8e29483c22f9713335f2e028939"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-19 19:48:01.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-19 19:48:01.000000000","tz":0},"subject":"doc: Add guide for NVIDIA vGPU with SR-IOV variant drivers","message":"doc: Add guide for NVIDIA vGPU with SR-IOV variant drivers\n\nStarting with RHEL 10, Ubuntu 24.04 and recent NVIDIA vGPU driver\nreleases, NVIDIA GPUs that support SR-IOV (Ampere, Ada Lovelace and\nnewer architectures) use a vendor-specific VFIO variant driver instead\nof the legacy mediated device (mdev) interface. Each Virtual Function\non the physical GPU acts as a self-contained vGPU device bound to the\nnvidia kernel driver rather than vfio-pci.\n\nThis change adds a new section to the PCI passthrough admin guide\ncovering the end-to-end configuration for this deployment model:\n\n- Prerequisites: IOMMU, vGPU host driver, SR-IOV VF enablement\n- Configuring vGPU types on VFs via sysfs current_vgpu_type\n- systemd template units to automate both SR-IOV VF enablement and\n  vGPU type assignment at boot\n- Nova device_spec configuration using address regex to expose only\n  configured VFs with managed\u003dno\n- Controller-side alias and PciPassthroughFilter/pci_in_placement\n  scheduler configuration\n- Flavor creation and instance launch workflow\n\nThe key operational requirement is that each VF must have a vGPU type\nassigned via sysfs before it can be opened by QEMU, and Nova\u0027s\ndevice_spec must only expose VFs that have been configured. Exposing\nunconfigured VFs causes QEMU to fail at launch time with \u0027error\ngetting device from group: No such device\u0027.\n\nAssisted-By: pi opus 4.6\nChange-Id: Ibe5e3784f55058a66e34db9a5edcfa1dcf6e5203\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2b80d165370d6a5639f461822d1145b2504c1f90"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/2b80d165370d6a5639f461822d1145b2504c1f90"}]},"branch":"refs/heads/master"},"3fd06d52e1ad99fa9daca862f4d1d561d6984939":{"kind":"REWORK","_number":2,"created":"2026-06-24 01:38:37.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/60/994160/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/60/994160/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/60/994160/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/60/994160/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/60/994160/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/60/994160/2"}}},"commit":{"parents":[{"commit":"d5b82e107e46a8e29483c22f9713335f2e028939","subject":"Merge \"Restore \u0027fork\u0027 start method for daemon mode on Python 3.14\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/d5b82e107e46a8e29483c22f9713335f2e028939"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-19 19:48:01.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-06-24 01:30:30.000000000","tz":0},"subject":"doc: Add guide for NVIDIA vGPU with SR-IOV variant drivers","message":"doc: Add guide for NVIDIA vGPU with SR-IOV variant drivers\n\nStarting with RHEL 10, Ubuntu 24.04 and recent NVIDIA vGPU driver\nreleases, NVIDIA GPUs that support SR-IOV (Ampere, Ada Lovelace and\nnewer architectures) use a vendor-specific VFIO variant driver instead\nof the legacy mediated device (mdev) interface. Each Virtual Function\non the physical GPU acts as a self-contained vGPU device bound to the\nnvidia kernel driver rather than vfio-pci.\n\nThis change adds a new section to the PCI passthrough admin guide\ncovering the end-to-end configuration for this deployment model:\n\n- Prerequisites: IOMMU, vGPU host driver, SR-IOV VF enablement\n- Configuring vGPU types on VFs via sysfs current_vgpu_type\n- systemd template units to automate both SR-IOV VF enablement and\n  vGPU type assignment at boot\n- Nova device_spec configuration using address regex to expose only\n  configured VFs with managed\u003dno\n- Controller-side alias and PciPassthroughFilter/pci_in_placement\n  scheduler configuration\n- Flavor creation and instance launch workflow\n\nThe key operational requirement is that each VF must have a vGPU type\nassigned via sysfs before it can be opened by QEMU, and Nova\u0027s\ndevice_spec must only expose VFs that have been configured. Exposing\nunconfigured VFs causes QEMU to fail at launch time with \u0027error\ngetting device from group: No such device\u0027.\n\nAssisted-By: pi opus 4.6\nChange-Id: Ibe5e3784f55058a66e34db9a5edcfa1dcf6e5203\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/3fd06d52e1ad99fa9daca862f4d1d561d6984939"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/3fd06d52e1ad99fa9daca862f4d1d561d6984939"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
