)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0935d394ac2471545884e4168e2216b4a0f750da","unresolved":true,"context_lines":[{"line_number":20,"context_line":"kernel driver core manages their lifecycle automatically."},{"line_number":21,"context_line":"Writes are rejected with -EBUSY while VFs are active, and with"},{"line_number":22,"context_line":"-EINVAL for unknown names."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Only the uart personality (default) supports SR-IOV VF creation;"},{"line_number":25,"context_line":"other personalities reject sriov_numvfs writes with -ENODEV."},{"line_number":26,"context_line":"The sriov_configure callback holds host-\u003elock across the"},{"line_number":27,"context_line":"personality and num_vfs_enabled checks so a concurrent"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"347f8008_45b54ab3","line":24,"range":{"start_line":23,"start_character":1,"end_line":24,"end_character":64},"updated":"2026-07-29 13:31:09.000000000","message":"this is not correct\n\nthe mdev and nvme device were inteneded to be VFs of the PF\nwe coudl create them as PFs but that was not how this was intended to be implemtned so you shoudl be able to allcoate vf of the relvent types once tehy are implemneted.","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"db5c9b111e8724fb466e73af2d4f57b546d7c795","unresolved":true,"context_lines":[{"line_number":20,"context_line":"kernel driver core manages their lifecycle automatically."},{"line_number":21,"context_line":"Writes are rejected with -EBUSY while VFs are active, and with"},{"line_number":22,"context_line":"-EINVAL for unknown names."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Only the uart personality (default) supports SR-IOV VF creation;"},{"line_number":25,"context_line":"other personalities reject sriov_numvfs writes with -ENODEV."},{"line_number":26,"context_line":"The sriov_configure callback holds host-\u003elock across the"},{"line_number":27,"context_line":"personality and num_vfs_enabled checks so a concurrent"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"788ba367_677a3e9a","line":24,"range":{"start_line":23,"start_character":1,"end_line":24,"end_character":64},"in_reply_to":"347f8008_45b54ab3","updated":"2026-07-29 14:05:00.000000000","message":"I think this might be me confusing some terminology, but the way this is written is from the point of view of the kernel module responsability. I undestand it as being able to create vfs for the sriov driver, but only creating a parent device for mdevs, since it will be libvirt through nova who creates the mdevs. In my mind the mdevs created by libvirt are the equivalent of the sriov vfs, is that wrong?","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a560ef1ed43b45bed9605122fd6e11aaa3ad31bc","unresolved":true,"context_lines":[{"line_number":20,"context_line":"kernel driver core manages their lifecycle automatically."},{"line_number":21,"context_line":"Writes are rejected with -EBUSY while VFs are active, and with"},{"line_number":22,"context_line":"-EINVAL for unknown names."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Only the uart personality (default) supports SR-IOV VF creation;"},{"line_number":25,"context_line":"other personalities reject sriov_numvfs writes with -ENODEV."},{"line_number":26,"context_line":"The sriov_configure callback holds host-\u003elock across the"},{"line_number":27,"context_line":"personality and num_vfs_enabled checks so a concurrent"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ec48655a_744cdbed","line":24,"range":{"start_line":23,"start_character":1,"end_line":24,"end_character":64},"in_reply_to":"788ba367_677a3e9a","updated":"2026-08-04 14:07:41.000000000","message":"that was not how i oringally wanted to do it\n\nits technically a valid implmation and how it orignally workd for nviad gpus but they change htat about 5 years ago\n\n\nso it valid to create mdevs form the PF or to create mdevs fomr VFs or from usb device as the vfio-mdev framework has no depenciy on the pci bus directly\n\n\nthe reaons i wanted to use the VF as the mdev parent is 1 that is what modern nvida gpus do (any nvidia gpu that supprot sriov/mig in addtion to timeslicing)\nand 2 because we are going to contol this via vf_personality not PF_personality\n\nso the parent shoudl be the VF","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0935d394ac2471545884e4168e2216b4a0f750da","unresolved":true,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Currently registered personalities are uart and mdev.  The uart"},{"line_number":31,"context_line":"personality preserves existing SR-IOV + UART loopback behavior."},{"line_number":32,"context_line":"The mdev personality is registered in the names table but has no"},{"line_number":33,"context_line":"functional implementation yet; that comes in a follow-up patch."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Kernel changes:"},{"line_number":36,"context_line":"- Add enum pci_sim_vf_personality and host-\u003epersonality field"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"c1e59aa8_645570c2","line":33,"range":{"start_line":32,"start_character":0,"end_line":33,"end_character":63},"updated":"2026-07-29 13:31:09.000000000","message":"you shoudl not register it until the follwoup","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a560ef1ed43b45bed9605122fd6e11aaa3ad31bc","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Currently registered personalities are uart and mdev.  The uart"},{"line_number":31,"context_line":"personality preserves existing SR-IOV + UART loopback behavior."},{"line_number":32,"context_line":"The mdev personality is registered in the names table but has no"},{"line_number":33,"context_line":"functional implementation yet; that comes in a follow-up patch."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Kernel changes:"},{"line_number":36,"context_line":"- Add enum pci_sim_vf_personality and host-\u003epersonality field"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"b1e282d2_2bf82ced","line":33,"range":{"start_line":32,"start_character":0,"end_line":33,"end_character":63},"in_reply_to":"03e570cb_a1da30ab","updated":"2026-08-04 14:07:41.000000000","message":"Acknowledged","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"db5c9b111e8724fb466e73af2d4f57b546d7c795","unresolved":true,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Currently registered personalities are uart and mdev.  The uart"},{"line_number":31,"context_line":"personality preserves existing SR-IOV + UART loopback behavior."},{"line_number":32,"context_line":"The mdev personality is registered in the names table but has no"},{"line_number":33,"context_line":"functional implementation yet; that comes in a follow-up patch."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Kernel changes:"},{"line_number":36,"context_line":"- Add enum pci_sim_vf_personality and host-\u003epersonality field"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"03e570cb_a1da30ab","line":33,"range":{"start_line":32,"start_character":0,"end_line":33,"end_character":63},"in_reply_to":"c1e59aa8_645570c2","updated":"2026-07-29 14:05:00.000000000","message":"ack, I\u0027ll remove the mdev mentions and move them to the follow-up patch","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0935d394ac2471545884e4168e2216b4a0f750da","unresolved":true,"context_lines":[{"line_number":32,"context_line":"The mdev personality is registered in the names table but has no"},{"line_number":33,"context_line":"functional implementation yet; that comes in a follow-up patch."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Kernel changes:"},{"line_number":36,"context_line":"- Add enum pci_sim_vf_personality and host-\u003epersonality field"},{"line_number":37,"context_line":"- Add personality names table in fake_pci_sriov_cfg.c"},{"line_number":38,"context_line":"- Add vf_personality / vf_personality_available sysfs attributes"},{"line_number":39,"context_line":"  via DEVICE_ATTR and ATTRIBUTE_GROUPS on the PF driver"},{"line_number":40,"context_line":"- Guard sriov_configure with personality check under host-\u003elock"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"DevStack changes:"},{"line_number":43,"context_line":"- Add PCI_SIM_ENABLE_MDEV toggle for round-robin personality"},{"line_number":44,"context_line":"  assignment (mdev support is not added yet)"},{"line_number":45,"context_line":"- Add PCI_SIM_PF_MODE_LIST for explicit per-PF personality control"},{"line_number":46,"context_line":"- Add pci_sim_configure_personalities to write vf_personality"},{"line_number":47,"context_line":"  sysfs files after module load"},{"line_number":48,"context_line":"- Skip non-uart PFs in VF creation and target collection"},{"line_number":49,"context_line":"- Fix printf format in pci_sim_collect_target_vfs"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Generated-By: claude-code (claude-opus-4-6)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"fc8983c2_5ac30898","line":48,"range":{"start_line":35,"start_character":1,"end_line":48,"end_character":51},"updated":"2026-07-29 13:31:09.000000000","message":"so commit message shoudl not decibe what was change but rather why you are doing the change\n\nwith that said\n\n- Add PCI_SIM_ENABLE_MDEV toggle for round-robin personality\n  assignment (mdev support is not added yet)\n  \n  shoudl not be in this commit\n  \n  \nthe specific refactiong that i ask for on irc and in converstaion with chandan was a way to map PFs ot openstacer and the personaltiy it shoudl resice\n\n\nso PCI_SIM_PF_MODE_LIST shodul be more like \n\nPCI_SIM_PF_MAP\u003dnova:uart,nova:mdev,cyborg:nvme,cyborg:nic\n\nthat woudl resutl in loadign the module with 4 PF 2 assigned to noav  and 2 to cybrog\n\nthat shoudl be its own commit","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a560ef1ed43b45bed9605122fd6e11aaa3ad31bc","unresolved":false,"context_lines":[{"line_number":32,"context_line":"The mdev personality is registered in the names table but has no"},{"line_number":33,"context_line":"functional implementation yet; that comes in a follow-up patch."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Kernel changes:"},{"line_number":36,"context_line":"- Add enum pci_sim_vf_personality and host-\u003epersonality field"},{"line_number":37,"context_line":"- Add personality names table in fake_pci_sriov_cfg.c"},{"line_number":38,"context_line":"- Add vf_personality / vf_personality_available sysfs attributes"},{"line_number":39,"context_line":"  via DEVICE_ATTR and ATTRIBUTE_GROUPS on the PF driver"},{"line_number":40,"context_line":"- Guard sriov_configure with personality check under host-\u003elock"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"DevStack changes:"},{"line_number":43,"context_line":"- Add PCI_SIM_ENABLE_MDEV toggle for round-robin personality"},{"line_number":44,"context_line":"  assignment (mdev support is not added yet)"},{"line_number":45,"context_line":"- Add PCI_SIM_PF_MODE_LIST for explicit per-PF personality control"},{"line_number":46,"context_line":"- Add pci_sim_configure_personalities to write vf_personality"},{"line_number":47,"context_line":"  sysfs files after module load"},{"line_number":48,"context_line":"- Skip non-uart PFs in VF creation and target collection"},{"line_number":49,"context_line":"- Fix printf format in pci_sim_collect_target_vfs"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Generated-By: claude-code (claude-opus-4-6)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"2abc4ec1_dd10a0d4","line":48,"range":{"start_line":35,"start_character":1,"end_line":48,"end_character":51},"in_reply_to":"8b4da9a8_e16582b4","updated":"2026-08-04 14:07:41.000000000","message":"Acknowledged","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"db5c9b111e8724fb466e73af2d4f57b546d7c795","unresolved":true,"context_lines":[{"line_number":32,"context_line":"The mdev personality is registered in the names table but has no"},{"line_number":33,"context_line":"functional implementation yet; that comes in a follow-up patch."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Kernel changes:"},{"line_number":36,"context_line":"- Add enum pci_sim_vf_personality and host-\u003epersonality field"},{"line_number":37,"context_line":"- Add personality names table in fake_pci_sriov_cfg.c"},{"line_number":38,"context_line":"- Add vf_personality / vf_personality_available sysfs attributes"},{"line_number":39,"context_line":"  via DEVICE_ATTR and ATTRIBUTE_GROUPS on the PF driver"},{"line_number":40,"context_line":"- Guard sriov_configure with personality check under host-\u003elock"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"DevStack changes:"},{"line_number":43,"context_line":"- Add PCI_SIM_ENABLE_MDEV toggle for round-robin personality"},{"line_number":44,"context_line":"  assignment (mdev support is not added yet)"},{"line_number":45,"context_line":"- Add PCI_SIM_PF_MODE_LIST for explicit per-PF personality control"},{"line_number":46,"context_line":"- Add pci_sim_configure_personalities to write vf_personality"},{"line_number":47,"context_line":"  sysfs files after module load"},{"line_number":48,"context_line":"- Skip non-uart PFs in VF creation and target collection"},{"line_number":49,"context_line":"- Fix printf format in pci_sim_collect_target_vfs"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Generated-By: claude-code (claude-opus-4-6)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"8b4da9a8_e16582b4","line":48,"range":{"start_line":35,"start_character":1,"end_line":48,"end_character":51},"in_reply_to":"fc8983c2_5ac30898","updated":"2026-07-29 14:05:00.000000000","message":"ok, I\u0027ll drop all mdev mentions. I can propose a follow-up patch with the map suggestion and only create uart devices for now in the devstack plugin, since that is the only supported persionality","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"fb0905900ce917b5d9afc38d752fcb627d60cbf3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"a753ad04_dca1788c","updated":"2026-07-30 06:29:21.000000000","message":"check experimental","commit_id":"548180334db02379e6ab83cbd8493caf872c55fd"},{"author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"change_message_id":"d82f98364c91a4040cbc19efa6451bbf605d5b3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"b08af7cd_9d5da9ad","updated":"2026-08-04 14:29:25.000000000","message":"Looks solid, verified the locking and the failure rollback. One small test-coverage suggestion inline.","commit_id":"4defd35a0cb4e409835b27533c546161f2ed31d1"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a433a1f50bc9b7b02469d53b1c4b2f294a7d9680","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"fcf294bb_e2dd2eee","updated":"2026-08-26 11:32:22.000000000","message":"recheck","commit_id":"e0aaa4324b1b27c4819222a0dc3303139cf6de43"}],"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":"f5f0d14ec288a6fa877b2d98c081ea7ab4aeee6a","unresolved":false,"context_lines":[{"line_number":231,"context_line":"    local mod_args\u003d\"num_pfs\u003d$PCI_SIM_NUM_PFS\""},{"line_number":232,"context_line":"    local pf_mode_str"},{"line_number":233,"context_line":"    pf_mode_str\u003d$(pci_sim_build_pf_mode_string)"},{"line_number":234,"context_line":"    if [[ \"$pf_mode_str\" \u003d~ ^(sriov[[:space:]]*)+$ ]]; then"},{"line_number":235,"context_line":"        : # all sriov, no pf_mode needed"},{"line_number":236,"context_line":"    else"},{"line_number":237,"context_line":"        mod_args+\u003d\" pf_mode\u003d$pf_mode_str\""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"d039bb5d_7dcfa53c","line":234,"updated":"2026-07-24 11:35:54.000000000","message":"The regex used to detect whether all PFs are sriov (so pf_mode can be omitted from modprobe) does not account for the comma separators that pci_sim_build_pf_mode_string produces. As a result, the optimization never fires when there are 2+ PFs, including the default configuration.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: The all-sriov short-circuit never fires for multi-PF configurations (the default is 2 PFs). The module receives pf_mode\u003dsriov,sriov which is functionally harmless since the kernel defaults to sriov, but the intended optimization is silently broken and the logic is misleading to future maintainers.\n\n**Suggestion**:\nChange the regex to account for commas, e.g. \u0027^(sriov,)*sriov$\u0027 or use a simpler check such as verifying that every element of PCI_SIM_PF_MODES equals \u0027sriov\u0027 in a loop.","commit_id":"89776f318e8d60c79e81f26d9715dc7f9659cc91"},{"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":"f5f0d14ec288a6fa877b2d98c081ea7ab4aeee6a","unresolved":false,"context_lines":[{"line_number":399,"context_line":"            continue"},{"line_number":400,"context_line":"        fi"},{"line_number":401,"context_line":"        target\u003d$(pci_sim_pf_target \"$pci_index\")"},{"line_number":402,"context_line":"        if [[ $target \u003d\u003d \"$wanted_target\" \\"},{"line_number":403,"context_line":"              \u0026\u0026 $(pci_sim_pf_mode \"$index\") \u003d\u003d sriov ]]; then"},{"line_number":404,"context_line":"            mapfile -t pf_vfs \u003c \u003c(pci_sim_find_vfs_for_pf \"$pf\")"},{"line_number":405,"context_line":"            printf \u0027%s\\n\u0027 \"${pf_vfs[@]}\""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"c0f41a0e_2a4d72d2","line":402,"updated":"2026-07-24 11:35:54.000000000","message":"The condition inside the sriov PF branch redundantly re-checks pci_sim_pf_mode when non-sriov PFs are already skipped by the continue guard at the top of the loop.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: The redundant condition adds noise and could confuse maintainers into thinking the guard is necessary. No functional impact since the check is always true at that point.\n\n**Recommendation**:\nRemove the \u0027\u0026\u0026 $(pci_sim_pf_mode \"$index\") \u003d\u003d sriov\u0027 clause from the condition since the continue guard above already ensures only sriov PFs reach this code.","commit_id":"89776f318e8d60c79e81f26d9715dc7f9659cc91"},{"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":"f0a053c8ea6b63f226a75d1f1842edc1090d8a0b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        fi"},{"line_number":68,"context_line":"    fi"},{"line_number":69,"context_line":"    pci_sim_compute_pf_modes"},{"line_number":70,"context_line":"    local num_unique"},{"line_number":71,"context_line":"    num_unique\u003d$(printf \u0027%s\\n\u0027 \"${PCI_SIM_PF_MODES[@]}\" | sort -u | wc -l)"},{"line_number":72,"context_line":"    if [[ $PCI_SIM_NUM_PFS -lt $num_unique ]]; then"},{"line_number":73,"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":3,"id":"f99e1ed2_2fc577d1","line":70,"updated":"2026-07-24 13:35:07.000000000","message":"The check comparing PCI_SIM_NUM_PFS against the number of unique entries in PCI_SIM_PF_MODES can never fail. After pci_sim_compute_pf_modes runs, PCI_SIM_PF_MODES always contains exactly PCI_SIM_NUM_PFS entries, so the count of unique values can never exceed PCI_SIM_NUM_PFS. The condition PCI_SIM...\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Users who set PCI_SIM_ENABLE_MDEV\u003dTrue with only one PF will not receive the intended error message; the mdev toggle is silently ignored because the round-robin assigns only sriov to the single PF. The validation block creates a false sense of safety for this edge case.\n\n**Recommendation**:\nEither remove the num_unique check if the silent-fallback behavior is acceptable, or move the validation before pci_sim_compute_pf_modes to compare the number of enabled device types (e.g. 2 when mdev is enabled) against PCI_SIM_NUM_PFS. For example: if [[ $PCI_SIM_ENABLE_MDEV \u003d\u003d True \u0026\u0026 $PCI_SIM_NUM_PFS -lt 2 ]]; then die ...; fi","commit_id":"bc316e148aa9bfd06f6f8b78fbf010d7859ff9c3"},{"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":"60b1cf99e8e5edda73bed3832d7f9a0410859f4e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        local sysfs_path\u003d\"/sys/bus/pci/devices/$pf/vf_personality\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"        if [[ -e \"$sysfs_path\" ]]; then"},{"line_number":22,"context_line":"            pci_sim_sysfs_write uart \"$sysfs_path\""},{"line_number":23,"context_line":"        else"},{"line_number":24,"context_line":"            echo \"WARNING: $sysfs_path does not exist for PF $pf\""},{"line_number":25,"context_line":"        fi"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"46a2976b_ed89145d","line":22,"updated":"2026-08-17 09:15:54.000000000","message":"pci_sim_configure_personalities calls pci_sim_sysfs_write without checking the exit status. If the write fails (e.g. -EBUSY, -EINVAL, or transient sysfs error) the function still succeeds and load_pci_sim returns normally.\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: A failed personality assignment is not reported; the resulting DevStack failure appears later in configure_pci_sim_vfs as a confusing sriov_numvfs -ENODEV error, costing debugging time in CI.\n\n**Suggestion**:\nAppend \u0027|| die $LINENO \"Failed to set vf_personality\u003duart on $pf\"\u0027 to the write (or capture the status and die with the PF name and sysfs path), matching how configure_pci_sim_vfs handles its sriov_numvfs writes.","commit_id":"91214700e105f3c882c1ce74ebea28fd6f082809"}],"doc/source/contributor/pci-sim/developer-guide.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":"fa1fee171c9ba3b7355799b57b82b75b54449225","unresolved":false,"context_lines":[{"line_number":678,"context_line":"When ``sriov_numvfs`` is written with ``0``, the PF driver calls"},{"line_number":679,"context_line":"``pci_disable_sriov()`` and marks all VFs not present."},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"VF personality"},{"line_number":682,"context_line":"--------------"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"Each PF exposes two sysfs files via the PF driver\u0027s ``dev_groups``:"}],"source_content_type":"text/x-rst","patch_set":43,"id":"71008c6f_e2b2df37","line":681,"updated":"2026-09-18 15:14:23.000000000","message":"The new \u0027VF personality\u0027 section documents that sriov_numvfs is rejected with -ENODEV until a personality is assigned, but older unmodified sections of developer-guide.rst still describe the old behavior without the prerequisite: the architecture diagram \u0027echo N \u003e /sys/bus/pci/devices/\u003cPF\u003e/sriov_numvfs\u0027 (line 102), the \u0027SR-IOV PFs, VFs, and sriov_numvfs\u0027 section presenting \u0027echo 4 | sudo tee .../sriov_numvfs\u0027 as the normal user-visible operation (line 228), the loopback-test instructions (line 515), and the \u0027Writing sriov_numvfs fails\u0027 troubleshooting entry (lines 1052-1065) whose remedy (\u0027echo 0\u0027 then \u0027echo 4\u0027) cannot fix the new -ENODEV case because it never assigns a personality.\n\n**Severity**: WARNING | **Confidence**: 0.85\n\n**Impact**: An operator following the documented \u0027normal user-visible operation\u0027 or the troubleshooting entry gets an unexplained \u0027No such device\u0027 error because the docs never mention the personality prerequisite; the documentation now contradicts the implemented behavior of the same file\u0027s module.\n\n**Suggestion**:\nUpdate the stale sections to include the personality step (e.g. \u0027echo uart \u003e /sys/bus/pci/devices/\u003cPF\u003e/vf_personality\u0027 before the first sriov_numvfs write) and add the -ENODEV/personality case to the \u0027Writing sriov_numvfs fails\u0027 troubleshooting entry.","commit_id":"badca2358c927d27e04019d19966c2c192ca2617"}],"doc/source/contributor/pci-sim/overview.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":"fd8e84781d2d6d685176b1124f280bee95dcbe7d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"before the PF can create VFs.  Currently supported personalities are"},{"line_number":19,"context_line":"``uart``; additional types (e.g. NVMe, mdev) may be added in the future."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Each PF exposes a ``vf_personality`` sysfs file that controls what type of"},{"line_number":22,"context_line":"VF device the PF creates, enabling mixed configurations on the same host."},{"line_number":23,"context_line":"PFs start with personality ``unset``; the user must assign a personality"},{"line_number":24,"context_line":"before the PF can create VFs.  Currently supported personalities are"}],"source_content_type":"text/x-rst","patch_set":13,"id":"e9a76793_2813090e","line":21,"updated":"2026-08-07 08:18:27.000000000","message":"The same five-line paragraph describing the vf_personality sysfs interface was pasted twice into overview.rst, creating a verbatim duplicate that should be removed.\n\n**Severity**: SUGGESTION | **Confidence**: 1.0\n\n**Benefit**: Redundant documentation text that reduces readability. No functional impact, but looks unprofessional in published docs.\n\n**Recommendation**:\nDelete the second copy of the paragraph (lines 21-25 plus the separating blank line) so the vf_personality description appears exactly once.","commit_id":"b59f16209ad7afbf35a71134faffdae2a3efea4b"},{"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":"47e464d8a705bf1e4d0a638601fc4aed8d0b1d9d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"That is enough to prove that a VF assigned through VFIO is visible and usable"},{"line_number":13,"context_line":"inside an unmodified guest such as CirrOS."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Each PF exposes a ``vf_personality`` sysfs file that controls what type of"},{"line_number":16,"context_line":"VF device the PF creates, enabling mixed configurations on the same host."},{"line_number":17,"context_line":"PFs start with personality ``unset``; the user must assign a personality"},{"line_number":18,"context_line":"before the PF can create VFs.  Currently supported personalities are"}],"source_content_type":"text/x-rst","patch_set":15,"id":"e1acaeed_279e668f","line":15,"updated":"2026-08-09 06:32:04.000000000","message":"The same five-line paragraph describing the vf_personality sysfs interface was pasted twice verbatim into overview.rst, creating redundant documentation content.\n\n**Severity**: WARNING | **Confidence**: 1.0\n\n**Impact**: Redundant documentation content reduces readability and signals careless editing. Readers see the same information twice with no added value.\n\n**Suggestion**:\nRemove the second copy of the paragraph (lines 21-25), keeping only a single instance after the UART loopback paragraph.","commit_id":"6fdf22d53d8eebba5ba5d315c5041391a386dfee"}],"pci-sim/README.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2f8040caef40b91e2036a27028075529a5b26c5c","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    # Change personality (must disable VFs first)"},{"line_number":38,"context_line":"    echo mdev \u003e /sys/bus/pci/devices/\u003cPF\u003e/vf_personality"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"A PF whose personality is not ``uart`` will reject ``sriov_numvfs`` writes"},{"line_number":41,"context_line":"with ``-ENODEV``.  Personality changes are rejected with ``-EBUSY`` while"},{"line_number":42,"context_line":"VFs are active."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Local helpers"},{"line_number":45,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"c1ded787_4073bb12","line":42,"range":{"start_line":40,"start_character":0,"end_line":42,"end_character":15},"updated":"2026-07-29 13:36:14.000000000","message":"so my inclition is to say when the pf is created vf_personality shoudl be empty\n\nand until a valid value is proved from the vf_personality_available set vf creation shoudl be rejected\n\nis that what you actully ment and uart is just and example\n\ni think this is currently a littel confugion because you are talkign about a value that does nto exsit yet and also saying that uart will be the defualt\n\na better approch woudl be to remove the concept of a defult and make setting personatliy a  required action.","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"957265d233ce4bb361f9dbe14d51afb183e0686b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    # Change personality (must disable VFs first)"},{"line_number":38,"context_line":"    echo mdev \u003e /sys/bus/pci/devices/\u003cPF\u003e/vf_personality"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"A PF whose personality is not ``uart`` will reject ``sriov_numvfs`` writes"},{"line_number":41,"context_line":"with ``-ENODEV``.  Personality changes are rejected with ``-EBUSY`` while"},{"line_number":42,"context_line":"VFs are active."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Local helpers"},{"line_number":45,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"cd45c744_e7c618f6","line":42,"range":{"start_line":40,"start_character":0,"end_line":42,"end_character":15},"in_reply_to":"580b61f2_afbff1e1","updated":"2026-08-04 16:13:56.000000000","message":"Done","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"db5c9b111e8724fb466e73af2d4f57b546d7c795","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    # Change personality (must disable VFs first)"},{"line_number":38,"context_line":"    echo mdev \u003e /sys/bus/pci/devices/\u003cPF\u003e/vf_personality"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"A PF whose personality is not ``uart`` will reject ``sriov_numvfs`` writes"},{"line_number":41,"context_line":"with ``-ENODEV``.  Personality changes are rejected with ``-EBUSY`` while"},{"line_number":42,"context_line":"VFs are active."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Local helpers"},{"line_number":45,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"580b61f2_afbff1e1","line":42,"range":{"start_line":40,"start_character":0,"end_line":42,"end_character":15},"in_reply_to":"8f8a3cb8_156e4397","updated":"2026-07-29 14:05:00.000000000","message":"I added some mentions to mdev to help clarify the usage, but I can remove them entirely from this patch if they are confusing. About the default, I was debating whether to have a default or not, both seemed reasonable and I opted by mainting the current behaviour, but I\u0027ll try having no default in the next patchset to compare","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a01b7bf4120d4f8fbf6748c77f768145b1e96e3c","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    # Change personality (must disable VFs first)"},{"line_number":38,"context_line":"    echo mdev \u003e /sys/bus/pci/devices/\u003cPF\u003e/vf_personality"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"A PF whose personality is not ``uart`` will reject ``sriov_numvfs`` writes"},{"line_number":41,"context_line":"with ``-ENODEV``.  Personality changes are rejected with ``-EBUSY`` while"},{"line_number":42,"context_line":"VFs are active."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Local helpers"},{"line_number":45,"context_line":"-------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"8f8a3cb8_156e4397","line":42,"range":{"start_line":40,"start_character":0,"end_line":42,"end_character":15},"in_reply_to":"c1ded787_4073bb12","updated":"2026-07-29 13:37:58.000000000","message":"we coudl have an explcit `unset` value if that helps simpfy the code in the enum as the \"defualt\"","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"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":"501d9fb11c4966dcf64a188f29d2478c63859154","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    # Assign the uart personality (required before enabling VFs)"},{"line_number":40,"context_line":"    echo uart \u003e /sys/bus/pci/devices/\u003cPF\u003e/vf_personality"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"A PF whose personality is not ``uart`` will reject ``sriov_numvfs`` writes"},{"line_number":43,"context_line":"with ``-ENODEV``.  Personality changes are rejected with ``-EBUSY`` while"},{"line_number":44,"context_line":"VFs are active."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":38,"id":"0bfd7240_9e8e2c82","line":42,"updated":"2026-09-03 18:31:17.000000000","message":"README.rst, developer-guide.rst, and the commit message state that a PF whose personality is not uart \u0027will reject sriov_numvfs writes with -ENODEV\u0027, without qualification. However, in fake_pci_sriov_configure() the !num_vfs branch (pci-sim/fake_pci_sriov_cfg.c:481-485) disables SR-IOV and returns 0 before the personality check is ever reached, so writing 0 to sriov_numvfs always succeeds regardless of personality (including the default \u0027unset\u0027).\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Impact**: An operator or test author reading the new interface documentation would expect disabling VFs on an unset/non-uart PF to fail with ENODEV and might write tooling around that assumption, when the write in fact always succeeds. The documented error contract is imprecise for the num_vfs\u003d0 case.\n\n**Recommendation**:\nQualify the claim in README.rst, developer-guide.rst (and ideally the future commit message wording): non-zero sriov_numvfs writes are rejected with -ENODEV, while writing 0 to disable VFs always succeeds regardless of personality. A one-line wording change per document is sufficient.","commit_id":"04d29c755ed78b08b108caffea8997a9d45cc49f"}],"pci-sim/fake_pci_sriov.h":[{"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":"f080a54bda19896fc5b3200d880a0066c10f12da","unresolved":false,"context_lines":[{"line_number":105,"context_line":"\tenum pci_sim_vf_personality personality;"},{"line_number":106,"context_line":"\tint num_vfs_enabled;"},{"line_number":107,"context_line":"\tint domain_nr;"},{"line_number":108,"context_line":"\tstruct mutex lock; /* Protects VF enable/disable state. */"},{"line_number":109,"context_line":"};"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"struct pci_sim_uart {"}],"source_content_type":"text/x-csrc","patch_set":10,"id":"5f13dbd6_a83a79fd","line":108,"updated":"2026-08-03 08:12:20.000000000","message":"The mutex comment in struct fake_pci_host says only \u0027Protects VF enable/disable state\u0027 but the lock now also protects the personality field during concurrent vf_personality_store and sriov_configure operations. A stale comment creates real maintenance risk.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: A future developer reading the comment or developer guide could access host-\u003epersonality without acquiring host-\u003elock, introducing a race condition between personality reads/writes and SR-IOV configure. The concurrent-access scenario is explicitly described in the commit message as the reason for...\n\n**Recommendation**:\nUpdate the inline comment to: /* Protects VF enable/disable state and personality. */ Also update the developer-guide.rst \u0027Use the right lock for the data\u0027 section entry for host-\u003elock to mention personality protection.","commit_id":"4defd35a0cb4e409835b27533c546161f2ed31d1"},{"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":"ced86ab71f193641bffdcd84acba2e5c8d6b454e","unresolved":false,"context_lines":[{"line_number":105,"context_line":"\tenum pci_sim_vf_personality personality;"},{"line_number":106,"context_line":"\tint num_vfs_enabled;"},{"line_number":107,"context_line":"\tint domain_nr;"},{"line_number":108,"context_line":"\tstruct mutex lock; /* Protects VF enable/disable state. */"},{"line_number":109,"context_line":"};"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"struct pci_sim_uart {"}],"source_content_type":"text/x-csrc","patch_set":19,"id":"84570946_07f7dccd","line":108,"updated":"2026-08-12 16:26:33.000000000","message":"The host-\u003elock mutex comment in fake_pci_sriov.h says \u0027Protects VF enable/disable state\u0027 but this patch adds host-\u003epersonality to the same struct and protects it with the same lock in vf_personality_store and fake_pci_sriov_configure. The comment should be updated to reflect the expanded scope.\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: Future developers reading the lock comment may not realize that host-\u003epersonality must be accessed under host-\u003elock, potentially introducing lockless accesses or lock-ordering bugs.\n\n**Recommendation**:\nUpdate the comment to reflect the expanded scope, e.g.: /* Protects VF enable/disable state and personality. */","commit_id":"ef95f594e48c02749d4ac4bb3d36587d7585a227"}],"pci-sim/fake_pci_sriov_cfg.c":[{"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":"5598951316dafbec3834cd55cf44151e9c0df992","unresolved":false,"context_lines":[{"line_number":497,"context_line":"\t\tmutex_unlock(\u0026host-\u003elock);"},{"line_number":498,"context_line":"\t\treturn -EBUSY;"},{"line_number":499,"context_line":"\t}"},{"line_number":500,"context_line":"\tmutex_unlock(\u0026host-\u003elock);"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"\thandle_sriov_numvfs_write(host, num_vfs);"},{"line_number":503,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":4,"id":"59ffd7ce_56faf920","line":500,"updated":"2026-07-28 17:03:05.000000000","message":"The mutex is released after the personality and num_vfs_enabled checks but before handle_sriov_numvfs_write sets num_vfs_enabled, leaving a window where a concurrent vf_personality_store can change the PF personality while VF creation proceeds.\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: A concurrent vf_personality_store can change the PF personality from uart to mdev between the personality check and VF creation, resulting in SR-IOV VFs being enabled on a non-uart PF. The misleading comment could also cause future developers to rely on non-existent protection.\n\n**Suggestion**:\nHold host-\u003elock across handle_sriov_numvfs_write by refactoring it into a locked helper (__handle_sriov_numvfs_write_locked) called within the existing locked region, or set a \u0027vf_creation_in_progress\u0027 flag under the lock before releasing and check it in vf_personality_store.","commit_id":"4a9886992b69a702597bb7428205fd0ab9710161"},{"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":"6ec01f86ccfc52ac6e8f60135584bcef36ebb158","unresolved":false,"context_lines":[{"line_number":484,"context_line":"\t * so that a concurrent vf_personality_store cannot change the"},{"line_number":485,"context_line":"\t * personality between the check and VF creation."},{"line_number":486,"context_line":"\t */"},{"line_number":487,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":488,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":489,"context_line":"\t\tpci_info(pdev,"},{"line_number":490,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","}],"source_content_type":"text/x-csrc","patch_set":6,"id":"574fa4c4_c12ad719","line":487,"updated":"2026-07-28 17:45:52.000000000","message":"The comment at lines 482-486 claims host-\u003elock is held across personality and num_vfs_enabled checks to prevent a concurrent vf_personality_store from changing the personality between the check and VF creation. But the lock is released at line 500 before calling handle_sriov_numvfs_write and pci_...\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: In a concurrent scenario (writing sriov_numvfs and vf_personality on the same PF simultaneously), VFs could be created on a PF whose personality was just changed away from UART, violating the intended isolation between personality types. For a test/sim module the practical risk is low, but the co...\n\n**Suggestion**:\nEither hold host-\u003elock continuously from the personality check through handle_sriov_numvfs_write (by creating a locked helper variant), or correct the comment to accurately reflect that the lock only protects the check. The cleanest fix: split handle_sriov_numvfs_write into a __handle_sriov_numvfs_write that assumes the lock is held, call it under the existing lock, then release before pci_enable_sriov.","commit_id":"8ac5a938c87c39b58f4664235f20365da075b5e6"},{"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":"a24906f8bcf46838c72f7b0cdba7fa6de6b1098d","unresolved":false,"context_lines":[{"line_number":484,"context_line":"\t * so that a concurrent vf_personality_store cannot change the"},{"line_number":485,"context_line":"\t * personality between the check and VF creation."},{"line_number":486,"context_line":"\t */"},{"line_number":487,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":488,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":489,"context_line":"\t\tpci_info(pdev,"},{"line_number":490,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","}],"source_content_type":"text/x-csrc","patch_set":7,"id":"eae1a56c_4db346e7","line":487,"updated":"2026-07-29 10:45:51.000000000","message":"In fake_pci_sriov_configure(), host-\u003elock is held only for the personality and num_vfs_enabled checks (lines 487-500) and then released before handle_sriov_numvfs_write() is called at line 502. This creates a TOCTOU window where a concurrent vf_personality_store() can change the personality betwe...\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: A PF whose personality was changed to mdev between the check and VF creation could end up with active SR-IOV VFs, violating the core invariant that only the uart personality supports SR-IOV. This could cause confusing test failures or inconsistent device state. While the race window is small and...\n\n**Priority**: Before merge\n**Why This Matters**: A PF whose personality was changed to mdev between the check and VF creation could end up with active SR-IOV VFs, violating the core invariant that only the uart personality supports SR-IOV. This could cause confusing test failures or inconsistent device state. While the race window is small and...\n\n**Recommendation**:\nRefactor handle_sriov_numvfs_write to provide a locked variant (e.g., __handle_sriov_numvfs_write) that assumes the caller holds host-\u003elock. Then in fake_pci_sriov_configure, hold host-\u003elock from the personality/num_vfs_enabled checks through the num_vfs_enabled update, so the personality cannot change between check and use. Alternatively, set num_vfs_enabled before releasing the lock so vf_personality_store sees VFs as active and returns -EBUSY.","commit_id":"734e2cd8b07bf5978c9aa8dd13b0d73d790d9754"},{"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":"6e0c68c1ca0cf357bf25bff32bc02245d1eca449","unresolved":false,"context_lines":[{"line_number":490,"context_line":"\t * personality between the check and VF creation."},{"line_number":491,"context_line":"\t */"},{"line_number":492,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":493,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":494,"context_line":"\t\tpci_info(pdev,"},{"line_number":495,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","},{"line_number":496,"context_line":"\t\t\t pci_sim_personality_names[host-\u003epersonality]);"}],"source_content_type":"text/x-csrc","patch_set":20,"id":"5016a2a4_43fddf54","line":493,"updated":"2026-08-13 07:05:56.000000000","message":"The patch defaults PF personality to \u0027unset\u0027 and rejects sriov_numvfs writes with -ENODEV when personality is not \u0027uart\u0027. However, three pre-existing test scripts write to sriov_numvfs without first setting vf_personality: test_pci_sim_loopback.py (line 90), run_fake_pci_multi_pf_smoke.sh (lines...\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: The make test-host target (which runs test-loopback and test-multi-pf) will fail. The developer guide documents these as the primary local validation steps. The QEMU/VFIO smoke test is also broken, preventing VFIO regression testing.\n\n**Priority**: Before merge\n**Why This Matters**: The make test-host target (which runs test-loopback and test-multi-pf) will fail. The developer guide documents these as the primary local validation steps. The QEMU/VFIO smoke test is also broken, preventing VFIO regression testing.\n\n**Recommendation**:\nAdd a vf_personality write (echo uart \u003e vf_personality or equivalent) in test_pci_sim_loopback.py before set_numvfs, and in run_fake_pci_multi_pf_smoke.sh and run_fake_pci_qemu_vfio_smoke.sh before writing sriov_numvfs. Alternatively, add a helper function that sets personality before VF creation.","commit_id":"8a32a3256a3c1277ce44652bcc1228ec4eac5bc7"},{"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":"68d79c7540496538f26385b24a44861f51118836","unresolved":false,"context_lines":[{"line_number":490,"context_line":"\t * personality between the check and VF creation."},{"line_number":491,"context_line":"\t */"},{"line_number":492,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":493,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":494,"context_line":"\t\tpci_info(pdev,"},{"line_number":495,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","},{"line_number":496,"context_line":"\t\t\t pci_sim_personality_names[host-\u003epersonality]);"}],"source_content_type":"text/x-csrc","patch_set":21,"id":"9b48b67b_c16e2f54","line":493,"updated":"2026-08-13 15:41:45.000000000","message":"The new default of PCI_SIM_VF_PERS_UNSET makes sriov_numvfs writes fail with -ENODEV, but the pre-existing multi-PF and QEMU/VFIO smoke scripts never set vf_personality, so they now fail whenever they load the module themselves.\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: make test-multi-pf and the QEMU/VFIO smoke test fail on a fresh module load; kernel-conventions.rst lists test-multi-pf as a required check for behavior changes, so contributors following the documented validation procedure hit failures.\n\n**Priority**: Before merge\n**Why This Matters**: make test-multi-pf and the QEMU/VFIO smoke test fail on a fresh module load; kernel-conventions.rst lists test-multi-pf as a required check for behavior changes, so contributors following the documented validation procedure hit failures.\n\n**Recommendation**:\nSet vf_personality to uart on each PF before enabling VFs in run_fake_pci_multi_pf_smoke.sh and run_fake_pci_qemu_vfio_smoke.sh (or share a small helper), matching what run_fake_pci_personality_smoke.sh already does.","commit_id":"2904d3a0fe78aaf75564ca1a8a63aed5f7caa904"},{"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":"21391c3f0d4e4336418fe6bb83d1ba81023057e1","unresolved":false,"context_lines":[{"line_number":490,"context_line":"\t * personality between the check and VF creation."},{"line_number":491,"context_line":"\t */"},{"line_number":492,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":493,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":494,"context_line":"\t\tpci_info(pdev,"},{"line_number":495,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","},{"line_number":496,"context_line":"\t\t\t pci_sim_personality_names[host-\u003epersonality]);"}],"source_content_type":"text/x-csrc","patch_set":22,"id":"0c43a643_105e81dc","line":493,"updated":"2026-08-14 17:07:43.000000000","message":"PFs now start with personality unset and sriov_configure returns -ENODEV for non-uart personalities, but the pre-existing smoke tests that enable VFs never assign a personality, so their VF-enable writes are rejected and their VF-count assertions fail.\n\n**Severity**: CRITICAL | **Confidence**: 0.9\n\n**Risk**: run_fake_pci_multi_pf_smoke.sh and run_fake_pci_qemu_vfio_smoke.sh fail after this patch lands; developer verification and any CI invoking them reports broken VF creation.\n\n**Priority**: Immediate\n**Why This Matters**: run_fake_pci_multi_pf_smoke.sh and run_fake_pci_qemu_vfio_smoke.sh fail after this patch lands; developer verification and any CI invoking them reports broken VF creation.\n\n**Recommendation**:\nAfter module load and before enabling VFs, write \u0027uart\u0027 to each PF\u0027s vf_personality sysfs file in run_fake_pci_multi_pf_smoke.sh and run_fake_pci_qemu_vfio_smoke.sh, mirroring pci_sim_configure_personalities in devstack/lib/pci_sim.","commit_id":"1403576271197363227f163a4f018e737bb1d4dd"},{"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":"21391c3f0d4e4336418fe6bb83d1ba81023057e1","unresolved":false,"context_lines":[{"line_number":584,"context_line":"\t}"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"\tif (len \u003e 0)"},{"line_number":587,"context_line":"\t\tbuf[len - 1] \u003d \u0027\\n\u0027;"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"\treturn len;"},{"line_number":590,"context_line":"}"}],"source_content_type":"text/x-csrc","patch_set":22,"id":"79c45eb4_629b7a87","line":587,"updated":"2026-08-14 17:07:43.000000000","message":"The available-personalities show function counts the trailing space in len, then replaces that last byte with a newline and returns the unadjusted len, so the returned byte count is one more than the bytes actually populated.\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: A read() using the returned length exposes one stale/garbage byte after the newline, and the output deviates from the cpufreq convention the patch and docs claim to follow.\n\n**Suggestion**:\nReturn len - 1 after replacing the trailing space with the newline (or build the line without a trailing space via sysfs_emit_at), e.g. \u0027buf[len - 1] \u003d \u0027\\n\u0027; return len - 1;\u0027.","commit_id":"1403576271197363227f163a4f018e737bb1d4dd"},{"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":"60b1cf99e8e5edda73bed3832d7f9a0410859f4e","unresolved":false,"context_lines":[{"line_number":298,"context_line":"}"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"static void handle_sriov_numvfs_write(struct fake_pci_host *host, u16 num_vfs);"},{"line_number":301,"context_line":"static void locked_handle_sriov_numvfs_write(struct fake_pci_host *host, u16 num_vfs);"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"static bool fake_pci_is_sriov_cfg(int where)"},{"line_number":304,"context_line":"{"}],"source_content_type":"text/x-csrc","patch_set":24,"id":"0c566464_174156d2","line":301,"updated":"2026-08-17 09:15:54.000000000","message":"Three lines added by this patch are longer than the Linux kernel 80-column limit: the forward declaration (86 cols) and definition (85 cols) of locked_handle_sriov_numvfs_write, and the pci_info rejection message string (85 cols).\n\n**Severity**: SUGGESTION | **Confidence**: 0.9\n\n**Benefit**: checkpatch.pl reports \u0027WARNING: line over 80 characters\u0027 for the module, inconsistent with the rest of the file which is clean; minor readability and CI/checkpatch noise.\n\n**Recommendation**:\nWrap the locked_handle_sriov_numvfs_write declaration/definition arguments onto continuation lines and split the pci_info format string, keeping every line at or under 80 columns.","commit_id":"91214700e105f3c882c1ce74ebea28fd6f082809"},{"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":"768a264d4849cc622dfa96e05361a86c4006c049","unresolved":false,"context_lines":[{"line_number":490,"context_line":"\t * personality between the check and VF creation."},{"line_number":491,"context_line":"\t */"},{"line_number":492,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":493,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":494,"context_line":"\t\tpci_info(pdev,"},{"line_number":495,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","},{"line_number":496,"context_line":"\t\t\t pci_sim_personality_names[host-\u003epersonality]);"}],"source_content_type":"text/x-csrc","patch_set":25,"id":"78cce531_4fef6f0c","line":493,"updated":"2026-08-18 07:42:46.000000000","message":"The change makes every PF start with personality \u0027unset\u0027 and rejects VF enable in fake_pci_sriov_configure() with -ENODEV unless the personality is \u0027uart\u0027. The existing host-side tests load the module standalone and write sriov_numvfs \u003e 0 without ever setting vf_personality, so their sysfs writes now fail. Affected: pci-sim/run_fake_pci_multi_pf_smoke.sh:111 (echo 1 \u003e sriov_numvfs under set -euo pipefail), pci-sim/test_pci_sim_loopback.py:277 (set_numvfs(pf, args.vfs), used by --reload flow), pci-sim/run_fake_pci_qemu_vfio_smoke.sh:105. Only the new personality smoke script and the DevStack path (pci_sim_configure_personalities) were updated; DevStack avoids the breakage only because load_pci_sim now writes uart to every PF before configure_pci_sim_vfs runs.\n\n**Severity**: HIGH | **Confidence**: 0.85\n\n**Impact**: \u0027make test\u0027 / \u0027make test-host\u0027 in pci-sim now fail, and the documented manual host tests (doc/source/contributor/pci-sim/testing.rst, README.rst) and the QEMU/VFIO smoke flow no longer work on a fresh module load. For a test-harness module this disables the supported verification path the module exists to provide.\n\n**Priority**: Before merge\n**Recommendation**:\nTeach the existing loaders to set the personality before enabling VFs: in run_fake_pci_multi_pf_smoke.sh, run_fake_pci_qemu_vfio_smoke.sh, and test_pci_sim_loopback.py write \u0027uart\u0027 to /sys/bus/pci/devices/\u003cPF\u003e/vf_personality for each PF right after module load (mirroring pci_sim_configure_personalities), or reuse a shared helper. Alternatively keep DevStack behavior identical by adding a module parameter that defaults the personality to uart, though updating the scripts is the smaller fix.","commit_id":"2fd36a1f31ae07e0c2da3e30f9c6d807b2dd7533"},{"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":"e97c552c9f2c51c76f78821110ccd0f328c13d6c","unresolved":false,"context_lines":[{"line_number":490,"context_line":"\t * personality between the check and VF creation."},{"line_number":491,"context_line":"\t */"},{"line_number":492,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":493,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":494,"context_line":"\t\tpci_info(pdev,"},{"line_number":495,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","},{"line_number":496,"context_line":"\t\t\t pci_sim_personality_names[host-\u003epersonality]);"}],"source_content_type":"text/x-csrc","patch_set":26,"id":"c174bb68_e7d9910d","line":493,"updated":"2026-08-21 13:00:54.000000000","message":"The change initializes every PF to PCI_SIM_VF_PERS_UNSET (fake_pci_sriov_core.c:365) and makes fake_pci_sriov_configure() return -ENODEV whenever host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART (fake_pci_sriov_cfg.c:493-499). Several unmodified in-repo helpers write sriov_numvfs directly without ever setting vf_personality, so their VF-enable writes now fail and their subsequent VF-count/QEMU/guest assertions break.\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Impact**: After this patch lands, run_fake_pci_multi_pf_smoke.sh, run_fake_pci_qemu_vfio_smoke.sh, both CirrOS VFIO guest tests, and test_pci_sim_loopback.py can no longer create VFs and will fail, breaking the documented local and CI test paths for pci-sim.\n\n**Priority**: Before merge\n**Recommendation**:\nUpdate the existing helpers to write \u0027uart\u0027 to each PF\u0027s vf_personality before enabling VFs (a tiny shared helper or a few lines per script mirrors pci_sim_configure_personalities), or provide a module parameter to set the initial personality so existing workflows keep working.","commit_id":"8117592524cb42766ad0b721c5619cfeea8df514"},{"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":"3d8b2452c42c22102925b1281fb5481acd356e3e","unresolved":false,"context_lines":[{"line_number":491,"context_line":"\t * personality between the check and VF creation."},{"line_number":492,"context_line":"\t */"},{"line_number":493,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":494,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":495,"context_line":"\t\tpci_info(pdev,"},{"line_number":496,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","},{"line_number":497,"context_line":"\t\t\t pci_sim_personality_names[host-\u003epersonality]);"}],"source_content_type":"text/x-csrc","patch_set":34,"id":"510abbde_5c1c512b","line":494,"updated":"2026-08-31 13:37:56.000000000","message":"The patch makes every PF start with personality PCI_SIM_VF_PERS_UNSET and makes fake_pci_sriov_configure() return -ENODEV for any personality other than uart. Only the DevStack plugin (pci_sim_configure_personalities) and the new run_fake_pci_personality_smoke.sh were updated to assign a personality. The four pre-existing host-side helpers load the module fresh and then write sriov_numvfs without ever writing vf_personality, so their VF-enable step is now rejected with -ENODEV and every one of these documented tests fails.\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Impact**: run_fake_pci_multi_pf_smoke.sh fails on every run; run_fake_pci_qemu_vfio_smoke.sh and both cirros helpers fail on any fresh module load (the default for the cirros helpers). These are the documented manual tests for the pci-sim module and its VFIO/guest flows, so contributors can no longer run them as documented.\n\n**Priority**: Before merge\n**Recommendation**:\nUpdate the four scripts to write `uart` to /sys/bus/pci/devices/\u003cPF\u003e/vf_personality right after loading the module (a small shared helper or a per-script loop mirroring pci_sim_configure_personalities is enough). Alternatively add a module parameter for the default personality so the legacy single-personality flow keeps working unchanged.","commit_id":"77bb8f79b5e9a79a6c22fc0f43f8d97d32ab60e6"},{"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":"1df45021cc6df56ba467fa7bd1c0d7a18718c683","unresolved":false,"context_lines":[{"line_number":490,"context_line":"\t * personality between the check and VF creation."},{"line_number":491,"context_line":"\t */"},{"line_number":492,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":493,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":494,"context_line":"\t\tpci_info(pdev,"},{"line_number":495,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","},{"line_number":496,"context_line":"\t\t\t pci_sim_personality_names[host-\u003epersonality]);"}],"source_content_type":"text/x-csrc","patch_set":37,"id":"f1f77aa9_ec105c09","line":493,"updated":"2026-09-01 11:45:10.000000000","message":"fake_pci_sriov_configure() now rejects any sriov_numvfs write \u003e 0 with -ENODEV unless host-\u003epersonality \u003d\u003d PCI_SIM_VF_PERS_UART, and every host is initialized to PCI_SIM_VF_PERS_UNSET. The change only updates the DevStack plugin to assign personalities; the four pre-existing helper scripts that insmod the module and immediately enable VFs never write vf_personality, so their sriov_numvfs writes now fail and zero VFs are created.\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Impact**: All documented host-side VF tests except the newly added personality smoke test regress: contributors rebuilding the module and running the multi-PF, QEMU/VFIO, or CirrOS guest loopback tests get VF-count or VFIO-bind failures, so those validation paths can no longer be used to verify the module.\n\n**Priority**: Before merge\n**Recommendation**:\nAfter insmod and PF discovery in each affected script (or in a small shared helper), write \u0027uart\u0027 to /sys/bus/pci/devices/$pf/vf_personality for every PF before writing sriov_numvfs, mirroring pci_sim_configure_personalities in devstack/lib/pci_sim. Also consider noting the new prerequisite in the \u0027Local helpers\u0027 section of pci-sim/README.rst.","commit_id":"4b8c1b1de4b28dbc143abe449c4d37d3b36d2cfe"},{"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":"496c2d683b5a897eac0ec9d220d08834dbf49d4e","unresolved":false,"context_lines":[{"line_number":490,"context_line":"\t * personality between the check and VF creation."},{"line_number":491,"context_line":"\t */"},{"line_number":492,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":493,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":494,"context_line":"\t\tpci_info(pdev,"},{"line_number":495,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","},{"line_number":496,"context_line":"\t\t\t pci_sim_personality_names[host-\u003epersonality]);"}],"source_content_type":"text/x-csrc","patch_set":40,"id":"3f8b1062_09fbcbba","line":493,"updated":"2026-09-04 08:10:38.000000000","message":"PFs now initialize to PCI_SIM_VF_PERS_UNSET and fake_pci_sriov_configure returns -ENODEV unless the personality is uart. Only the DevStack plugin path assigns personalities after module load. Three pre-existing, documented workflows enable VFs directly via sriov_numvfs without ever writing vf_personality, so their VF-enable step now fails and each script/test aborts.\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Impact**: After a plain module load, the multi-PF smoke test, the QEMU/VFIO smoke test, and the documented host loopback test all fail at their first sriov_numvfs write with -ENODEV. Contributors following testing.rst or README.rst hit immediate failures in workflows the change\u0027s own docs still present as working.\n\n**Priority**: Before merge\n**Recommendation**:\nAssign the uart personality in the affected entry points before enabling VFs: have test_pci_sim_loopback.py, run_fake_pci_multi_pf_smoke.sh, and run_fake_pci_qemu_vfio_smoke.sh write \u0027uart\u0027 to /sys/bus/pci/devices/\u003cPF\u003e/vf_personality (ideally via a shared helper mirroring the new smoke script), or provide a module parameter that selects the default personality so standalone workflows keep working. Update testing.rst/README.rst to match.","commit_id":"ab86f8495bd9fbff104f90415efee879ca3cffd3"},{"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":"8f1cc69602818daff963cf0b5c569c3daa3d08df","unresolved":false,"context_lines":[{"line_number":490,"context_line":"\t * personality between the check and VF creation."},{"line_number":491,"context_line":"\t */"},{"line_number":492,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":493,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":494,"context_line":"\t\tpci_info(pdev,"},{"line_number":495,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","},{"line_number":496,"context_line":"\t\t\t pci_sim_personality_names[host-\u003epersonality]);"}],"source_content_type":"text/x-csrc","patch_set":41,"id":"9f1f4697_bb27e02b","line":493,"updated":"2026-09-05 05:37:42.000000000","message":"PFs now start with PCI_SIM_VF_PERS_UNSET and fake_pci_sriov_configure() returns -ENODEV for any non-uart personality, but the change does not update the existing consumers that enable VFs directly. run_fake_pci_multi_pf_smoke.sh:111 (runs under \u0027set -euo pipefail\u0027), run_fake_pci_qemu_vfio_smoke.sh:105, and test_pci_sim_loopback.py:90 all write sriov_numvfs \u003e 0 without ever writing vf_personality. The kernel sriov_numvfs sysfs path calls the driver\u0027s sriov_configure callback, so these writes now fail with -ENODEV and no VF is ever created (the multi-PF script aborts on the tee pipeline; the qemu script fails its subsequent VF presence check; the loopback test gets an OSError).\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Impact**: Three documented host-side test workflows stop working immediately after this change, producing confusing ENODEV write errors instead of VFs. The multi-PF smoke script aborts early; the QEMU/VFIO and CirrOS-loopback paths can no longer create VFs at all.\n\n**Priority**: Before merge\n**Recommendation**:\nIn the same change, make the existing consumers assign the uart personality before enabling VFs (e.g. \u0027echo uart | sudo -n tee /sys/bus/pci/devices/$pf/vf_personality \u003e/dev/null\u0027, guarded like the devstack helper for older modules) in run_fake_pci_multi_pf_smoke.sh, run_fake_pci_qemu_vfio_smoke.sh, and test_pci_sim_loopback.py. Alternatively default new PFs to PCI_SIM_VF_PERS_UART and require explicit unset for future personalities, but updating the callers is the smaller, intent-preserving fix.","commit_id":"cedf693357207168a2b72f581e90accfceb60638"},{"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":"211efdba91f01bd997fd77f6a79031d5df164b22","unresolved":false,"context_lines":[{"line_number":489,"context_line":"\t * so that a concurrent vf_personality_store cannot change the"},{"line_number":490,"context_line":"\t * personality between the check and VF creation."},{"line_number":491,"context_line":"\t */"},{"line_number":492,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":493,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":494,"context_line":"\t\tpci_info(pdev,"},{"line_number":495,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","}],"source_content_type":"text/x-csrc","patch_set":42,"id":"bf1c33cb_0bb52cb0","line":492,"updated":"2026-09-07 16:33:09.000000000","message":"The new guard in fake_pci_sriov_configure() returns -ENODEV unless host-\u003epersonality \u003d\u003d PCI_SIM_VF_PERS_UART, and fake_pci_sriov_core.c now initializes each host to PCI_SIM_VF_PERS_UNSET. The change updates DevStack (load_pci_sim now calls pci_sim_configure_personalities) and adds a new personality smoke test, but none of the pre-existing in-repo workflows that enable VFs were updated to assign a personality first, so they all fail against a freshly loaded module.\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Impact**: make test-host (test-loopback + test-multi-pf), the QEMU VFIO smoke test, and both CirrOS guest-probe helpers fail immediately after this change, breaking the project\u0027s own documented validation workflow for any runtime-behavior change.\n\n**Priority**: Before merge\n**Recommendation**:\nIn each consumer, write \u0027uart\u0027 to /sys/bus/pci/devices/$PF/vf_personality for every PF after module load and before writing sriov_numvfs (a small shared helper or an early loop in each script/Python test is enough). Alternatively, consider a module parameter to set the default personality so existing workflows keep working; the per-PF echo is the smallest safe fix.","commit_id":"6d6170581beced50c91be40846d6a8b63bbb6e0e"},{"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":"fa1fee171c9ba3b7355799b57b82b75b54449225","unresolved":false,"context_lines":[{"line_number":490,"context_line":"\t * so that a concurrent vf_personality_store cannot change the"},{"line_number":491,"context_line":"\t * personality between the check and VF creation."},{"line_number":492,"context_line":"\t */"},{"line_number":493,"context_line":"\tmutex_lock(\u0026host-\u003elock);"},{"line_number":494,"context_line":"\tif (host-\u003epersonality !\u003d PCI_SIM_VF_PERS_UART) {"},{"line_number":495,"context_line":"\t\tpci_info(pdev,"},{"line_number":496,"context_line":"\t\t\t \"fake_pci: sriov_configure rejected; personality \u0027%s\u0027 does not support SR-IOV\\n\","}],"source_content_type":"text/x-csrc","patch_set":43,"id":"22869b89_e91217ef","line":493,"updated":"2026-09-18 15:14:23.000000000","message":"This commit makes every PF start with personality \u0027unset\u0027 (fake_pci_sriov_core.c:365) and rejects sriov_numvfs writes with -ENODEV unless the personality is \u0027uart\u0027 (fake_pci_sriov_cfg.c:493-500). Only the DevStack plugin (pci_sim_configure_personalities) and the new personality smoke test were updated to assign a personality. The pre-existing pci-sim helpers that enable VFs directly on a freshly loaded module were not updated, so they now fail with -ENODEV: run_fake_pci_multi_pf_smoke.sh (make test-multi-pf), test_pci_sim_loopback.py (make test-loopback), run_fake_pci_qemu_vfio_smoke.sh, run_cirros_vfio_guest_probe.sh, and run_cirros_vfio_userdata_echo.sh.\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Impact**: After this commit, \u0027make test-host\u0027 (test-loopback + test-multi-pf) and the VFIO/QEMU/Cirros helper tests fail immediately: the sriov_numvfs write returns -ENODEV, tee exits non-zero under set -euo pipefail, and the scripts abort. The project convention that behavior changes pass these smoke tests can no longer be met at this commit, and the rest of the series inherits the breakage.\n\n**Priority**: Before merge\n**Recommendation**:\nAssign a personality in each affected helper before the first non-zero sriov_numvfs write (reuse the \u0027echo uart \u003e .../vf_personality\u0027 pattern from run_fake_pci_personality_smoke.sh), or initialize the default personality to PCI_SIM_VF_PERS_UART and keep \u0027unset\u0027 as an explicit opt-out so existing workflows keep working. Either way, run \u0027make test-host\u0027 to verify.","commit_id":"badca2358c927d27e04019d19966c2c192ca2617"}],"pci-sim/fake_pci_sriov_core.c":[{"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":"51b480a8b8c6e83ffcfecccbe7603e0d86a00358","unresolved":false,"context_lines":[{"line_number":362,"context_line":"\t\t\tgoto err_hosts;"},{"line_number":363,"context_line":"\t\t}"},{"line_number":364,"context_line":"\t\tINIT_LIST_HEAD(\u0026host-\u003elist);"},{"line_number":365,"context_line":"\t\thost-\u003epersonality \u003d PCI_SIM_VF_PERS_UNSET;"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"\t\thost-\u003epdev \u003d platform_device_register_full(\u0026pdevinfo);"},{"line_number":368,"context_line":"\t\tif (IS_ERR(host-\u003epdev)) {"}],"source_content_type":"text/x-csrc","patch_set":35,"id":"3a63282e_0147209e","line":365,"updated":"2026-08-31 16:06:21.000000000","message":"Every PF now starts with personality PCI_SIM_VF_PERS_UNSET and fake_pci_sriov_configure() returns -ENODEV for any personality other than uart. The repository\u0027s pre-existing host-side helpers that create VFs were not updated to write vf_personality, so their sriov_numvfs writes now fail. The devstack plugin was updated, but the standalone pci-sim scripts were not.\n\n**Severity**: HIGH | **Confidence**: 0.85\n\n**Impact**: Documented smoke tests and guest-probe helpers abort at their first sriov_numvfs write: the write fails with ENODEV and the scripts run with errexit, so contributors running the documented tests see hard failures that look like module breakage rather than a missing setup step.\n\n**Priority**: Before merge\n**Recommendation**:\nUpdate the affected scripts to write \u0027uart\u0027 to each PF\u0027s vf_personality after module load (mirroring devstack pci_sim_configure_personalities), or at minimum document the required personality assignment next to each VF-enabling script in testing.rst and pci-sim/README.rst.","commit_id":"7b252a2e7171151f607807a1a4d66645707a3b69"}],"pci-sim/run_fake_pci_personality_smoke.sh":[{"author":{"_account_id":39344,"name":"Gihong Lee","display_name":"gamio","email":"gh9231@gmail.com","username":"gamio"},"change_message_id":"d82f98364c91a4040cbc19efa6451bbf605d5b3f","unresolved":true,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"msg \"set PF0 personality to uart\""},{"line_number":111,"context_line":"echo uart | sudo -n tee \\"},{"line_number":112,"context_line":"    \"/sys/bus/pci/devices/$PF0/vf_personality\" \u003e/dev/null"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"msg \"enable VFs on uart PF\""},{"line_number":115,"context_line":"echo 2 | sudo -n tee \\"}],"source_content_type":"text/x-sh","patch_set":10,"id":"7997da38_de9698e3","line":112,"updated":"2026-08-04 14:29:25.000000000","message":"Right after switching to uart (before enabling VFs) there\u0027s a clean window where available should read unset [uart]. Could we assert that here, so the current marker actually moving is covered? Not blocking.","commit_id":"4defd35a0cb4e409835b27533c546161f2ed31d1"},{"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":"5c518f608227b608560dc0bd254741eaa145aded","unresolved":false,"context_lines":[{"line_number":69,"context_line":"[ \"${#pfs[@]}\" -eq 2 ] || fail \"expected 2 PFs, found ${#pfs[@]}\""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"PF0\u003d\"${pfs[0]}\""},{"line_number":72,"context_line":"PF1\u003d\"${pfs[1]}\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"# --- Verify sysfs personality files exist ---"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-sh","patch_set":17,"id":"c831d463_539bf945","line":72,"updated":"2026-08-11 17:30:50.000000000","message":"The variable PF1 is assigned on line 72 but never referenced anywhere else in the smoke test script. All functional test steps only exercise PF0.\n\n**Severity**: SUGGESTION | **Confidence**: 0.8\n\n**Benefit**: The smoke test does not validate that different PFs can hold independent personalities simultaneously, which is a stated design goal of the patch. The unused variable is minor dead code.\n\n**Recommendation**:\nEither add assertions that PF1 maintains its own personality independently (e.g., verify PF1 stays \u0027unset\u0027 while PF0 is set to \u0027uart\u0027), or remove the PF1 assignment if no additional test coverage is intended.","commit_id":"758fe6407228cd6d052f3acee65302930c0ed40b"},{"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":"77b00cdac0aa6b8216b5e32ac58897dd17a1bcdf","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    fail \"expected [unset] in available, got \u0027$avail\u0027\""},{"line_number":97,"context_line":"echo \"OK: available personalities list is correct\""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"# --- Verify sriov_numvfs rejected with unset personality ---"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"msg \"verify unset PF rejects sriov_numvfs\""},{"line_number":102,"context_line":"if echo 1 | sudo -n tee \\"}],"source_content_type":"text/x-sh","patch_set":23,"id":"99b8d4c1_614789d6","line":99,"updated":"2026-08-15 17:50:08.000000000","message":"The default personality is UNSET and sriov_configure returns -ENODEV for it, but run_fake_pci_multi_pf_smoke.sh, run_fake_pci_qemu_vfio_smoke.sh and cleanup/unbind helpers still write sriov_numvfs without first setting vf_personality\u003duart, so their VF-enable steps now fail.\n\n**Severity**: HIGH | **Confidence**: 0.8\n\n**Risk**: run_fake_pci_multi_pf_smoke.sh and run_fake_pci_qemu_vfio_smoke.sh fail immediately after this commit on any host, and the CirrOS guest VFIO flows that depend on them cannot run; CI/developer validation of the pci-sim module regresses.\n\n**Priority**: Before merge\n**Why This Matters**: run_fake_pci_multi_pf_smoke.sh and run_fake_pci_qemu_vfio_smoke.sh fail immediately after this commit on any host, and the CirrOS guest VFIO flows that depend on them cannot run; CI/developer validation of the pci-sim module regresses.\n\n**Recommendation**:\nUpdate run_fake_pci_multi_pf_smoke.sh and run_fake_pci_qemu_vfio_smoke.sh (and any helper that enables VFs) to echo uart to each PF\u0027s vf_personality before writing sriov_numvfs, mirroring the new personality smoke script.","commit_id":"9451e0f4bb694fb6551aef2be1c09c21dfd66a8f"}]}
