)]}'
{".zuul.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c62a14ae88f77e51723e760271d09616ffdb0ada","unresolved":true,"context_lines":[{"line_number":92,"context_line":"          ENABLE_PCI_SIM: true"},{"line_number":93,"context_line":"- job:"},{"line_number":94,"context_line":"    name: cyborg-tempest-ipv6"},{"line_number":95,"context_line":"    parent: devstack-tempest-ipv6"},{"line_number":96,"context_line":"    description: |"},{"line_number":97,"context_line":"      Cyborg devstack tempest tests job for IPv6-only deployment"},{"line_number":98,"context_line":"    voting: true"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"abdfee9f_ea46a171","line":95,"updated":"2026-05-27 21:01:49.000000000","message":"i forgot to change the nodeset here  in the previous version\n\ni think the modprobe issue was because of xen i think i know how to work around that but ill test that tomorrow for now we will get new result hopefully not on raxspace","commit_id":"1cd58b47de4de999c52c46c0a8300e2a1ae8efed"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c962ebecb88a5408a12c89f722f4ef8850140934","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bae37038_c5be66c8","updated":"2026-06-01 07:06:00.000000000","message":"ok cool this is almost ready to go.\nit now works also on xen\n\nthe only thing that is left to fix is grenade,\nits currently reading the wrong directory for the pci sim on upgrade","commit_id":"933b133de1a56c38a2560e9892ec4e74df379438"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"1a645b3bc3b1e3474c9c58564bcf7cfb1b6b91a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"75e440ae_6432e070","updated":"2026-06-04 14:40:14.000000000","message":"the module seems to work well, from the cyborg-tempest-py3 job https://zuul.opendev.org/t/openstack/build/76032c0e1ad04c099e55a4a591efc9e8/log/job-output.txt#15911-15920 we see the fake pfs discovered:\n```\n2026-06-01 07:44:38.496438 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:29 :   for dev in /sys/bus/pci/devices/*\n2026-06-01 07:44:38.498994 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:30 :   [[ -e /sys/bus/pci/devices/0001:00:00.0/vendor ]]\n2026-06-01 07:44:38.501759 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:30 :   [[ -e /sys/bus/pci/devices/0001:00:00.0/device ]]\n2026-06-01 07:44:38.504938 | controller | ++++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:31 :   cat /sys/bus/pci/devices/0001:00:00.0/vendor\n2026-06-01 07:44:38.508327 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:31 :   [[ 0x1d55 \u003d\u003d \\0\\x\\1\\d\\5\\5 ]]\n2026-06-01 07:44:38.511653 | controller | ++++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:32 :   cat /sys/bus/pci/devices/0001:00:00.0/device\n2026-06-01 07:44:38.515208 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:32 :   [[ 0x1000 \u003d\u003d \\0\\x\\1\\0\\0\\0 ]]\n2026-06-01 07:44:38.517643 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:33 :   basename /sys/bus/pci/devices/0001:00:00.0\n2026-06-01 07:44:38.522071 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:29 :   for dev in /sys/bus/pci/devices/*\n2026-06-01 07:44:38.524765 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:30 :   [[ -e /sys/bus/pci/devices/0002:00:00.0/vendor ]]\n2026-06-01 07:44:38.527637 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:30 :   [[ -e /sys/bus/pci/devices/0002:00:00.0/device ]]\n2026-06-01 07:44:38.530847 | controller | ++++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:31 :   cat /sys/bus/pci/devices/0002:00:00.0/vendor\n2026-06-01 07:44:38.535128 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:31 :   [[ 0x1d55 \u003d\u003d \\0\\x\\1\\d\\5\\5 ]]\n2026-06-01 07:44:38.538259 | controller | ++++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:32 :   cat /sys/bus/pci/devices/0002:00:00.0/device\n2026-06-01 07:44:38.541979 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:32 :   [[ 0x1000 \u003d\u003d \\0\\x\\1\\0\\0\\0 ]]\n2026-06-01 07:44:38.544689 | controller | +++ /opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_devs:33 :   basename /sys/bus/pci/devices/0002:00:00.0\n```","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d40238b17d2a8261648924650c07fd558763963","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3862d949_09ecc0cc","in_reply_to":"75e440ae_6432e070","updated":"2026-06-04 15:05:18.000000000","message":"yes, i will be workign on tempet test to use this in the next week or two but we can see the output\n\npart of me thing the curren output is a bit too noisy but i think ill adress that issue seprealy as a genera logging improvment pass.","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d1f5e8006605f0f05efcd63b487edd9f4b86ec96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9406ec0e_d89050ef","updated":"2026-06-17 06:14:51.000000000","message":"I have tested pci_sim make targets and based on devstack logs, it looks good, While enabling `PCI_SIM_CONFIGURE_CYBORG_PCI\u003dTrue` for second pf, VFS are not getting created.\n\nPlease have a look, thank you!","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"bb10095c54c2ab2961f983d52acb5273a1dc08da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8f6ba58a_aa1efe6e","updated":"2026-06-17 11:43:39.000000000","message":"The integration looks good. Below are the result from my local setup:\n```\nstack@hibernal03:~/devstack$ openstack flavor list | grep pci\n| 5ceb8aa5-271f-4d09-b561-6373bd26ad32 | pci-sim-cyborg |   192 |    1 |         0 |     1 | True      |\n| 684a9fab-5391-4b56-8293-11402f6006c7 | pci-sim-nova   |   192 |    1 |         0 |     1 | True      |\nstack@hibernal03:~/devstack$ openstack accelerator device profile list\n+--------------------------------------+-------------------+---------------------------------------------------------------------------------+-------------+\n| uuid                                 | name              | groups                                                                          | description |\n+--------------------------------------+-------------------+---------------------------------------------------------------------------------+-------------+\n| 31c50907-b6aa-4880-9ec3-2b76f55d8c54 | pci-sim-cyborg-dp | [{\u0027resources:CUSTOM_PCI\u0027: \u00271\u0027, \u0027trait:CUSTOM_PCI_PRODUCT_ID_1001\u0027: \u0027required\u0027}] | None        |\n+--------------------------------------+-------------------+---------------------------------------------------------------------------------+-------------+\nstack@hibernal03:~/devstack$ openstack accelerator device list\n+--------------------------------------+------+--------+-----------------------------------------+------------------------------------------------+\n| uuid                                 | type | vendor | hostname                                | std_board_info                                 |\n+--------------------------------------+------+--------+-----------------------------------------+------------------------------------------------+\n| 568e23cb-9208-4820-8e13-b74ccc26eded | GPU  | 1d55   | ----.com | {\"product_id\": \"1001\", \"controller\": null}     |\n| cb7049e8-09fa-426e-aaa6-a9043f8631c8 | GPU  | 1d55   | ----.com | {\"product_id\": \"1001\", \"controller\": null}     |\n| ad4e0e2a-8137-471b-92b6-b9885aaab721 | FPGA | 0xABCD | ----.com | {\"device_id\": \"0xabcd\", \"class\": \"Fake class\"} |\n| 75e419b7-38e4-41c6-8d41-c4be3303905e | GPU  | 1d55   | ----.com | {\"product_id\": \"1001\", \"controller\": null}     |\n| ee647edd-ab48-4c4f-bc18-739da0d22560 | GPU  | 1d55   | ----.com | {\"product_id\": \"1001\", \"controller\": null}     |\n+--------------------------------------+------+--------+-----------------------------------------+------------------------------------------------+\n```\nIt will make testing easier. Thank you for detailed documentation debugging was helpful.","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f4fae4a56fbd9a974bc0c7ef5d9aea0b821358d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3ca088a3_587c3e28","updated":"2026-06-15 15:04:20.000000000","message":"lgtm, thanks for the extra context and comments!","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b2c933cc2265ab2112b8730ed9669e009c02fc0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"926efd6d_e8467afe","updated":"2026-06-15 13:46:41.000000000","message":"recheck infra issue with log upload","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"81d425ba3ea8ca81b55b3575890eebdfa3d4e8b9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d0c55ee7_f2103d18","updated":"2026-06-17 12:38:57.000000000","message":"thanks for testing this\n\nill need to see if its possibel to suprpot real hardware passthough adn this virual apporch at the same time.\n\nit may be but i have intrnally been focusing on the vm model rather then baremetal usecases so that is somethign we can hopefully impove.","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"58301fbd423522dac5ad32ec85b9b243506897aa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1bc74b26_5b49527c","updated":"2026-06-17 13:03:56.000000000","message":"we dicussed this a bit on irc\nthis seam to be stable enough to proceed with\nim goign to spend some more time invstating ths issues chandan encountered and monitor this over the next few weeks.\n\nhttps://paste.opendev.org/show/bYiLthWNUfK7OclB7HqW/ show that nova can see all of the device via libvirt.\n\nso in ci at least the vfs appare to be visable in this config.\n\ni will be building out tempest tests for the pci driver and ill continue workign on thetsting and stablity of this as we move forward","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"}],"devstack/lib/pci_sim":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"1a645b3bc3b1e3474c9c58564bcf7cfb1b6b91a0","unresolved":true,"context_lines":[{"line_number":34,"context_line":"    done | sort"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"function pci_sim_csv_has_value {"},{"line_number":38,"context_line":"    local csv\u003d$1"},{"line_number":39,"context_line":"    local value\u003d$2"},{"line_number":40,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"910f5523_d30ae687","line":37,"updated":"2026-06-04 14:40:14.000000000","message":"some of this functions would greatly benefit from some docstrings, in this one for example I can\u0027t figure out what `csv` stands for","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d40238b17d2a8261648924650c07fd558763963","unresolved":true,"context_lines":[{"line_number":34,"context_line":"    done | sort"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"function pci_sim_csv_has_value {"},{"line_number":38,"context_line":"    local csv\u003d$1"},{"line_number":39,"context_line":"    local value\u003d$2"},{"line_number":40,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"d7ea8501_575275c7","line":37,"in_reply_to":"910f5523_d30ae687","updated":"2026-06-04 15:05:18.000000000","message":"it just stand for comma separated value\n\ni.e. it check if a list delimited by commans contains a value\n\n`${csv// /}` removes all spaces\n\n`,${...},` is just padign to deal with singel value list and the start/end itmes\nand\n`*,${value},*` then mathces the whole value i.e. so that nova wotn match nova_flavor\n\n\nbut i agree this is very not obvious and could be impvoed with doc comments","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f4fae4a56fbd9a974bc0c7ef5d9aea0b821358d9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    done | sort"},{"line_number":35,"context_line":"}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"function pci_sim_csv_has_value {"},{"line_number":38,"context_line":"    local csv\u003d$1"},{"line_number":39,"context_line":"    local value\u003d$2"},{"line_number":40,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":5,"id":"d11ea800_07118691","line":37,"in_reply_to":"d7ea8501_575275c7","updated":"2026-06-15 15:04:20.000000000","message":"thanks for adding the comments, it\u0027s a lot clearer now!","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"81d425ba3ea8ca81b55b3575890eebdfa3d4e8b9","unresolved":true,"context_lines":[{"line_number":22,"context_line":"    fi"},{"line_number":23,"context_line":"}"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"function pci_sim_sysfs_write {"},{"line_number":26,"context_line":"    local value\u003d$1"},{"line_number":27,"context_line":"    local path\u003d$2"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    # Most lifecycle operations are sysfs writes that require root.  Keep the"},{"line_number":30,"context_line":"    # sudo/tee pattern in one helper so callers describe intent instead of"},{"line_number":31,"context_line":"    # repeating privilege plumbing."},{"line_number":32,"context_line":"    echo \"$value\" | sudo tee \"$path\" \u003e/dev/null"},{"line_number":33,"context_line":"}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"function pci_sim_find_devs {"},{"line_number":36,"context_line":"    local device_id\u003d$1"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"910d0db1_71c9a6f5","line":33,"range":{"start_line":25,"start_character":0,"end_line":33,"end_character":1},"updated":"2026-06-17 12:38:57.000000000","message":"4.) what i may need to do si make this a little more robust by reading it back adn retrying or something like that to confirm the value was actully accpeted.\n\nill need ot alos review the module code of couse to ensure that that is reliable as well.\n\nif there is no objection i think i would like to move forward with this as  is for now and revist this once the inital patch is merged as this is already pretty large.\n\nwe dont curretly have tests using htese devices but that will be someting im planning to add in the next week or two so i will dig into this as part of hooikg it up to tempest tests.\n\nim planning to use a mixture of new cybrog tempest tests and new whitebox tempest tests as part of this featrue work to validate this form both the enduer and host level view.","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"81d425ba3ea8ca81b55b3575890eebdfa3d4e8b9","unresolved":true,"context_lines":[{"line_number":179,"context_line":"            num_pfs\u003d$PCI_SIM_NUM_PFS $PCI_SIM_MODULE_ARGS"},{"line_number":180,"context_line":"    fi"},{"line_number":181,"context_line":"}"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"function configure_pci_sim_vfs {"},{"line_number":184,"context_line":"    set -x"},{"line_number":185,"context_line":"    local pf vf"},{"line_number":186,"context_line":"    local -a pfs vfs"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    # Reset sriov_numvfs before recreating VFs so repeated stack.sh runs do not"},{"line_number":189,"context_line":"    # leave stale VF devices or driver bindings behind."},{"line_number":190,"context_line":"    pci_sim_validate_config"},{"line_number":191,"context_line":"    mapfile -t pfs \u003c \u003c(pci_sim_find_devs \"$PCI_SIM_PF_DEVICE_ID\")"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    if [[ ${#pfs[@]} -ne $PCI_SIM_NUM_PFS ]]; then"},{"line_number":194,"context_line":"        die $LINENO \"Expected $PCI_SIM_NUM_PFS pci-sim PF(s), found ${#pfs[@]}: ${pfs[*]}\""},{"line_number":195,"context_line":"    fi"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    for pf in \"${pfs[@]}\"; do"},{"line_number":198,"context_line":"        pci_sim_sysfs_write 0 \"/sys/bus/pci/devices/$pf/sriov_numvfs\" || true"},{"line_number":199,"context_line":"        pci_sim_sysfs_write \"$PCI_SIM_NUM_VFS\" \"/sys/bus/pci/devices/$pf/sriov_numvfs\""},{"line_number":200,"context_line":"        mapfile -t vfs \u003c \u003c(pci_sim_find_vfs_for_pf \"$pf\")"},{"line_number":201,"context_line":"        for vf in \"${vfs[@]}\"; do"},{"line_number":202,"context_line":"            pci_sim_bind_vf_to_vfio \"$vf\""},{"line_number":203,"context_line":"        done"},{"line_number":204,"context_line":"    done"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    echo \"pci-sim PFs: ${pfs[*]}\""},{"line_number":207,"context_line":"    echo \"pci-sim VFs: $(pci_sim_find_devs \"$PCI_SIM_VF_DEVICE_ID\" | xargs echo)\""},{"line_number":208,"context_line":"}"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"function pci_sim_pf_target {"},{"line_number":211,"context_line":"    local index\u003d$1"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"d716e7ba_74f9a089","line":208,"range":{"start_line":182,"start_character":1,"end_line":208,"end_character":1},"updated":"2026-06-17 12:38:57.000000000","message":"3.) which is configure here.\nit just a simple loop over all the PFs writng the requested number of vf to\nsriov_numvfs","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"81d425ba3ea8ca81b55b3575890eebdfa3d4e8b9","unresolved":true,"context_lines":[{"line_number":207,"context_line":"    echo \"pci-sim VFs: $(pci_sim_find_devs \"$PCI_SIM_VF_DEVICE_ID\" | xargs echo)\""},{"line_number":208,"context_line":"}"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"function pci_sim_pf_target {"},{"line_number":211,"context_line":"    local index\u003d$1"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    # When both services are enabled, split fake PFs by index.  This lets one"},{"line_number":214,"context_line":"    # DevStack cloud expose Nova PCI passthrough and Cyborg accelerator flows"},{"line_number":215,"context_line":"    # at the same time without both services managing the same VF."},{"line_number":216,"context_line":"    if [[ \"$PCI_SIM_CONFIGURE_NOVA_PCI\" \u003d\u003d True \u0026\u0026 \\"},{"line_number":217,"context_line":"          \"$PCI_SIM_CONFIGURE_CYBORG_PCI\" \u003d\u003d True ]]; then"},{"line_number":218,"context_line":"        if (( index % 2 \u003d\u003d 0 )); then"},{"line_number":219,"context_line":"            echo nova"},{"line_number":220,"context_line":"        else"},{"line_number":221,"context_line":"            echo cyborg"},{"line_number":222,"context_line":"        fi"},{"line_number":223,"context_line":"    elif [[ \"$PCI_SIM_CONFIGURE_NOVA_PCI\" \u003d\u003d True ]]; then"},{"line_number":224,"context_line":"        echo nova"},{"line_number":225,"context_line":"    elif [[ \"$PCI_SIM_CONFIGURE_CYBORG_PCI\" \u003d\u003d True ]]; then"},{"line_number":226,"context_line":"        echo cyborg"},{"line_number":227,"context_line":"    fi"},{"line_number":228,"context_line":"}"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"function configure_pci_sim_nova_conf_file {"},{"line_number":231,"context_line":"    local conf_file\u003d$1"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"294ebb98_6fe5310a","line":228,"range":{"start_line":210,"start_character":0,"end_line":228,"end_character":1},"updated":"2026-06-17 12:38:57.000000000","message":"1.) so this is how we are distibuting PFs between the services.","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"81d425ba3ea8ca81b55b3575890eebdfa3d4e8b9","unresolved":true,"context_lines":[{"line_number":316,"context_line":"    local -a pfs pf_vfs"},{"line_number":317,"context_line":"    local index\u003d0"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    mapfile -t pfs \u003c \u003c(pci_sim_find_devs \"$PCI_SIM_PF_DEVICE_ID\")"},{"line_number":320,"context_line":"    for pf in \"${pfs[@]}\"; do"},{"line_number":321,"context_line":"        target\u003d$(pci_sim_pf_target \"$index\")"},{"line_number":322,"context_line":"        if [[ $target \u003d\u003d \"$wanted_target\" ]]; then"},{"line_number":323,"context_line":"            mapfile -t pf_vfs \u003c \u003c(pci_sim_find_vfs_for_pf \"$pf\")"},{"line_number":324,"context_line":"            printf \u0027%s"},{"line_number":325,"context_line":"\u0027 \"${pf_vfs[@]}\""},{"line_number":326,"context_line":"        fi"},{"line_number":327,"context_line":"        index\u003d$((index + 1))"},{"line_number":328,"context_line":"    done"},{"line_number":329,"context_line":"}"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"function configure_pci_sim_nova_service_config {"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"4b3d52b4_1acf8924","line":328,"range":{"start_line":319,"start_character":0,"end_line":328,"end_character":8},"updated":"2026-06-17 12:38:57.000000000","message":"2.) and this is where e are getiggitn the pf adress but i think thie issue you saw was with the initall vf creation","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"}],"devstack/local-conf.pci-sim.sample":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d1f5e8006605f0f05efcd63b487edd9f4b86ec96","unresolved":true,"context_lines":[{"line_number":36,"context_line":"PCI_SIM_NUM_VFS\u003d4"},{"line_number":37,"context_line":"# optionally disable service integration"},{"line_number":38,"context_line":"# PCI_SIM_CONFIGURE_NOVA_PCI\u003dFalse"},{"line_number":39,"context_line":"# PCI_SIM_CONFIGURE_CYBORG_PCI\u003dFalse"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Required for nested/devstack environments without interrupt remapping."},{"line_number":42,"context_line":"PCI_SIM_ALLOW_UNSAFE_INTERRUPTS\u003dTrue"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"501a290c_aad7ddf4","line":39,"range":{"start_line":39,"start_character":2,"end_line":39,"end_character":36},"updated":"2026-06-17 06:14:51.000000000","message":"In my Devstack setup on debian trixie, I have enabled this also\nlocal.conf\n```\nenable_plugin cyborg https://review.opendev.org/openstack/cyborg refs/changes/70/989470/7\nENABLE_PCI_SIM\u003dTrue\n# pci-sim topology: 2 fake PFs, 4 VFs each.\n# With both integrations enabled, PF0 VFs go to Nova and PF1 VFs to Cyborg.\nPCI_SIM_NUM_PFS\u003d2\nPCI_SIM_NUM_VFS\u003d4\nPCI_SIM_CONFIGURE_CYBORG_PCI\u003dTrue\n```\nDevstack setup failed at:\n```\n00.0\n2026-06-17 05:38:00.397 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:101  [[ 0001:00:00.0 \u003d\u003d \\0\\0\\0\\1\\:\\0\\0\\:\\0\\0\\.\\0 ]]\n2026-06-17 05:38:00.403 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:102  basename /sys/bus/pci/devices/0001:00:00.3\n2026-06-17 05:38:00.412 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:97  for dev in /sys/bus/pci/devices/*\n2026-06-17 05:38:00.418 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:98  [[ -e /sys/bus/pci/devices/0001:00:00.4/vendor ]]\n2026-06-17 05:38:00.424 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:98  [[ -e /sys/bus/pci/devices/0001:00:00.4/device ]]\n2026-06-17 05:38:00.430 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:98  [[ -e /sys/bus/pci/devices/0001:00:00.4/physfn ]]\n2026-06-17 05:38:00.439 | ++++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:99  cat /sys/bus/pci/devices/0001:00:00.4/vendor\n2026-06-17 05:38:00.448 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:99  [[ 0x1d55 \u003d\u003d \\0\\x\\1\\d\\5\\5 ]]\n2026-06-17 05:38:00.454 | ++++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:100  cat /sys/bus/pci/devices/0001:00:00.4/device\n2026-06-17 05:38:00.463 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:100  [[ 0x1001 \u003d\u003d \\0\\x\\1\\0\\0\\1 ]]\n2026-06-17 05:38:00.470 | +++++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:101  readlink -f /sys/bus/pci/devices/0001:00:00.4/physfn\n2026-06-17 05:38:00.477 | ++++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:101  basename /sys/devices/platform/fake-pci-host.2.auto/pci0001:00/0001:00:00.0\n2026-06-17 05:38:00.484 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:101  [[ 0001:00:00.0 \u003d\u003d \\0\\0\\0\\1\\:\\0\\0\\:\\0\\0\\.\\0 ]]\n2026-06-17 05:38:00.489 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:102  basename /sys/bus/pci/devices/0001:00:00.4\n2026-06-17 05:38:00.496 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:97  for dev in /sys/bus/pci/devices/*\n2026-06-17 05:38:00.501 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:98  [[ -e /sys/bus/pci/devices/0002:00:00.0/vendor ]]\n2026-06-17 05:38:00.506 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:98  [[ -e /sys/bus/pci/devices/0002:00:00.0/device ]]\n2026-06-17 05:38:00.511 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:98  [[ -e /sys/bus/pci/devices/0002:00:00.0/physfn ]]\n2026-06-17 05:38:00.517 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_find_vfs_for_pf:98  continue\n2026-06-17 05:38:00.528 | ++/opt/stack/cyborg/devstack/lib/pci_sim:configure_pci_sim_vfs:201  for vf in \"${vfs[@]}\"\n2026-06-17 05:38:00.535 | ++/opt/stack/cyborg/devstack/lib/pci_sim:configure_pci_sim_vfs:202  pci_sim_bind_vf_to_vfio 0001:00:00.1\n2026-06-17 05:38:00.542 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:107  local vf\u003d0001:00:00.1\n2026-06-17 05:38:00.549 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:108  local dev_path\u003d/sys/bus/pci/devices/0001:00:00.1\n2026-06-17 05:38:00.555 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:112  [[ -e /sys/bus/pci/devices/0001:00:00.1/driver/unbind ]]\n2026-06-17 05:38:00.562 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:113  pci_sim_sysfs_write 0001:00:00.1 /sys/bus/pci/devices/0001:00:00.1/driver/unbind\n2026-06-17 05:38:00.568 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:26  local value\u003d0001:00:00.1\n2026-06-17 05:38:00.576 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:27  local path\u003d/sys/bus/pci/devices/0001:00:00.1/driver/unbind\n2026-06-17 05:38:00.584 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:32  sudo tee /sys/bus/pci/devices/0001:00:00.1/driver/unbind\n2026-06-17 05:38:00.587 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:32  echo 0001:00:00.1\n2026-06-17 05:38:00.612 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:115  pci_sim_sysfs_write pci_sim_vfio_pci /sys/bus/pci/devices/0001:00:00.1/driver_override\n2026-06-17 05:38:00.620 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:26  local value\u003dpci_sim_vfio_pci\n2026-06-17 05:38:00.628 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:27  local path\u003d/sys/bus/pci/devices/0001:00:00.1/driver_override\n2026-06-17 05:38:00.637 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:32  echo pci_sim_vfio_pci\n2026-06-17 05:38:00.637 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:32  sudo tee /sys/bus/pci/devices/0001:00:00.1/driver_override\n2026-06-17 05:38:00.662 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:116  pci_sim_sysfs_write 0001:00:00.1 /sys/bus/pci/drivers_probe\n2026-06-17 05:38:00.670 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:26  local value\u003d0001:00:00.1\n2026-06-17 05:38:00.680 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:27  local path\u003d/sys/bus/pci/drivers_probe\n2026-06-17 05:38:00.688 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:32  sudo tee /sys/bus/pci/drivers_probe\n2026-06-17 05:38:00.689 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_sysfs_write:32  echo 0001:00:00.1\n2026-06-17 05:38:00.710 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:118  local driver\n2026-06-17 05:38:00.720 | ++++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:119  readlink -f /sys/bus/pci/devices/0001:00:00.1/driver\n2026-06-17 05:38:00.729 | +++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:119  basename /sys/devices/platform/fake-pci-host.2.auto/pci0001:00/0001:00:00.1/driver\n2026-06-17 05:38:00.737 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:119  driver\u003ddriver\n2026-06-17 05:38:00.744 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:120  [[ driver !\u003d pci_sim_vfio_pci ]]\n2026-06-17 05:38:00.750 | ++/opt/stack/cyborg/devstack/lib/pci_sim:pci_sim_bind_vf_to_vfio:121  die 121 \u0027Failed to bind 0001:00:00.1 to pci_sim_vfio_pci; current driver is driver\u0027\n2026-06-17 05:38:00.756 | ++functions-common:die:290                  local exitcode\u003d0\n2026-06-17 05:38:00.763 | [Call Trace]\n2026-06-17 05:38:00.763 | ./stack.sh:1246:run_phase\n2026-06-17 05:38:00.763 | /home/stack/devstack/functions-common:1869:run_plugins\n2026-06-17 05:38:00.763 | /home/stack/devstack/functions-common:1836:source\n2026-06-17 05:38:00.763 | /opt/stack/cyborg/devstack/plugin.sh:41:configure_pci_sim_vfs\n2026-06-17 05:38:00.763 | /opt/stack/cyborg/devstack/lib/pci_sim:202:pci_sim_bind_vf_to_vfio\n2026-06-17 05:38:00.763 | /opt/stack/cyborg/devstack/lib/pci_sim:121:die\n2026-06-17 05:38:00.767 | [ERROR] /opt/stack/cyborg/devstack/lib/pci_sim:121 Failed to bind 0001:00:00.1 to pci_sim_vfio_pci; current driver is driver\n2026-06-17 05:38:01.772 | exit_trap: cleaning up child processes\n2026-06-17 05:38:01.775 | Error on exit\n```\nHere is the output of lspci\n```\n0001:00:00.0 Unassigned class [ff00]: Device 1d55:1000 (rev 01)\n0001:00:00.1 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0001:00:00.2 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0001:00:00.3 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0001:00:00.4 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0002:00:00.0 Unassigned class [ff00]: Device 1d55:1000 (rev 01)\n```\nPF0 (0001:00:00.0, device 1d55:1000) — has 4 VFs but it has 0002:00:00.0 has no vfs\n\nHere is the dmseg log\n```\nstack@hibernal03:/opt/stack/logs$ sudo  dmesg | grep -i fake_pci | tail -30\n[ 1972.775285] fake_pci_sriov: loading out-of-tree module taints kernel.\n[ 1972.775294] fake_pci_sriov: module verification failed: signature and/or required key missing - tainting kernel\n[ 1972.778958] fake_pci: Initializing fake PCI SR-IOV driver\n[ 1972.779158] fake_pci: Software IOMMU registered\n[ 1972.779306] fake_pci: allocated 32-bit high MMIO window [0xfc000000-0xfc0fffff]\n[ 1972.779530] fake_pci_sriov_pf 0001:00:00.0: fake_pci: PF probed\n[ 1972.779545] fake_pci: Host bridge created on domain 0001\n[ 1972.779577] fake_pci: allocated 32-bit high MMIO window [0xfc100000-0xfc1fffff]\n[ 1972.779690] fake_pci_sriov_pf 0002:00:00.0: fake_pci: PF probed\n[ 1972.779701] fake_pci: Host bridge created on domain 0002\n[ 1972.779702] fake_pci: Module loaded successfully with 2 PF(s)\n[ 1972.779704] fake_pci: Use \u0027echo N \u003e /sys/bus/pci/devices/.../sriov_numvfs\u0027 to enable VFs\n[ 1981.149780] fake_pci: Setting NumVFs from 0 to 4\n[ 1981.149787] fake_pci: Enabled VF0\n[ 1981.149789] fake_pci: Enabled VF1\n[ 1981.149791] fake_pci: Enabled VF2\n[ 1981.149793] fake_pci: Enabled VF3\n```\n```\nstack@hibernal03:/opt/stack/logs$   cat /sys/bus/pci/devices/0002:00:00.0/sriov_totalvfs\n7\nstack@hibernal03:/opt/stack/logs$ echo 4 | sudo tee /sys/bus/pci/devices/0002:00:00.0/sriov_numvfs\n4\nstack@hibernal03:/opt/stack/logs$ lspci -d 1d55:\n0001:00:00.0 Unassigned class [ff00]: Device 1d55:1000 (rev 01)\n0001:00:00.1 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0001:00:00.2 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0001:00:00.3 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0001:00:00.4 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0002:00:00.0 Unassigned class [ff00]: Device 1d55:1000 (rev 01)\n0002:00:00.1 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0002:00:00.2 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0002:00:00.3 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n0002:00:00.4 Unassigned class [ff00]: Device 1d55:1001 (rev 01)\n```\nPF1 creates 4 VFs with no issues when written manually\n\nNot sure I am doing something wrong here in my local.conf or there is a bug in devstack pci_sim script. Can you take a look? Thank you!","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"62286d280fdf967d517f7785ae7e6f4bfec84172","unresolved":true,"context_lines":[{"line_number":36,"context_line":"PCI_SIM_NUM_VFS\u003d4"},{"line_number":37,"context_line":"# optionally disable service integration"},{"line_number":38,"context_line":"# PCI_SIM_CONFIGURE_NOVA_PCI\u003dFalse"},{"line_number":39,"context_line":"# PCI_SIM_CONFIGURE_CYBORG_PCI\u003dFalse"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Required for nested/devstack environments without interrupt remapping."},{"line_number":42,"context_line":"PCI_SIM_ALLOW_UNSAFE_INTERRUPTS\u003dTrue"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9b385f35_ee3ad87b","line":39,"range":{"start_line":39,"start_character":2,"end_line":39,"end_character":36},"in_reply_to":"501a290c_aad7ddf4","updated":"2026-06-17 08:06:02.000000000","message":"Kernel info, might be useful for debugging.\n```\nstack@hibernal03:~/devstack$ uname -a\nLinux hibernal03 6.12.90+deb13.1-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.90-2 (2026-05-27) x86_64 GNU/Linux\nstack@hibernal03:~/devstack$ uname -r\n6.12.90+deb13.1-amd64\n```","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"bb10095c54c2ab2961f983d52acb5273a1dc08da","unresolved":false,"context_lines":[{"line_number":36,"context_line":"PCI_SIM_NUM_VFS\u003d4"},{"line_number":37,"context_line":"# optionally disable service integration"},{"line_number":38,"context_line":"# PCI_SIM_CONFIGURE_NOVA_PCI\u003dFalse"},{"line_number":39,"context_line":"# PCI_SIM_CONFIGURE_CYBORG_PCI\u003dFalse"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Required for nested/devstack environments without interrupt remapping."},{"line_number":42,"context_line":"PCI_SIM_ALLOW_UNSAFE_INTERRUPTS\u003dTrue"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"fc81dfb8_a03172d1","line":39,"range":{"start_line":39,"start_character":2,"end_line":39,"end_character":36},"in_reply_to":"9b385f35_ee3ad87b","updated":"2026-06-17 11:43:39.000000000","message":"Just an update On baremetal fake IOMMU groups aren\u0027t created because Intel VT-d blocks them. After disabling `intel_iommu\u003doff intremap\u003doff` in grub, Devstack runs successfully. marking it as resolved.","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"81d425ba3ea8ca81b55b3575890eebdfa3d4e8b9","unresolved":true,"context_lines":[{"line_number":36,"context_line":"PCI_SIM_NUM_VFS\u003d4"},{"line_number":37,"context_line":"# optionally disable service integration"},{"line_number":38,"context_line":"# PCI_SIM_CONFIGURE_NOVA_PCI\u003dFalse"},{"line_number":39,"context_line":"# PCI_SIM_CONFIGURE_CYBORG_PCI\u003dFalse"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"# Required for nested/devstack environments without interrupt remapping."},{"line_number":42,"context_line":"PCI_SIM_ALLOW_UNSAFE_INTERRUPTS\u003dTrue"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"0ee4c56d_67134d5b","line":39,"range":{"start_line":39,"start_character":2,"end_line":39,"end_character":36},"in_reply_to":"fc81dfb8_a03172d1","updated":"2026-06-17 12:38:57.000000000","message":"so the default value of intel_iommu is off\nintremap im not sure about but i assume off as weel\n\nthe intent is to use this for vms more then baremetnal however so i have not really spent time testing it there.\n\nthe goal of this module is not to supprot using real hardware passhtough and fake hardware passthough on the same host but it might be possibel to do wiht say\nintel_iommu\u003don iommu\u003dpt\n\ni woudl have to do more testing\n\nin termps of the vf creation i suspect i have a bug in the devstack plugin rahter then the module i may look into that in a followup.","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"}],"doc/source/contributor/pci-sim/devstack.rst":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"1a645b3bc3b1e3474c9c58564bcf7cfb1b6b91a0","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"``ENABLE_PCI_SIM``"},{"line_number":22,"context_line":"  Master switch.  Set to ``False`` to skip all pci-sim phases (build, load,"},{"line_number":23,"context_line":"  configuration, and test-resource creation).  Defaults to ``True``."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"``PCI_SIM_BUILD``"},{"line_number":26,"context_line":"  Build and install the module during the DevStack ``install`` phase."}],"source_content_type":"text/x-rst","patch_set":5,"id":"a0332514_c1ae8274","line":23,"updated":"2026-06-04 14:40:14.000000000","message":"This seems to contradict the default in the settings file https://review.opendev.org/c/openstack/cyborg/+/989470/5/devstack/settings#54","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d40238b17d2a8261648924650c07fd558763963","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"``ENABLE_PCI_SIM``"},{"line_number":22,"context_line":"  Master switch.  Set to ``False`` to skip all pci-sim phases (build, load,"},{"line_number":23,"context_line":"  configuration, and test-resource creation).  Defaults to ``True``."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"``PCI_SIM_BUILD``"},{"line_number":26,"context_line":"  Build and install the module during the DevStack ``install`` phase."}],"source_content_type":"text/x-rst","patch_set":5,"id":"f5ac5a5a_9e673107","line":23,"in_reply_to":"a0332514_c1ae8274","updated":"2026-06-04 15:05:18.000000000","message":"oh i change it but i guess i forgot to update the docs\ngood catch\n\ni deced i wanted it to be opt in to limit the impact on the grenade jobs or local devlopement if your using other distors","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f4fae4a56fbd9a974bc0c7ef5d9aea0b821358d9","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"``ENABLE_PCI_SIM``"},{"line_number":22,"context_line":"  Master switch.  Set to ``False`` to skip all pci-sim phases (build, load,"},{"line_number":23,"context_line":"  configuration, and test-resource creation).  Defaults to ``True``."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"``PCI_SIM_BUILD``"},{"line_number":26,"context_line":"  Build and install the module during the DevStack ``install`` phase."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5c304159_da35190a","line":23,"in_reply_to":"f5ac5a5a_9e673107","updated":"2026-06-15 15:04:20.000000000","message":"Done","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"}],"doc/source/contributor/pci-sim/kernel-dependencies.rst":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"62286d280fdf967d517f7785ae7e6f4bfec84172","unresolved":false,"context_lines":[{"line_number":31,"context_line":"* ``CONFIG_VFIO_PCI``"},{"line_number":32,"context_line":"* ``CONFIG_KVM``"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"The initial compatibility target is the current Ubuntu 26.04 generic kernel,"},{"line_number":35,"context_line":"``7.0.0-15-generic``.  Broader Ubuntu 26.04 kernel update compatibility should"},{"line_number":36,"context_line":"be added by version-guarding specific API differences as they are found."}],"source_content_type":"text/x-rst","patch_set":7,"id":"137150c2_322e18d3","line":36,"range":{"start_line":34,"start_character":0,"end_line":36,"end_character":72},"updated":"2026-06-17 08:06:02.000000000","message":"Thank you for mentioning it. It does not work on ubuntu noble\n```\nmake -C /lib/modules/6.8.0-124-generic/build M\u003d/opt/stack/cyborg/pci-sim modules\nmake[1]: Entering directory \u0027/usr/src/linux-headers-6.8.0-124-generic\u0027\nwarning: the compiler differs from the one used to build the kernel\n  The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0\n  You are using:           gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0\n  CC [M]  /opt/stack/cyborg/pci-sim/fake_pci_sriov_core.o\nIn file included from /opt/stack/cyborg/pci-sim/fake_pci_sriov_core.c:11:\n/opt/stack/cyborg/pci-sim/fake_pci_sriov.h:30:10: fatal error: linux/unaligned.h: No such file or directory\n   30 | #include \u003clinux/unaligned.h\u003e\n      |          ^~~~~~~~~~~~~~~~~~~\ncompilation terminated.\nmake[3]: *** [scripts/Makefile.build:243: /opt/stack/cyborg/pci-sim/fake_pci_sriov_core.o] Error 1\nmake[2]: *** [/usr/src/linux-headers-6.8.0-124-generic/Makefile:1936: /opt/stack/cyborg/pci-sim] Error 2\nmake[1]: *** [Makefile:240: __sub-make] Error 2\nmake[1]: Leaving directory \u0027/usr/src/linux-headers-6.8.0-124-generic\u0027\nmake: *** [Makefile:20: modules] Error 2\nmake: Leaving directory \u0027/opt/stack/cyborg/pci-sim\u0027\n++/opt/stack/cyborg/devstack/lib/pci_sim:build_pci_sim:144  sudo make -C /opt/stack/cyborg/pci-sim modules_install\n```","commit_id":"7b1fc570bd189f18ad5f4a44926a736f8b442198"}],"pci-sim/run_cirros_vfio_guest_probe.sh":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"1a645b3bc3b1e3474c9c58564bcf7cfb1b6b91a0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"# SPDX-License-Identifier: GPL-2.0"},{"line_number":3,"context_line":"# Boot cirros with fake_pci_sriov VF via VFIO and run guest-side probe commands."},{"line_number":4,"context_line":"set -euo pipefail"}],"source_content_type":"text/x-sh","patch_set":5,"id":"69c0fa0c_c0a7f17c","line":1,"updated":"2026-06-04 14:40:14.000000000","message":"this script is very hard to read, some formatting would be really helpful","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f4fae4a56fbd9a974bc0c7ef5d9aea0b821358d9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"# SPDX-License-Identifier: GPL-2.0"},{"line_number":3,"context_line":"# Boot cirros with fake_pci_sriov VF via VFIO and run guest-side probe commands."},{"line_number":4,"context_line":"set -euo pipefail"}],"source_content_type":"text/x-sh","patch_set":5,"id":"69588edd_b21dd690","line":1,"in_reply_to":"35e2f332_6c4f514a","updated":"2026-06-15 15:04:20.000000000","message":"Done","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d40238b17d2a8261648924650c07fd558763963","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"# SPDX-License-Identifier: GPL-2.0"},{"line_number":3,"context_line":"# Boot cirros with fake_pci_sriov VF via VFIO and run guest-side probe commands."},{"line_number":4,"context_line":"set -euo pipefail"}],"source_content_type":"text/x-sh","patch_set":5,"id":"35e2f332_6c4f514a","line":1,"in_reply_to":"69c0fa0c_c0a7f17c","updated":"2026-06-04 15:05:18.000000000","message":"yes actull this script is not something i have spent muc time on it was useful for debuging the driver intally but i realy shoudl clean this up if we keep it.\n\nill do that in the next pass.","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"1a645b3bc3b1e3474c9c58564bcf7cfb1b6b91a0","unresolved":true,"context_lines":[{"line_number":33,"context_line":"[ -e \"/sys/bus/pci/devices/$VF/driver/unbind\" ] \u0026\u0026 echo \"$VF\" | sudo -n tee \"/sys/bus/pci/devices/$VF/driver/unbind\" \u003e/dev/null; echo pci_sim_vfio_pci | sudo -n tee \"/sys/bus/pci/devices/$VF/driver_override\" \u003e/dev/null; echo \"$VF\" | sudo -n tee /sys/bus/pci/drivers_probe \u003e/dev/null; readlink -f \"/sys/bus/pci/devices/$VF/driver\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"export IMAGE VF QEMU_DEADLINE"},{"line_number":36,"context_line":"python3 - \u003c\u003c\u0027PY\u0027"},{"line_number":37,"context_line":"import os, pty, select, subprocess, sys, time"},{"line_number":38,"context_line":"image\u003dos.environ[\u0027IMAGE\u0027]; vf\u003dos.environ[\u0027VF\u0027]; deadline_s\u003dint(os.environ.get(\u0027QEMU_DEADLINE\u0027,\u0027120\u0027))"},{"line_number":39,"context_line":"cmd\u003d[\u0027sudo\u0027,\u0027-n\u0027,\u0027qemu-system-x86_64\u0027,\u0027-nodefaults\u0027,\u0027-display\u0027,\u0027none\u0027,\u0027-serial\u0027,\u0027stdio\u0027,\u0027-monitor\u0027,\u0027none\u0027,\u0027-machine\u0027,\u0027q35,accel\u003dkvm\u0027,\u0027-cpu\u0027,\u0027host\u0027,\u0027-smp\u0027,\u00271\u0027,\u0027-m\u0027,\u0027512M\u0027,\u0027-snapshot\u0027,\u0027-drive\u0027,f\u0027file\u003d{image},if\u003dvirtio,format\u003dqcow2\u0027,\u0027-device\u0027,f\u0027vfio-pci,host\u003d{vf}\u0027,\u0027-no-reboot\u0027]"}],"source_content_type":"text/x-sh","patch_set":5,"id":"ddbfdd79_7e0e31b1","line":36,"updated":"2026-06-04 14:40:14.000000000","message":"is there a reason to have this as a python script calling subprocess instead of having it directly in the bash script? Also, if we have to use python can we move this to an actual python script so that it\u0027s easier to read?","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d40238b17d2a8261648924650c07fd558763963","unresolved":true,"context_lines":[{"line_number":33,"context_line":"[ -e \"/sys/bus/pci/devices/$VF/driver/unbind\" ] \u0026\u0026 echo \"$VF\" | sudo -n tee \"/sys/bus/pci/devices/$VF/driver/unbind\" \u003e/dev/null; echo pci_sim_vfio_pci | sudo -n tee \"/sys/bus/pci/devices/$VF/driver_override\" \u003e/dev/null; echo \"$VF\" | sudo -n tee /sys/bus/pci/drivers_probe \u003e/dev/null; readlink -f \"/sys/bus/pci/devices/$VF/driver\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"export IMAGE VF QEMU_DEADLINE"},{"line_number":36,"context_line":"python3 - \u003c\u003c\u0027PY\u0027"},{"line_number":37,"context_line":"import os, pty, select, subprocess, sys, time"},{"line_number":38,"context_line":"image\u003dos.environ[\u0027IMAGE\u0027]; vf\u003dos.environ[\u0027VF\u0027]; deadline_s\u003dint(os.environ.get(\u0027QEMU_DEADLINE\u0027,\u0027120\u0027))"},{"line_number":39,"context_line":"cmd\u003d[\u0027sudo\u0027,\u0027-n\u0027,\u0027qemu-system-x86_64\u0027,\u0027-nodefaults\u0027,\u0027-display\u0027,\u0027none\u0027,\u0027-serial\u0027,\u0027stdio\u0027,\u0027-monitor\u0027,\u0027none\u0027,\u0027-machine\u0027,\u0027q35,accel\u003dkvm\u0027,\u0027-cpu\u0027,\u0027host\u0027,\u0027-smp\u0027,\u00271\u0027,\u0027-m\u0027,\u0027512M\u0027,\u0027-snapshot\u0027,\u0027-drive\u0027,f\u0027file\u003d{image},if\u003dvirtio,format\u003dqcow2\u0027,\u0027-device\u0027,f\u0027vfio-pci,host\u003d{vf}\u0027,\u0027-no-reboot\u0027]"}],"source_content_type":"text/x-sh","patch_set":5,"id":"de2bca73_7bc66293","line":36,"in_reply_to":"ddbfdd79_7e0e31b1","updated":"2026-06-04 15:05:18.000000000","message":"no not really factorign this out into its won helper will impove things","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f4fae4a56fbd9a974bc0c7ef5d9aea0b821358d9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"[ -e \"/sys/bus/pci/devices/$VF/driver/unbind\" ] \u0026\u0026 echo \"$VF\" | sudo -n tee \"/sys/bus/pci/devices/$VF/driver/unbind\" \u003e/dev/null; echo pci_sim_vfio_pci | sudo -n tee \"/sys/bus/pci/devices/$VF/driver_override\" \u003e/dev/null; echo \"$VF\" | sudo -n tee /sys/bus/pci/drivers_probe \u003e/dev/null; readlink -f \"/sys/bus/pci/devices/$VF/driver\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"export IMAGE VF QEMU_DEADLINE"},{"line_number":36,"context_line":"python3 - \u003c\u003c\u0027PY\u0027"},{"line_number":37,"context_line":"import os, pty, select, subprocess, sys, time"},{"line_number":38,"context_line":"image\u003dos.environ[\u0027IMAGE\u0027]; vf\u003dos.environ[\u0027VF\u0027]; deadline_s\u003dint(os.environ.get(\u0027QEMU_DEADLINE\u0027,\u0027120\u0027))"},{"line_number":39,"context_line":"cmd\u003d[\u0027sudo\u0027,\u0027-n\u0027,\u0027qemu-system-x86_64\u0027,\u0027-nodefaults\u0027,\u0027-display\u0027,\u0027none\u0027,\u0027-serial\u0027,\u0027stdio\u0027,\u0027-monitor\u0027,\u0027none\u0027,\u0027-machine\u0027,\u0027q35,accel\u003dkvm\u0027,\u0027-cpu\u0027,\u0027host\u0027,\u0027-smp\u0027,\u00271\u0027,\u0027-m\u0027,\u0027512M\u0027,\u0027-snapshot\u0027,\u0027-drive\u0027,f\u0027file\u003d{image},if\u003dvirtio,format\u003dqcow2\u0027,\u0027-device\u0027,f\u0027vfio-pci,host\u003d{vf}\u0027,\u0027-no-reboot\u0027]"}],"source_content_type":"text/x-sh","patch_set":5,"id":"9b7e9645_10fa943f","line":36,"in_reply_to":"de2bca73_7bc66293","updated":"2026-06-15 15:04:20.000000000","message":"Done","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"}],"pci-sim/run_cirros_vfio_userdata_echo.sh":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"1a645b3bc3b1e3474c9c58564bcf7cfb1b6b91a0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"# SPDX-License-Identifier: GPL-2.0"},{"line_number":3,"context_line":"# Boot cirros with config-drive user_data to test the passed-through fake VF"},{"line_number":4,"context_line":"# from inside the guest.  Bounded by outer timeout and internal QEMU deadline."}],"source_content_type":"text/x-sh","patch_set":5,"id":"d6d68835_1466702c","line":1,"updated":"2026-06-04 14:40:14.000000000","message":"same point as the previous bash script, some whitespace would be very helpful here","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f4fae4a56fbd9a974bc0c7ef5d9aea0b821358d9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"# SPDX-License-Identifier: GPL-2.0"},{"line_number":3,"context_line":"# Boot cirros with config-drive user_data to test the passed-through fake VF"},{"line_number":4,"context_line":"# from inside the guest.  Bounded by outer timeout and internal QEMU deadline."}],"source_content_type":"text/x-sh","patch_set":5,"id":"9e0d4532_61cd7f76","line":1,"in_reply_to":"7da01f1c_2036a724","updated":"2026-06-15 15:04:20.000000000","message":"Done","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5d40238b17d2a8261648924650c07fd558763963","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env bash"},{"line_number":2,"context_line":"# SPDX-License-Identifier: GPL-2.0"},{"line_number":3,"context_line":"# Boot cirros with config-drive user_data to test the passed-through fake VF"},{"line_number":4,"context_line":"# from inside the guest.  Bounded by outer timeout and internal QEMU deadline."}],"source_content_type":"text/x-sh","patch_set":5,"id":"7da01f1c_2036a724","line":1,"in_reply_to":"d6d68835_1466702c","updated":"2026-06-04 15:05:18.000000000","message":"yep\n\ni basiclly gerneated this to test spefic aspect of the module but i have not spent much time on makign thse maintianable\n\nletm we tidy these up properly.","commit_id":"41398512fc77cb55da86d531b88961b7ac9fa187"}]}
