)]}'
{"devstack/lib/pci_sim":[{"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":"c5cd98e639d7ab9a150de497bf548552d910a1c1","unresolved":false,"context_lines":[{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    [[ \"$PCI_SIM_CONFIGURE_CYBORG_MDEV\" \u003d\u003d True ]] || return 0"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"    groups\u003d\u0027[{\"resources:CUSTOM_MDEV_FAKE_PCI_SRIOV_PF_SIM_ACCEL_SMALL\":\"1\"}]\u0027"},{"line_number":529,"context_line":"    if ! openstack accelerator device profile list -f value -c name | \\"},{"line_number":530,"context_line":"        grep -qx \"$PCI_SIM_CYBORG_MDEV_DEVICE_PROFILE_NAME\"; then"},{"line_number":531,"context_line":"        openstack accelerator device profile create \\"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"c89fe10d_dc2ad1d1","line":528,"updated":"2026-07-23 17:48:04.000000000","message":"The create_pci_sim_cyborg_mdev_device_profile function hardcodes the resource class CUSTOM_MDEV_FAKE_PCI_SRIOV_PF_SIM_ACCEL_SMALL, while the rest of the mdev configuration (device_spec entries, PCI_SIM_MDEV_TYPE) is driven by the configurable PCI_SIM_MDEV_TYPE variable. If a user changes PCI_SIM_...\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: If PCI_SIM_MDEV_TYPE is changed to a non-default value, the device profile will reference a Placement resource class that the mdev driver never creates. Flavors using this profile will fail to schedule because no inventory matches the requested resource class.\n\n**Recommendation**:\nDerive the resource class from PCI_SIM_MDEV_TYPE at runtime, e.g.: local type_upper; type_upper\u003d$(echo \"$PCI_SIM_MDEV_TYPE\" | tr \u0027[:lower:]-\u0027 \u0027[:upper:]_\u0027); local rc\u003d\"CUSTOM_MDEV_${type_upper}\"; groups\u003d\"[{\\\"resources:${rc}\\\":\\\"1\\\"}]\"","commit_id":"c9898aab78a166bc6f63a8c744234341a5b59abb"},{"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":"8d11f9de30e7bccab01ede0b9baf33703032af2c","unresolved":false,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    mapfile -t pfs \u003c \u003c(pci_sim_find_devs \"$PCI_SIM_PF_DEVICE_ID\")"},{"line_number":401,"context_line":"    for pf in \"${pfs[@]}\"; do"},{"line_number":402,"context_line":"        if [[ $(pci_sim_pf_mode \"$index\") !\u003d sriov ]]; then"},{"line_number":403,"context_line":"            index\u003d$((index + 1))"},{"line_number":404,"context_line":"        fi"},{"line_number":405,"context_line":"        target\u003d$(pci_sim_pf_target \"$pci_index\")"}],"source_content_type":"application/octet-stream","patch_set":14,"id":"e4b43b02_fc572d60","line":402,"updated":"2026-07-24 06:50:17.000000000","message":"In pci_sim_collect_target_vfs, when a non-sriov PF is detected, the index variable is incremented inside the if block but there is no \u0027continue\u0027 statement, so it is also incremented at the bottom of the loop. This causes index to advance by 2 for each mdev PF, making subsequent pci_sim_pf_mode()...\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: With 4+ PFs in mixed SR-IOV/mdev mode, sriov PFs after the first mdev PF are incorrectly treated as mdev and skipped, causing their VFs to be excluded from Nova/Cyborg configuration. The default 2-PF configuration is unaffected.\n\n**Suggestion**:\nAdd `continue` after `index\u003d$((index + 1))` inside the if block at line 403, matching the pattern in configure_pci_sim_vfs. Also move `pci_index\u003d$((pci_index + 1))` inside an else branch or guard it so it only increments for sriov PFs, matching the comment\u0027s intent.","commit_id":"c75f253365dfadf0bd488f9bc55b418a1ddf0c42"},{"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":"8d11f9de30e7bccab01ede0b9baf33703032af2c","unresolved":false,"context_lines":[{"line_number":405,"context_line":"        target\u003d$(pci_sim_pf_target \"$pci_index\")"},{"line_number":406,"context_line":"        if [[ $target \u003d\u003d \"$wanted_target\" ]]; then"},{"line_number":407,"context_line":"            mapfile -t pf_vfs \u003c \u003c(pci_sim_find_vfs_for_pf \"$pf\")"},{"line_number":408,"context_line":"            printf \u0027%s \u0027 \"${pf_vfs[@]}\""},{"line_number":409,"context_line":"        fi"},{"line_number":410,"context_line":"        index\u003d$((index + 1))"},{"line_number":411,"context_line":"        pci_index\u003d$((pci_index + 1))"}],"source_content_type":"application/octet-stream","patch_set":14,"id":"d83c22ab_6500c89f","line":408,"updated":"2026-07-24 06:50:17.000000000","message":"The printf format was changed from \u0027%s\\n\u0027 to \u0027%s \u0027 in pci_sim_collect_target_vfs, but callers use mapfile -t (which splits on newlines). This causes all VF addresses to be captured as a single array element, producing malformed Nova and Cyborg PCI configuration entries.\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: When PCI_SIM_ENABLE_MDEV\u003dTrue with NUM_VFS\u003e0 (the default mixed-mode config used in CI), Nova and Cyborg receive a single malformed PCI device_spec entry containing all VF addresses concatenated with spaces. No PCI passthrough or Cyborg VF assignment will function correctly.\n\n**Priority**: Before merge\n**Why This Matters**: When PCI_SIM_ENABLE_MDEV\u003dTrue with NUM_VFS\u003e0 (the default mixed-mode config used in CI), Nova and Cyborg receive a single malformed PCI device_spec entry containing all VF addresses concatenated with spaces. No PCI passthrough or Cyborg VF assignment will function correctly.\n\n**Recommendation**:\nRevert the printf format back to newline-separated output: change `printf \u0027%s \u0027 \"${pf_vfs[@]}\"` to `printf \u0027%s\\n\u0027 \"${pf_vfs[@]}\"`. Alternatively, change callers from mapfile -t to `read -ra` with space-separated parsing, but reverting to newlines is simpler and matches the existing contract.","commit_id":"c75f253365dfadf0bd488f9bc55b418a1ddf0c42"},{"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":"553baa05793c5d4e8560d41e2d5734998263c94f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    pci_sim_compute_pf_modes"},{"line_number":83,"context_line":"    local num_unique"},{"line_number":84,"context_line":"    num_unique\u003d$(printf \u0027%s\\n\u0027 \"${PCI_SIM_PF_MODES[@]}\" | sort -u | wc -l)"},{"line_number":85,"context_line":"    if [[ $PCI_SIM_NUM_PFS -lt $num_unique ]]; then"},{"line_number":86,"context_line":"        die $LINENO \"PCI_SIM_NUM_PFS\u003d$PCI_SIM_NUM_PFS is too small for $num_unique device types; need at least one PF per type\""},{"line_number":87,"context_line":"    fi"},{"line_number":88,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":17,"id":"6f4a508e_18168f12","line":85,"updated":"2026-07-29 17:24:11.000000000","message":"The validation check at lines 85-87 compares PCI_SIM_NUM_PFS against the number of unique entries in PCI_SIM_PF_MODES. However, pci_sim_compute_pf_modes always produces exactly PCI_SIM_NUM_PFS entries, so num_unique can never exceed PCI_SIM_NUM_PFS, making the condition permanently false.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: The dead check adds complexity without providing any validation. A future maintainer might assume the check guards against certain configurations when it does not.\n\n**Recommendation**:\nRemove the num_unique computation and the subsequent die check (lines 83-87), or replace it with a meaningful validation such as verifying that PCI_SIM_PF_MODE_LIST only contains recognized personality names (e.g., uart, mdev).","commit_id":"9482736763111d2d94cd3f5d87927b914b797430"},{"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":"553baa05793c5d4e8560d41e2d5734998263c94f","unresolved":false,"context_lines":[{"line_number":275,"context_line":"    pci_sim_configure_personalities"},{"line_number":276,"context_line":"}"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"function configure_pci_sim_vfs {"},{"line_number":279,"context_line":"    set -x"},{"line_number":280,"context_line":"    local pf vf"},{"line_number":281,"context_line":"    local -a pfs vfs"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"e1772824_5cc30958","line":278,"updated":"2026-07-29 17:24:11.000000000","message":"The function configure_pci_sim_vfs references an `index` variable in its PF loop (line 293) but never declares `local index\u003d0`. Every other function with a similar PF-indexing loop in this file properly declares `local index\u003d0`. Without the declaration, `index` leaks into the global scope and sta...\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: If any function called before configure_pci_sim_vfs sets a global `index` variable, configure_pci_sim_vfs will start iterating from that stale value, causing PF mode lookups to be off by N. This would result in VFs being configured on the wrong PFs. In the current DevStack call chain the bug is l...\n\n**Suggestion**:\nAdd `local index\u003d0` to the local variable declarations at line 280-281, e.g. change `local pf vf` to `local pf vf index` or add a separate `local index\u003d0` line.","commit_id":"9482736763111d2d94cd3f5d87927b914b797430"},{"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":"97face368ba7c380c79424b1f472e1fd93d3df10","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        fi"},{"line_number":81,"context_line":"    fi"},{"line_number":82,"context_line":"    pci_sim_compute_pf_modes"},{"line_number":83,"context_line":"    local num_unique"},{"line_number":84,"context_line":"    num_unique\u003d$(printf \u0027%s\\n\u0027 \"${PCI_SIM_PF_MODES[@]}\" | sort -u | wc -l)"},{"line_number":85,"context_line":"    if [[ $PCI_SIM_NUM_PFS -lt $num_unique ]]; then"},{"line_number":86,"context_line":"        die $LINENO \"PCI_SIM_NUM_PFS\u003d$PCI_SIM_NUM_PFS is too small for $num_unique device types; need at least one PF per type\""}],"source_content_type":"application/octet-stream","patch_set":18,"id":"6cdb73ec_3023e0e8","line":83,"updated":"2026-07-29 18:20:04.000000000","message":"The validation at lines 83-87 checks \u0027PCI_SIM_NUM_PFS -lt num_unique\u0027 where num_unique is the count of unique values in PCI_SIM_PF_MODES. Since pci_sim_compute_pf_modes always populates exactly PCI_SIM_NUM_PFS entries, num_unique can never exceed PCI_SIM_NUM_PFS, making the condition always false...\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: Users could configure mdev-only mode with NUM_PFS\u003d1 and NUM_VFS\u003d0, which would silently produce zero mdev PFs (PF0 gets uart) with no validation error. The dead check gives a false sense that type coverage is verified.\n\n**Recommendation**:\nReplace the num_unique check with a direct comparison of the number of enabled device types against PCI_SIM_NUM_PFS. For example, track num_types in pci_sim_compute_pf_modes and validate \u0027num_types \u003c\u003d PCI_SIM_NUM_PFS\u0027, or explicitly check that at least one PF is assigned to each enabled personality.","commit_id":"cb8522c04a82e78c9763724bfd09cf4e0cd9d0e6"},{"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":"97face368ba7c380c79424b1f472e1fd93d3df10","unresolved":false,"context_lines":[{"line_number":290,"context_line":"    fi"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    for pf in \"${pfs[@]}\"; do"},{"line_number":293,"context_line":"        if [[ $(pci_sim_pf_mode \"$index\") !\u003d uart ]]; then"},{"line_number":294,"context_line":"            index\u003d$((index + 1))"},{"line_number":295,"context_line":"            continue"},{"line_number":296,"context_line":"        fi"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"322dd1ad_ca08484b","line":293,"updated":"2026-07-29 18:20:04.000000000","message":"The function configure_pci_sim_vfs uses $index in a for loop to look up PF personalities via pci_sim_pf_mode, but never declares the variable with \u0027local index\u003d0\u0027. Every other function in the file that iterates PF indices properly declares \u0027local index\u003d0\u0027. Without the local declaration, index lea...\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: If a global \u0027index\u0027 variable is set before configure_pci_sim_vfs runs (which DevStack\u0027s shared shell makes possible), the PF personality offset would be wrong, leading to VFs being created on mdev PFs or skipped on uart PFs. This produces an incorrect pci-sim topology.\n\n**Suggestion**:\nAdd \u0027local index\u003d0\u0027 to the function\u0027s local declarations alongside \u0027local pf vf\u0027 at line 280. For example: \u0027local pf vf index\u003d0\u0027.","commit_id":"cb8522c04a82e78c9763724bfd09cf4e0cd9d0e6"},{"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":"a4f9d3a06c74b5ec50909a26ec9a87e99880e24a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    local i num_types"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    if [[ -n \"${PCI_SIM_PF_MODE_LIST:-}\" ]]; then"},{"line_number":17,"context_line":"        IFS\u003d\u0027,\u0027 read -ra PCI_SIM_PF_MODES \u003c\u003c\u003c \"$PCI_SIM_PF_MODE_LIST\""},{"line_number":18,"context_line":"        return 0"},{"line_number":19,"context_line":"    fi"},{"line_number":20,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":20,"id":"4a76b6a1_db6c0d22","line":17,"updated":"2026-07-31 13:16:31.000000000","message":"The pci_sim_compute_pf_modes function parses PCI_SIM_PF_MODE_LIST using \u0027IFS\u003d\u0027,\u0027 read -ra\u0027 which preserves leading/trailing spaces in each token. If a user writes \u0027uart, mdev\u0027 (with a space after the comma), the resulting array element is \u0027 mdev\u0027 rather than \u0027mdev\u0027, causing all downstream compari...\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: If a user provides PCI_SIM_PF_MODE_LIST with spaces after commas (a common convention, e.g. \u0027uart, mdev\u0027), PFs will be silently misconfigured: they will not get SR-IOV VFs, will not be recognized as mdev PFs, and the personality sysfs write will fail without a clear error message. This makes debu...\n\n**Suggestion**:\nTrim whitespace from each token after splitting. For example, after the read, loop over PCI_SIM_PF_MODES and strip spaces, or use parameter expansion like \u0027PCI_SIM_PF_MODES\u003d(${PCI_SIM_PF_MODE_LIST//,/ })\u0027 which naturally handles spaces. Alternatively, add a sed/tr step to remove spaces from PCI_SIM_PF_MODE_LIST before splitting.","commit_id":"54fd30923bf1731436d06160d83a58f7db1cabc7"},{"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":"57cad9b1f43945bbf7ec7d9f76a7731def660ed6","unresolved":false,"context_lines":[{"line_number":59,"context_line":"# every DevStack phase (plugin.sh re-sources this file for each phase)."},{"line_number":60,"context_line":"pci_sim_compute_pf_modes"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"function pci_sim_validate_config {"},{"line_number":63,"context_line":"    # The module supports up to 16 fake host bridges/PFs and up to 7 VFs"},{"line_number":64,"context_line":"    # per PF.  Validate early so stack.sh fails before loading the module"},{"line_number":65,"context_line":"    # with a topology the driver will reject."}],"source_content_type":"application/octet-stream","patch_set":21,"id":"ba1e71cf_9eeb83c8","line":62,"updated":"2026-08-03 09:40:39.000000000","message":"When PCI_SIM_ENABLE_MDEV\u003dTrue and PCI_SIM_NUM_PFS\u003d1, the round-robin assignment in pci_sim_compute_pf_modes assigns \u0027uart\u0027 to the only PF (types[0 % 2] \u003d \u0027uart\u0027), resulting in zero mdev PFs without any error or warning. The mdev_driver gets enabled in Cyborg but with no devices to manage.\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: An operator who sets PCI_SIM_ENABLE_MDEV\u003dTrue and PCI_SIM_NUM_PFS\u003d1 (e.g., to conserve resources) gets zero mdev PFs. The mdev_driver is enabled with no device_spec entries, and the device profile requesting CUSTOM_MDEV_FAKE_PCI_SRIOV_PF_SIM_ACCEL_SMALL has no backing resources, causing confusion...\n\n**Recommendation**:\nAdd a validation check in pci_sim_validate_config for the case where mdev is enabled but no PF would receive the mdev personality. For example: if mdev is enabled and the round-robin would assign zero mdev PFs, either die with an error (suggesting PCI_SIM_PF_MODE_LIST\u003dmdev for single-PF mdev-only setups) or warn the user.","commit_id":"8861d9eac085ad9cf31be922044da67603a1a7bd"}],"devstack/plugin.sh":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"cd2cd21d3172680581bc4aca6632a241a988b7f0","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        # services have been started."},{"line_number":49,"context_line":"        # Configure pci-sim Cyborg service settings before starting"},{"line_number":50,"context_line":"        # the agent so it picks up pci_driver and passthrough_whitelist."},{"line_number":51,"context_line":"        if [[ \"$ENABLE_PCI_SIM\" \u003d\u003d True \u0026\u0026"},{"line_number":52,"context_line":"            \"$PCI_SIM_LOAD\" \u003d\u003d True ]]; then"},{"line_number":53,"context_line":"            configure_pci_sim_cyborg_service_config"},{"line_number":54,"context_line":"            configure_pci_sim_cyborg_mdev_service_config"}],"source_content_type":"text/x-sh","patch_set":13,"id":"c1ebe711_409f0ed5","line":51,"updated":"2026-07-23 18:37:20.000000000","message":"pep8: E011 Then keyword is not on same line as if or elif keyword","commit_id":"c9898aab78a166bc6f63a8c744234341a5b59abb"}],"devstack/settings":[{"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":"9b8536fb1a453eb95cbbc8c4dd8389864a4f3381","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"# Full sysfs mdev type name to configure in Cyborg.  The kernel auto-prefixes"},{"line_number":112,"context_line":"# the PF driver name to the type sysfs_name."},{"line_number":113,"context_line":"PCI_SIM_MDEV_TYPE\u003d${PCI_SIM_MDEV_TYPE:-fake_pci_sriov_pf-sim_accel_small}"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"# Whether this plugin should configure Cyborg\u0027s generic mdev_driver to manage"},{"line_number":116,"context_line":"# pci-sim mdev instances via [agent] enabled_drivers and [mdev] device_spec."}],"source_content_type":"application/octet-stream","patch_set":15,"id":"bdd7e2ea_ed1e483c","line":113,"updated":"2026-07-24 07:29:44.000000000","message":"The PCI_SIM_MDEV_TYPE setting is declared in devstack/settings with a configurable default and a comment describing it as the mdev type to configure in Cyborg. However, no function in devstack/lib/pci_sim or devstack/plugin.sh reads this variable. The device spec entries are discovered dynamicall...\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: A user or operator who sets PCI_SIM_MDEV_TYPE to a different value (e.g., to use sim_accel_large instead) will find that the setting has no effect: the device spec still registers all types dynamically and the test device profile always requests ACCEL_SMALL. This creates a false impression of con...\n\n**Suggestion**:\nEither derive the resource class in create_pci_sim_cyborg_mdev_device_profile from PCI_SIM_MDEV_TYPE (e.g., by uppercasing and prefixing with CUSTOM_MDEV_), or remove the variable and update the comment to clarify that the type name is informational only.","commit_id":"125cf68259dfe26cb7e0d1616a0614134fdedfe6"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a56418b6a8a5afa599d6e58ca63a3fd2c80f0e39","unresolved":true,"context_lines":[{"line_number":94,"context_line":"# Add mdev to the per-PF personality round-robin.  When True, alternating PFs"},{"line_number":95,"context_line":"# are assigned the mdev personality instead of uart.  Other personalities"},{"line_number":96,"context_line":"# (e.g. NVMe) may be added by future patches."},{"line_number":97,"context_line":"PCI_SIM_ENABLE_MDEV\u003d$(trueorfalse False PCI_SIM_ENABLE_MDEV)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# Explicit comma-separated per-PF personality list (e.g. \"uart,uart,mdev\")."},{"line_number":100,"context_line":"# When set, overrides the round-robin computed from PCI_SIM_ENABLE_MDEV."}],"source_content_type":"application/octet-stream","patch_set":19,"id":"cf15071a_eb452be8","line":97,"updated":"2026-07-30 14:22:14.000000000","message":"teim-ci flagged this, this assignment duplicated again on L119.","commit_id":"0318790264b237e392e0f17bbbfd1846c1e3bef7"},{"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":"b7ddcbc48deddd307fc49caf744cd844079d2fa6","unresolved":false,"context_lines":[{"line_number":116,"context_line":"# When True and NUM_VFS \u003e 0, odd-indexed PFs become mdev parents while"},{"line_number":117,"context_line":"# even-indexed PFs remain SR-IOV.  When True and NUM_VFS\u003d0, all PFs"},{"line_number":118,"context_line":"# become mdev parents."},{"line_number":119,"context_line":"PCI_SIM_ENABLE_MDEV\u003d$(trueorfalse False PCI_SIM_ENABLE_MDEV)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"# Maximum small-type mdev instances per PF (large \u003d instances/4, minimum 1)."},{"line_number":122,"context_line":"PCI_SIM_MDEV_INSTANCES\u003d${PCI_SIM_MDEV_INSTANCES:-8}"}],"source_content_type":"application/octet-stream","patch_set":19,"id":"dba1f0ff_5758c799","line":119,"updated":"2026-07-30 12:40:13.000000000","message":"PCI_SIM_ENABLE_MDEV is assigned the same trueorfalse expression twice within devstack/settings: once in the general personality section (line 97) and again in the dedicated mdev section (line 119). The second assignment silently overwrites the first with an identical value, which is confusing for...\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: A future maintainer editing one copy may miss the other, leading to inconsistent behavior. Users reading the settings file may be confused about which definition is authoritative.\n\n**Recommendation**:\nRemove the duplicate assignment at line 119 and keep a single PCI_SIM_ENABLE_MDEV definition. Consolidate the mdev-related settings under one section, or move the first definition into the mdev section and remove the second.","commit_id":"0318790264b237e392e0f17bbbfd1846c1e3bef7"},{"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":"b7ddcbc48deddd307fc49caf744cd844079d2fa6","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"# Full sysfs mdev type name to configure in Cyborg.  The kernel auto-prefixes"},{"line_number":125,"context_line":"# the PF driver name to the type sysfs_name."},{"line_number":126,"context_line":"PCI_SIM_MDEV_TYPE\u003d${PCI_SIM_MDEV_TYPE:-fake_pci_sriov_pf-sim_accel_small}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# Whether this plugin should configure Cyborg\u0027s generic mdev_driver to manage"},{"line_number":129,"context_line":"# pci-sim mdev instances via [agent] enabled_drivers and [mdev] device_spec."}],"source_content_type":"application/octet-stream","patch_set":19,"id":"5c793d1d_775b9e62","line":126,"updated":"2026-07-30 12:40:13.000000000","message":"PCI_SIM_MDEV_TYPE is introduced in devstack/settings with a default of \u0027fake_pci_sriov_pf-sim_accel_small\u0027, but no function in devstack/lib/pci_sim or devstack/plugin.sh reads or uses this variable. The mdev type discovery in configure_pci_sim_cyborg_mdev uses sysfs globbing over /sys/class/mdev_...\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: A user who sets PCI_SIM_MDEV_TYPE to filter which mdev type Cyborg manages will see no effect, since the code discovers all available types via sysfs. This dead config is misleading.\n\n**Recommendation**:\nEither remove PCI_SIM_MDEV_TYPE if sysfs globbing is the intended discovery mechanism, or use it to filter the mdev types configured in configure_pci_sim_cyborg_mdev so the variable has a functional purpose.","commit_id":"0318790264b237e392e0f17bbbfd1846c1e3bef7"}]}
