)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"bc2428cd66c390daa72775b55891b13052c0b644","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     7f137a06 (Move 2026.2 RBAC spec to implemented)"},{"line_number":2,"context_line":"Author:     jgilaber \u003cjgilaber@redhat.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-09-10 17:20:00 +0200"},{"line_number":4,"context_line":"Commit:     jgilaber \u003cjgilaber@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"b90a371e_b71cf1e6","line":1,"updated":"2026-09-10 15:30:11.000000000","message":"The commit subject states the spec is reproposed \u0027for 2026.2\u0027, but the only file added places the spec in specs/2027.1/approved/. The 2026.2 cycle has closed; this patch proposes the spec for the 2027.1 cycle, so the subject is technically inaccurate in the permanent change history.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Future readers searching git history for the 2027.1 proposal by release name will be misled; the Gerrit change title shown in the permanent log is factually wrong about the target cycle.\n\n**Suggestion**:\nAmend the subject to \u0027Repropose generic mdev driver spec for 2027.1\u0027 (keeping the body\u0027s reference to the 2026.2 GPU driver, which is correct).","commit_id":"9c9f22f21f40faadbd2afaaedabd2d90055d864c"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"7952e10f873b12407b3d0a4e5dfdf08f51f53e05","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2026-09-10 17:21:00 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Repropose generic mdev driver spec for 2026.2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Repropose a generic mediated device (mdev) driver for Cyborg"},{"line_number":10,"context_line":"that supports any mdev-capable device, along with a Mdev Bus Manager"},{"line_number":11,"context_line":"class to reduce code duplication with the existing GPU driver from the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"abc59544_395e824e","line":8,"updated":"2026-09-15 11:55:46.000000000","message":"Based on the patterns from nova-specs for reproposed specs\nhttps://github.com/openstack/nova-specs/blob/c4e4a56535d69ab626c3a995707f17fab07d6d75/README.rst#previously-approved-specifications and https://review.opendev.org/c/openstack/nova-specs/+/917133\n\nHere we can also add:\n```\nPreviously-approved: 2026.2\n```\nIt would be good add the 2026.2 approved spec link for reference here: https://review.opendev.org/c/openstack/cyborg-specs/+/982276","commit_id":"9c9f22f21f40faadbd2afaaedabd2d90055d864c"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"cbb5123fe265ce770c04d45c8f0f250fed662da5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2026-09-10 17:21:00 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Repropose generic mdev driver spec for 2026.2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Repropose a generic mediated device (mdev) driver for Cyborg"},{"line_number":10,"context_line":"that supports any mdev-capable device, along with a Mdev Bus Manager"},{"line_number":11,"context_line":"class to reduce code duplication with the existing GPU driver from the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ea2801e4_71406464","line":8,"in_reply_to":"a2f9d91d_bdb990bd","updated":"2026-09-18 11:47:40.000000000","message":"Done","commit_id":"9c9f22f21f40faadbd2afaaedabd2d90055d864c"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"87615ee052b79ac506876698e22b25aa3736ff40","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2026-09-10 17:21:00 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Repropose generic mdev driver spec for 2026.2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Repropose a generic mediated device (mdev) driver for Cyborg"},{"line_number":10,"context_line":"that supports any mdev-capable device, along with a Mdev Bus Manager"},{"line_number":11,"context_line":"class to reduce code duplication with the existing GPU driver from the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"a2f9d91d_bdb990bd","line":8,"in_reply_to":"abc59544_395e824e","updated":"2026-09-15 13:02:43.000000000","message":"thanks, done!","commit_id":"9c9f22f21f40faadbd2afaaedabd2d90055d864c"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"f541a36c75a606082545f38db20963d6d30056fb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     7f137a06 (Move 2026.2 RBAC spec to implemented)"},{"line_number":2,"context_line":"Author:     jgilaber \u003cjgilaber@redhat.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-09-10 17:20:00 +0200"},{"line_number":4,"context_line":"Commit:     jgilaber \u003cjgilaber@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bb6a0a0f_3051fc15","line":1,"updated":"2026-09-15 13:16:02.000000000","message":"The commit subject \u0027Repropose generic mdev driver spec for 2026.2\u0027 reads as if the spec were being (re)proposed for the 2026.2 release. The change actually carries the previously-approved 2026.2 spec forward into the 2027.1 cycle: the file is added at specs/2027.1/approved/generic-mdev-driver.rst and the spec\u0027s History table added by this commit records \u00272026.2 Accepted / 2027.1 Reproposed\u0027, with the body footer \u0027Previously-approved: 2026.2\u0027. The subject therefore names the stale release as if it were the target of the repropose.\n\n**Severity**: WARNING | **Confidence**: 0.85\n\n**Impact**: The permanent git and Gerrit history for this change states that the spec targets 2026.2, so release-scoped tracking (querying 2027.1 spec work, or auditing what landed for 2026.2) will misclassify this change, and readers must open the diff to learn the actual target cycle.\n\n**Suggestion**:\nAmend the subject to name the real target, e.g. \u0027Repropose generic mdev driver spec for 2027.1\u0027, or drop the release qualifier to match prior repropose commits; keep the \u0027Previously-approved: 2026.2\u0027 footer to record the original approval.","commit_id":"e6ed944775c615e5ad3d6f75e7569bb12c0c7bc0"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"2b83e07ab76de97ae6c10d452981a9e2a7ea9053","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     7f137a06 (Move 2026.2 RBAC spec to implemented)"},{"line_number":2,"context_line":"Author:     jgilaber \u003cjgilaber@redhat.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-09-10 17:20:00 +0200"},{"line_number":4,"context_line":"Commit:     jgilaber \u003cjgilaber@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"0f0d3f80_662b1847","line":1,"updated":"2026-09-15 13:36:39.000000000","message":"The head commit body opens with \u0027Repropose the spec fora generic mediated device (mdev) driver\u0027, joining \u0027for a\u0027 into \u0027fora\u0027. The same message reads \u0027along with a Mdev Bus Manager class\u0027, which would conventionally be \u0027an Mdev Bus Manager\u0027 since \u0027Mdev\u0027 is pronounced starting with a vowel sound. These are permanent prose defects in the change history that no code linter will catch.\n\n**Severity**: SUGGESTION | **Confidence**: 0.95\n\n**Impact**: The typo is preserved in the merged change history and in Gerrit/Zuul records; a minor but visible quality defect in the permanent documentation of the change.\n\n**Recommendation**:\nWhile the commit is unmerged, amend the commit message to \u0027for a generic mediated device\u0027 (and optionally \u0027an Mdev Bus Manager\u0027).","commit_id":"588f2ba96e7e60db7ae480e86a407669c9bfc863"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"ff929600508bc8ee2744916a2f6527d50de14315","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c7ed16c0_745b6786","updated":"2026-09-18 12:17:19.000000000","message":"lgtm!","commit_id":"f58aa7bf16a8b96bee74b80498c991ef6c191750"}],"specs/2027.1/approved/generic-mdev-driver.rst":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"bc2428cd66c390daa72775b55891b13052c0b644","unresolved":false,"context_lines":[{"line_number":337,"context_line":"  (e.g. ``nvidia-319``)."},{"line_number":338,"context_line":"* ``max_instances`` *(optional)* -- maximum number of mdev"},{"line_number":339,"context_line":"  instances the driver may report for this parent/type"},{"line_number":340,"context_line":"  combination.  Defaults value is `None`, which means that the value advertised"},{"line_number":341,"context_line":"  by the kernel in ``available_instances`` will be used (no limit is placed)."},{"line_number":342,"context_line":"* ``resource_class`` *(optional)* -- custom Placement resource"},{"line_number":343,"context_line":"  class.  Defaults to ``None``, which means that the standard"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d98855ba_f4010dc2","line":340,"updated":"2026-09-10 15:30:11.000000000","message":"The copied text contains several small defects: \u0027Defaults value is `None`\u0027 (should be \u0027Default value is ``None``\u0027; single backticks are hyperlink syntax in RST and will not render as literal text), \u0027cyborg owned devices\u0027 (should be \u0027cyborg-owned\u0027), and \u0027mdev device profile(accel:\u0027 missing a space before the parenthesis.\n\n**Severity**: SUGGESTION | **Confidence**: 0.85\n\n**Impact**: Single-backtick \u0027None\u0027 renders incorrectly in the published spec docs (as a dangling hyperlink target) instead of literal code; the other typos slightly reduce polish of the rendered documentation.\n\n**Recommendation**:\nIn the Configuration and Upgrade impact sections, change \u0027Defaults value is `None`\u0027 to \u0027Default value is ``None``\u0027, hyphenate \u0027cyborg-owned\u0027, and add a space before \u0027(accel:\u0027.","commit_id":"9c9f22f21f40faadbd2afaaedabd2d90055d864c"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"bc2428cd66c390daa72775b55891b13052c0b644","unresolved":false,"context_lines":[{"line_number":554,"context_line":".. list-table:: Revisions"},{"line_number":555,"context_line":"   :header-rows: 1"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"   * - Release Name"},{"line_number":558,"context_line":"     - Description"},{"line_number":559,"context_line":"   * - 2026.2"},{"line_number":560,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":1,"id":"51873188_9bd7ad8a","line":557,"updated":"2026-09-10 15:30:11.000000000","message":"The spec is a byte-identical copy of specs/2026.2/approved/generic-mdev-driver.rst, and its History table still lists only \u00272026.2 / Introduced\u0027. The repo\u0027s established convention for reproposed specs is to append a \u0027\u003cnew release\u003e / Reproposed\u0027 row, and the template says the History section is used each time a spec is updated.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: Readers browsing specs/2027.1 cannot tell from the document that it is a re-approval carried over from 2026.2 rather than a newly designed feature, breaking the repo\u0027s documented per-release tracking purpose.\n\n**Suggestion**:\nAdd a row \u0027* - 2027.1\u0027 / \u0027- Reproposed\u0027 to the Revisions list-table (optionally noting it was not implemented in 2026.2), matching the disable-enable-device precedents.","commit_id":"9c9f22f21f40faadbd2afaaedabd2d90055d864c"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"7952e10f873b12407b3d0a4e5dfdf08f51f53e05","unresolved":true,"context_lines":[{"line_number":556,"context_line":""},{"line_number":557,"context_line":"   * - Release Name"},{"line_number":558,"context_line":"     - Description"},{"line_number":559,"context_line":"   * - 2026.2"},{"line_number":560,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ae10f865_7ce69c3b","line":560,"range":{"start_line":559,"start_character":1,"end_line":560,"end_character":17},"updated":"2026-09-15 11:55:46.000000000","message":"Based on https://review.opendev.org/c/openstack/nova-specs/+/917133/1/specs/2024.2/approved/assisted-volume-extend.rst\n```suggestion\n   * - 2026.2\n     - Accepted\n   * - 2027.1\n     - Reproposed\n```","commit_id":"9c9f22f21f40faadbd2afaaedabd2d90055d864c"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"87615ee052b79ac506876698e22b25aa3736ff40","unresolved":false,"context_lines":[{"line_number":556,"context_line":""},{"line_number":557,"context_line":"   * - Release Name"},{"line_number":558,"context_line":"     - Description"},{"line_number":559,"context_line":"   * - 2026.2"},{"line_number":560,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f4bfbb4_f93cf674","line":560,"range":{"start_line":559,"start_character":1,"end_line":560,"end_character":17},"in_reply_to":"ae10f865_7ce69c3b","updated":"2026-09-15 13:02:43.000000000","message":"Done","commit_id":"9c9f22f21f40faadbd2afaaedabd2d90055d864c"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"2b83e07ab76de97ae6c10d452981a9e2a7ea9053","unresolved":false,"context_lines":[{"line_number":145,"context_line":"``CUSTOM_MDEV_\u003cTYPE_NAME\u003e``.  The type name is normalized by"},{"line_number":146,"context_line":"converting hyphens to underscores and uppercasing all alphabetic"},{"line_number":147,"context_line":"characters to produce a valid Placement custom resource class"},{"line_number":148,"context_line":"name. There exists functions to do this normalization in the os-traits and"},{"line_number":149,"context_line":"os-resource-classes libraries that will be used for this purpose. As an"},{"line_number":150,"context_line":"example, a type named ``mtty-2`` produces the resource class"},{"line_number":151,"context_line":"``CUSTOM_MDEV_MTTY_2``.  This allows operators to write device profiles"}],"source_content_type":"text/x-rst","patch_set":3,"id":"276d6db3_60f09201","line":148,"updated":"2026-09-15 13:36:39.000000000","message":"Two clear grammar defects appear in the added spec text. Lines 148-149 read \u0027There exists functions to do this normalization\u0027, which should be \u0027There exist functions\u0027 (or \u0027The os-traits and os-resource-classes libraries provide functions ...\u0027). Lines 52-54 read \u0027The proposed driver will not handle creation nor deletion of mdevs, instead will delegate that to Nova\u0027, a comma splice missing a conjunction, e.g. \u0027and will instead delegate that to Nova\u0027. Both sentences remain understandable, so this is a minor polish item for a permanently stored spec.\n\n**Severity**: SUGGESTION | **Confidence**: 0.85\n\n**Impact**: Minor readability defect in permanent spec documentation; the meaning survives but the sentences are ungrammatical.\n\n**Recommendation**:\nReword to \u0027There exist functions to do this normalization in the os-traits and os-resource-classes libraries\u0027 and \u0027will not handle creation nor deletion of mdevs and will instead delegate that to Nova\u0027.","commit_id":"588f2ba96e7e60db7ae480e86a407669c9bfc863"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"2b83e07ab76de97ae6c10d452981a9e2a7ea9053","unresolved":false,"context_lines":[{"line_number":454,"context_line":""},{"line_number":455,"context_line":"4. Restart the cyborg-agent service."},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"Deployers who are already using the NVIDIA GPU driver for vGPU"},{"line_number":458,"context_line":"management do not need to change anything. The GPU driver continues"},{"line_number":459,"context_line":"to function identically after the internal refactoring."},{"line_number":460,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"f43319e2_a49600a0","line":457,"updated":"2026-09-15 13:36:39.000000000","message":"The \u0027Other deployer impact\u0027 section states deployers using the NVIDIA GPU driver \u0027do not need to change anything\u0027 and that \u0027The GPU driver continues to function identically after the internal refactoring.\u0027 The same spec, however, removes the GPU driver\u0027s mdev create/delete methods and delegates that completely to Nova (lines 209-211), and the \u0027Upgrade impact\u0027 section requires a Nova version implementing the companion nova-spec and states there is no migration path for cyborg-owned devices (lines 473-481). The upgrade-impact Nova requirement is also scoped only to \u0027devices discovered by the new generic mdev driver\u0027, although removing creation from the GPU driver makes the new Nova equally required for existing NVIDIA vGPU provisioning. With mdev creation removed from the driver, existing vGPU workflows cannot function identically without the new Nova.\n\n**Severity**: WARNING | **Confidence**: 0.85\n\n**Impact**: Reviewers and deployers reading the deployer-impact section will conclude the upgrade is transparent for existing NVIDIA vGPU deployments, while the same spec requires a Nova upgrade and documents no migration path for cyborg-owned mdev devices. As an approved spec, it misstates the operator-facing upgrade contract that implementations will follow.\n\n**Suggestion**:\nAlign the \u0027Other deployer impact\u0027 paragraph with the \u0027Upgrade impact\u0027 section: state that existing NVIDIA vGPU deployers need a Nova version implementing the companion spec, scope the \u0027continues to function identically\u0027 claim to discovery/reporting (not mdev creation), and mention the no-migration-path consequence for cyborg-owned devices.","commit_id":"588f2ba96e7e60db7ae480e86a407669c9bfc863"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"aa0c28ad2b173d60840f25cdd22c56e90a27d368","unresolved":false,"context_lines":[{"line_number":298,"context_line":"      |                       |   | discover()      |                     |"},{"line_number":299,"context_line":"      |                       |   |----------------\u003e|                     |"},{"line_number":300,"context_line":"      |                       |   |                 |                     |"},{"line_number":301,"context_line":"      |                       |   |                 | discover() / scan() |"},{"line_number":302,"context_line":"      |                       |   |                 |--------------------\u003e|"},{"line_number":303,"context_line":"      |                       |   |                 |                     | -- Scans sysfs/bus"},{"line_number":304,"context_line":"      |                       |   |                 |                     |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e18e2dd4_65205449","line":301,"updated":"2026-09-15 14:03:30.000000000","message":"The end-to-end discovery sequence diagram labels the call from the accelerator driver into MdevBusManager as \u0027discover() / scan()\u0027 and shows a single call returning \u0027raw_device_data\u0027. The normative MdevBusManager API defined in the same spec exposes discover_parent_devices(pci_filter) and get_mdev_types(pci_address, type_filter), and the proposed-change section describes a two-step flow: discover_parent_devices() once per host, then get_mdev_types() per parent. Neither discover() nor scan() is defined on MdevBusManager; discover() is the driver\u0027s own method, so the diagram attributes the driver\u0027s method to the manager and omits get_mdev_types() entirely.\n\n**Severity**: SUGGESTION | **Confidence**: 0.85\n\n**Impact**: An implementer following the flow diagram may look for a single scan()-style entry point or assume MdevBusManager.discover() exists, producing code or review feedback that diverges from the normative two-method API the rest of the spec mandates.\n\n**Recommendation**:\nUpdate the diagram labels to the defined calls, showing discover_parent_devices() followed by get_mdev_types() per parent device, and rename the raw_device_data return arrow to match the dictionaries those methods return.","commit_id":"1168c7f68f632282f918ddc7c4cf3fdefc60ed59"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"0b2d50ee35fc66816f21c76a5e2456ccebc53fd7","unresolved":true,"context_lines":[{"line_number":298,"context_line":"      |                       |   | discover()      |                     |"},{"line_number":299,"context_line":"      |                       |   |----------------\u003e|                     |"},{"line_number":300,"context_line":"      |                       |   |                 |                     |"},{"line_number":301,"context_line":"      |                       |   |                 | discover() / scan() |"},{"line_number":302,"context_line":"      |                       |   |                 |--------------------\u003e|"},{"line_number":303,"context_line":"      |                       |   |                 |                     | -- Scans sysfs/bus"},{"line_number":304,"context_line":"      |                       |   |                 |                     |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"abcb7a68_f7cb0e32","line":301,"in_reply_to":"37bbc882_03f2bbeb","updated":"2026-09-18 11:47:33.000000000","message":"that\u0027s a good point, we already merged the patch introducing the bus manager, but we can make the switch in the patch that introduces the driver, since it\u0027s not consumed anywhere yet","commit_id":"1168c7f68f632282f918ddc7c4cf3fdefc60ed59"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a0c3374f6ed60335dce13c6c1bfeacf651c17819","unresolved":true,"context_lines":[{"line_number":298,"context_line":"      |                       |   | discover()      |                     |"},{"line_number":299,"context_line":"      |                       |   |----------------\u003e|                     |"},{"line_number":300,"context_line":"      |                       |   |                 |                     |"},{"line_number":301,"context_line":"      |                       |   |                 | discover() / scan() |"},{"line_number":302,"context_line":"      |                       |   |                 |--------------------\u003e|"},{"line_number":303,"context_line":"      |                       |   |                 |                     | -- Scans sysfs/bus"},{"line_number":304,"context_line":"      |                       |   |                 |                     |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"37bbc882_03f2bbeb","line":301,"in_reply_to":"e18e2dd4_65205449","updated":"2026-09-17 18:35:24.000000000","message":"the canonical name of the method at the driver level is discover\n\nthat should be carried to the managers too. lets avoid intoducing the term scan\n\n discover_parent_devices()  shoudl be na internal method of the mdev manager not somthign called by the drivers ideally.","commit_id":"1168c7f68f632282f918ddc7c4cf3fdefc60ed59"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"aa0c28ad2b173d60840f25cdd22c56e90a27d368","unresolved":false,"context_lines":[{"line_number":349,"context_line":"Example ``cyborg.conf`` snippet::"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    [mdev]"},{"line_number":352,"context_line":"    device_spec \u003d { \"address\": \"0000:41:00.0\", \"mdev_type\": \"nvidia-319\", \"max_instances\": 8, \"resource_class\": \"VGPU\", \"traits\": [\"CUSTOM_NVIDIA_V100\", \"VULKAN\"] },"},{"line_number":353,"context_line":"    device_spec \u003d { \"address\": \"0000:42:00.0\", \"mdev_type\": \"i915-GVTg_V5_4\" }"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"The new driver will be enabled via the existing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"6a1f2bdf_2b46b18c","line":352,"updated":"2026-09-15 14:03:30.000000000","message":"The example cyborg.conf snippet ends the first device_spec value with a trailing comma after the JSON object. In INI syntax each \u0027device_spec \u003d ...\u0027 line is one complete value, so the value handed to the JSON parser would be \u0027{ ... },\u0027 which json.loads rejects as extra data. The same entry sets \"traits\": [\"CUSTOM_NVIDIA_V100\", \"VULKAN\"], but bare \u0027VULKAN\u0027 is not a valid Placement trait name: custom traits must carry the CUSTOM_ prefix and the standard Vulkan trait is HW_GPU_API_VULKAN, exactly as the spec\u0027s own traits field description four lines earlier shows.\n\n**Severity**: WARNING | **Confidence**: 0.88\n\n**Impact**: A deployer copying the example verbatim gets a device_spec value that fails JSON parsing when cyborg-agent loads its configuration, and a trait name Placement would reject. Implementers may also mirror the flawed format in option validation, tests, or admin documentation.\n\n**Suggestion**:\nDrop the trailing comma from the first device_spec line and replace \"VULKAN\" with a valid trait such as \"HW_GPU_API_VULKAN\" or a CUSTOM_-prefixed trait, matching the field description above the example.","commit_id":"1168c7f68f632282f918ddc7c4cf3fdefc60ed59"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"0b2d50ee35fc66816f21c76a5e2456ccebc53fd7","unresolved":false,"context_lines":[{"line_number":349,"context_line":"Example ``cyborg.conf`` snippet::"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    [mdev]"},{"line_number":352,"context_line":"    device_spec \u003d { \"address\": \"0000:41:00.0\", \"mdev_type\": \"nvidia-319\", \"max_instances\": 8, \"resource_class\": \"VGPU\", \"traits\": [\"CUSTOM_NVIDIA_V100\", \"VULKAN\"] },"},{"line_number":353,"context_line":"    device_spec \u003d { \"address\": \"0000:42:00.0\", \"mdev_type\": \"i915-GVTg_V5_4\" }"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"The new driver will be enabled via the existing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"4dc3c946_fb14289a","line":352,"in_reply_to":"0c71581d_a6c4da60","updated":"2026-09-18 11:47:33.000000000","message":"fixed","commit_id":"1168c7f68f632282f918ddc7c4cf3fdefc60ed59"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a0c3374f6ed60335dce13c6c1bfeacf651c17819","unresolved":true,"context_lines":[{"line_number":349,"context_line":"Example ``cyborg.conf`` snippet::"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"    [mdev]"},{"line_number":352,"context_line":"    device_spec \u003d { \"address\": \"0000:41:00.0\", \"mdev_type\": \"nvidia-319\", \"max_instances\": 8, \"resource_class\": \"VGPU\", \"traits\": [\"CUSTOM_NVIDIA_V100\", \"VULKAN\"] },"},{"line_number":353,"context_line":"    device_spec \u003d { \"address\": \"0000:42:00.0\", \"mdev_type\": \"i915-GVTg_V5_4\" }"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"The new driver will be enabled via the existing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0c71581d_a6c4da60","line":352,"in_reply_to":"6a1f2bdf_2b46b18c","updated":"2026-09-17 18:35:24.000000000","message":"so yes technially the `,` shoudl be remvoed at the end of hte line","commit_id":"1168c7f68f632282f918ddc7c4cf3fdefc60ed59"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a0c3374f6ed60335dce13c6c1bfeacf651c17819","unresolved":true,"context_lines":[{"line_number":464,"context_line":"create an instance of ``MdevBusManager`` from"},{"line_number":465,"context_line":"``cyborg.accelerator.handlers.mdev`` and use its"},{"line_number":466,"context_line":"``discover_parent_devices()`` and ``get_mdev_types()`` methods instead"},{"line_number":467,"context_line":"of implementing their own sysfs parsing."},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"Upgrade impact"},{"line_number":470,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b50c4db6_d17d25d6","line":467,"updated":"2026-09-17 18:35:24.000000000","message":"i dont know if we want ot add anything about the pci-sim work that is requried for the testing or if we will just capture that in the contibutor docs\n\nthat was one of the big pivots from the last spec\ninstead of using the mtty kernel module we are going to use the pci_sim with mtty vf personalities.","commit_id":"1168c7f68f632282f918ddc7c4cf3fdefc60ed59"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"0b2d50ee35fc66816f21c76a5e2456ccebc53fd7","unresolved":true,"context_lines":[{"line_number":464,"context_line":"create an instance of ``MdevBusManager`` from"},{"line_number":465,"context_line":"``cyborg.accelerator.handlers.mdev`` and use its"},{"line_number":466,"context_line":"``discover_parent_devices()`` and ``get_mdev_types()`` methods instead"},{"line_number":467,"context_line":"of implementing their own sysfs parsing."},{"line_number":468,"context_line":""},{"line_number":469,"context_line":"Upgrade impact"},{"line_number":470,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"17104dc8_480cf9d9","line":467,"in_reply_to":"b50c4db6_d17d25d6","updated":"2026-09-18 11:47:33.000000000","message":"I\u0027ve added a mention of it in the Testing section","commit_id":"1168c7f68f632282f918ddc7c4cf3fdefc60ed59"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"27127ceba016f38954c3967da609059c5259017f","unresolved":false,"context_lines":[{"line_number":220,"context_line":"directory for mdev bus discovery. This allows unit tests to point"},{"line_number":221,"context_line":"the handler at a fake sysfs tree without patching."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"The class exposes two public methods and an internal helpers:"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* ``discover(pci_filter\u003dNone, type_filter\u003dNone)`` -- The primary public"},{"line_number":226,"context_line":"  method.  Internally calls ``_discover_parent_devices()`` to enumerate"}],"source_content_type":"text/x-rst","patch_set":5,"id":"60035984_60480e20","line":223,"updated":"2026-09-18 13:24:02.000000000","message":"The class design introduction reads \"The class exposes two public methods and an internal helpers:\" where the article and noun number disagree. It should read \"an internal helper\" (singular, matching the single _discover_parent_devices() bullet) or \"and internal helpers\" if plural were intended. The intended meaning is recoverable from the bullet list that follows.\n\n**Severity**: SUGGESTION | **Confidence**: 0.95\n\n**Impact**: Minor readability defect in a document that becomes permanent, referenced project history; it slightly obscures how many helpers the class has.\n\n**Recommendation**:\nChange line 223 to \"The class exposes two public methods and an internal helper:\".","commit_id":"f58aa7bf16a8b96bee74b80498c991ef6c191750"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"27127ceba016f38954c3967da609059c5259017f","unresolved":false,"context_lines":[{"line_number":458,"context_line":""},{"line_number":459,"context_line":"4. Restart the cyborg-agent service."},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"Deployers who are already using the NVIDIA GPU driver for vGPU"},{"line_number":462,"context_line":"management do not need to change anything. The GPU driver continues"},{"line_number":463,"context_line":"to function identically after the internal refactoring."},{"line_number":464,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fd7de4cc_71f2c392","line":461,"updated":"2026-09-18 13:24:02.000000000","message":"\"Deployers who are already using the NVIDIA GPU driver for vGPU management do not need to change anything. The GPU driver continues to function identically after the internal refactoring.\" conflicts with the Proposed change section, which removes the GPU driver\u0027s mdev creation/deletion methods and delegates that functionality \"completely to Nova\", and with the Upgrade impact section, which makes a Nova version implementing the companion spec a hard requirement and states there is \"no migration path for cyborg-owned devices\". The upgrade section also frames the Nova dependency as affecting only \"the devices discovered by the new generic mdev driver\", although after the refactor the NVIDIA driver\u0027s mdev workflow depends on the same Nova support.\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Operators running the NVIDIA GPU driver for vGPU could conclude the change needs no action, then find at upgrade time that mdev provisioning requires the Nova version implementing the companion spec and that existing cyborg-owned devices have no in-place migration path, leading to incorrect upgrade planning.\n\n**Suggestion**:\nAlign the sections: state that NVIDIA vGPU deployers also require a Nova version implementing the referenced nova-spec, describe what actually changes in the GPU driver\u0027s mdev create/delete flow after the refactor, and broaden the Upgrade impact statement beyond devices discovered by the generic mdev driver.","commit_id":"f58aa7bf16a8b96bee74b80498c991ef6c191750"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"27127ceba016f38954c3967da609059c5259017f","unresolved":false,"context_lines":[{"line_number":499,"context_line":"----------"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"* Implement the ``MdevBusManager`` class in"},{"line_number":502,"context_line":"  ``cyborg.accelerator.handlers.mdev`` with a public ``discover()``"},{"line_number":503,"context_line":"  method and internal helpers ``_discover_parent_devices()`` and"},{"line_number":504,"context_line":"  ``get_mdev_types()``."},{"line_number":505,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"18e56542_4c3ab607","line":502,"updated":"2026-09-18 13:24:02.000000000","message":"The Work Items bullet says MdevBusManager is implemented \"with a public ``discover()`` method and internal helpers ``_discover_parent_devices()`` and ``get_mdev_types()``\", making get_mdev_types() internal. The MdevBusManager class design section says the class \"exposes two public methods and an internal helper\" and lists discover() and get_mdev_types() as the public methods, marking only _discover_parent_devices() as the internal helper; get_mdev_types() also carries no underscore prefix. The same document assigns the one method conflicting visibility, and this classification is what the GPU driver refactor and future driver developers will implement against.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: An implementer following Work Items could make get_mdev_types() private (e.g. _get_mdev_types), breaking the documented API that the GPU driver refactor (lines 200-209 delegates mdev type introspection to MdevBusManager) and future driver developers (Developer impact section) are told to consume; spec reviewers and implementers would apply contradictory acceptance criteria.\n\n**Suggestion**:\nMake the two sections agree: in Work Items either describe get_mdev_types() as the second public method (\"with public ``discover()`` and ``get_mdev_types()`` methods and internal helper ``_discover_parent_devices()``\") or, if it is meant to be private, rename it with an underscore prefix consistently in both sections.","commit_id":"f58aa7bf16a8b96bee74b80498c991ef6c191750"},{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"27127ceba016f38954c3967da609059c5259017f","unresolved":false,"context_lines":[{"line_number":532,"context_line":"a parameter for the path where to find the mdevs. This will allow testing the"},{"line_number":533,"context_line":"discovery of different scenarios in temporary folders."},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"Tempest tests will be added using the ``pci_sim`` kernel module with"},{"line_number":536,"context_line":"mtty vf personalities (instead of the standalone ``mtty`` kernel module"},{"line_number":537,"context_line":"used in the 2026.2 iteration). The ``pci_sim`` approach will be developed"},{"line_number":538,"context_line":"as part of this work and creates realistic PCI-backed mdev devices that"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9c5f18e3_ae1e021a","line":535,"updated":"2026-09-18 13:24:02.000000000","message":"The Use Cases section says testing will use \"the pci-sim kernel module recently introduced\" while the Testing section (rewritten by this commit to replace the Nova devstack-plugin sample-driver approach) says \"The ``pci_sim`` approach will be developed as part of this work and creates realistic PCI-backed mdev devices\". A reader cannot tell whether the Tempest plan depends on an existing upstream module or on deliverables of this spec, and the module name is spelled inconsistently (\"pci-sim\" vs \"pci_sim\").\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Reviewers and implementers cannot assess the feasibility or scheduling of the stated Tempest testing plan (the e2e validation path for the whole driver) because its key dependency is simultaneously declared existing and to-be-built; inconsistent naming makes the dependency hard to trace across the document.\n\n**Suggestion**:\nState pci_sim\u0027s actual status explicitly: if the kernel module already exists upstream, say where it was introduced and keep \"recently introduced\" consistent; if the module or its mtty vf personalities are deliverables of this work, list them under Work Items and adjust the Use Cases wording. Use one spelling (suggest ``pci_sim``) throughout.","commit_id":"f58aa7bf16a8b96bee74b80498c991ef6c191750"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4de777e0730a519a8eb424f09a02c25a708eb11b","unresolved":true,"context_lines":[{"line_number":537,"context_line":"used in the 2026.2 iteration). The ``pci_sim`` approach will be developed"},{"line_number":538,"context_line":"as part of this work and creates realistic PCI-backed mdev devices that"},{"line_number":539,"context_line":"are discoverable by the new driver. The same test will also exercise the"},{"line_number":540,"context_line":"ARQ bind path with Nova as well as the reporting to Placement."},{"line_number":541,"context_line":""},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bd559bdf_304c92d9","line":540,"updated":"2026-09-18 12:17:07.000000000","message":"+1","commit_id":"f58aa7bf16a8b96bee74b80498c991ef6c191750"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"ff929600508bc8ee2744916a2f6527d50de14315","unresolved":true,"context_lines":[{"line_number":532,"context_line":"a parameter for the path where to find the mdevs. This will allow testing the"},{"line_number":533,"context_line":"discovery of different scenarios in temporary folders."},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"Tempest tests will be added using the ``pci_sim`` kernel module with"},{"line_number":536,"context_line":"mtty vf personalities (instead of the standalone ``mtty`` kernel module"},{"line_number":537,"context_line":"used in the 2026.2 iteration). The ``pci_sim`` approach will be developed"},{"line_number":538,"context_line":"as part of this work and creates realistic PCI-backed mdev devices that"},{"line_number":539,"context_line":"are discoverable by the new driver. The same test will also exercise the"},{"line_number":540,"context_line":"ARQ bind path with Nova as well as the reporting to Placement."},{"line_number":541,"context_line":""},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"Documentation Impact"},{"line_number":544,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"2a2213fd_fd0d1a70","line":541,"range":{"start_line":535,"start_character":0,"end_line":541,"end_character":1},"updated":"2026-09-18 12:17:19.000000000","message":"+1 for documenting about pci-sim under testing.","commit_id":"f58aa7bf16a8b96bee74b80498c991ef6c191750"}]}
