)]}'
{".zuul.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2c2768b2b88a466a1d061fb9416fc0f5b41c477","unresolved":true,"context_lines":[{"line_number":18,"context_line":"      devstack_localrc:"},{"line_number":19,"context_line":"        ENABLE_NVMEVIRT: true"},{"line_number":20,"context_line":"      devstack_local_conf:"},{"line_number":21,"context_line":"        post-config:"},{"line_number":22,"context_line":"          $CYBORG_CONF:"},{"line_number":23,"context_line":"            agent:"},{"line_number":24,"context_line":"              enabled_drivers: pci_driver"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"e187c85b_a9bffe66","line":21,"updated":"2026-02-17 20:19:25.000000000","message":"you need to confire nova\u0027s cpu_shared_set as well.","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":18,"context_line":"      devstack_localrc:"},{"line_number":19,"context_line":"        ENABLE_NVMEVIRT: true"},{"line_number":20,"context_line":"      devstack_local_conf:"},{"line_number":21,"context_line":"        post-config:"},{"line_number":22,"context_line":"          $CYBORG_CONF:"},{"line_number":23,"context_line":"            agent:"},{"line_number":24,"context_line":"              enabled_drivers: pci_driver"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"4d7030cd_0d2c04ca","line":21,"in_reply_to":"e187c85b_a9bffe66","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2c2768b2b88a466a1d061fb9416fc0f5b41c477","unresolved":true,"context_lines":[{"line_number":23,"context_line":"            agent:"},{"line_number":24,"context_line":"              enabled_drivers: pci_driver"},{"line_number":25,"context_line":"            pci:"},{"line_number":26,"context_line":"              passthrough_whitelist: \u0027{\"vendor_id\":\"0c51\",\"product_id\":\"0110\"}\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"- job:"},{"line_number":29,"context_line":"    name: cyborg-tox-bandit"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"b5f046ee_688fcbc2","line":26,"updated":"2026-02-17 20:19:25.000000000","message":"not fo future us\nwe really shoudl not allow nvme device to be used with the pci_driver\n\nbut we will fix that with a new nvme driver in 2026.2\n\nprobably just with a warning ot be fare but there wont be any multi tancy if you use an nvme device with the generic driver.","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            agent:"},{"line_number":24,"context_line":"              enabled_drivers: pci_driver"},{"line_number":25,"context_line":"            pci:"},{"line_number":26,"context_line":"              passthrough_whitelist: \u0027{\"vendor_id\":\"0c51\",\"product_id\":\"0110\"}\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"- job:"},{"line_number":29,"context_line":"    name: cyborg-tox-bandit"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9f92899d_f8ab14c0","line":26,"in_reply_to":"b5f046ee_688fcbc2","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3dd6d1792285f479f02c3100813e3f0fea3ffc3d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"      - release-notes-jobs-python3"},{"line_number":60,"context_line":"      - publish-openstack-docs-pti"},{"line_number":61,"context_line":"      - openstack-python3-jobs"},{"line_number":62,"context_line":"    check:"},{"line_number":63,"context_line":"      jobs:"},{"line_number":64,"context_line":"        - cyborg-nvme-tempest"},{"line_number":65,"context_line":"    gate:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"94a853b0_802bbf2b","line":62,"in_reply_to":"85534b80_83b519cc","updated":"2026-02-18 12:34:23.000000000","message":"this is true we have a rule that if a job is votign in check it shoudl alos be in gate but in this case you just commeitng out the ohter jobs to saw ci time so its fine","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e789f13eb02b00a8c1ca000ae30f613122e2b117","unresolved":true,"context_lines":[{"line_number":1,"context_line":"- nodeset:"},{"line_number":2,"context_line":"    name: cyborg-single-node-noble"},{"line_number":3,"context_line":"    nodes:"},{"line_number":4,"context_line":"      - name: controller"},{"line_number":5,"context_line":"        label: ubuntu-noble-8GB"},{"line_number":6,"context_line":"    groups:"},{"line_number":7,"context_line":"      - name: tempest"},{"line_number":8,"context_line":"        nodes:"},{"line_number":9,"context_line":"          - controller"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"- job:"},{"line_number":12,"context_line":"    name: cyborg-nvme-tempest"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"2b3fbc15_4c42bcf6","line":9,"range":{"start_line":1,"start_character":0,"end_line":9,"end_character":22},"updated":"2026-03-02 17:00:04.000000000","message":"let try doing this as a 2 node job\n\na contoler and a dedicated compute\n\non the compute  we can instead supprot 4cpu host","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5d415a5f9bbc31177789f1d636652f453c0121a","unresolved":true,"context_lines":[{"line_number":1,"context_line":"- nodeset:"},{"line_number":2,"context_line":"    name: cyborg-single-node-noble"},{"line_number":3,"context_line":"    nodes:"},{"line_number":4,"context_line":"      - name: controller"},{"line_number":5,"context_line":"        label: ubuntu-noble-8GB"},{"line_number":6,"context_line":"    groups:"},{"line_number":7,"context_line":"      - name: tempest"},{"line_number":8,"context_line":"        nodes:"},{"line_number":9,"context_line":"          - controller"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"- job:"},{"line_number":12,"context_line":"    name: cyborg-nvme-tempest"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"8cf53c4d_4fca32ed","line":9,"range":{"start_line":1,"start_character":0,"end_line":9,"end_character":22},"in_reply_to":"2b3fbc15_4c42bcf6","updated":"2026-03-03 12:27:52.000000000","message":"we can try this after\ni ment to deelte this comment but basiclly fi we really do need isocpus we might be able to get away with haveing a dedicated compute\nprovide 2 cores ot nvmevirt and still be able to run basic tempest tests.\n\nif we can avoid that however we should","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8806532576ef85beb4ba4a9dba5e9225ece199a9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"- nodeset:"},{"line_number":2,"context_line":"    name: cyborg-single-node-noble"},{"line_number":3,"context_line":"    nodes:"},{"line_number":4,"context_line":"      - name: controller"},{"line_number":5,"context_line":"        label: ubuntu-noble-8GB"},{"line_number":6,"context_line":"    groups:"},{"line_number":7,"context_line":"      - name: tempest"},{"line_number":8,"context_line":"        nodes:"},{"line_number":9,"context_line":"          - controller"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"- job:"},{"line_number":12,"context_line":"    name: cyborg-nvme-tempest"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"bb7af6f6_45e325ef","line":9,"range":{"start_line":1,"start_character":0,"end_line":9,"end_character":22},"in_reply_to":"8cf53c4d_4fca32ed","updated":"2026-03-11 12:18:28.000000000","message":"Acknowledged","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5d415a5f9bbc31177789f1d636652f453c0121a","unresolved":true,"context_lines":[{"line_number":18,"context_line":"    parent: cyborg-tempest"},{"line_number":19,"context_line":"    nodeset: cyborg-single-node-noble"},{"line_number":20,"context_line":"    pre-run:"},{"line_number":21,"context_line":"      - playbooks/nvmevirt-pre.yaml"},{"line_number":22,"context_line":"    required-projects:"},{"line_number":23,"context_line":"      - name: snu-csl/nvmevirt"},{"line_number":24,"context_line":"        override-checkout: main"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"fbad477d_6438af72","line":21,"updated":"2026-03-03 12:27:52.000000000","message":"and this.\n\nassuming it end up being functional","commit_id":"b2ed5b021707821eb66e78c6af1fc63d2d897879"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8806532576ef85beb4ba4a9dba5e9225ece199a9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    parent: cyborg-tempest"},{"line_number":19,"context_line":"    nodeset: cyborg-single-node-noble"},{"line_number":20,"context_line":"    pre-run:"},{"line_number":21,"context_line":"      - playbooks/nvmevirt-pre.yaml"},{"line_number":22,"context_line":"    required-projects:"},{"line_number":23,"context_line":"      - name: snu-csl/nvmevirt"},{"line_number":24,"context_line":"        override-checkout: main"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"35537e1b_ff6bf794","line":21,"in_reply_to":"fbad477d_6438af72","updated":"2026-03-11 12:18:28.000000000","message":"Acknowledged","commit_id":"b2ed5b021707821eb66e78c6af1fc63d2d897879"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5d415a5f9bbc31177789f1d636652f453c0121a","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        post-config:"},{"line_number":31,"context_line":"          $NOVA_CONF:"},{"line_number":32,"context_line":"            compute:"},{"line_number":33,"context_line":"              cpu_shared_set: 0-5"},{"line_number":34,"context_line":"          $CYBORG_CONF:"},{"line_number":35,"context_line":"            agent:"},{"line_number":36,"context_line":"              # TODO(chandankumar): Replace pci_driver with a dedicated"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"808e6a25_b76d5ba2","line":33,"updated":"2026-03-03 12:27:52.000000000","message":"without isolcpus we can remove this\n\nbut obvioulsy we need to confirm if that even works first","commit_id":"b2ed5b021707821eb66e78c6af1fc63d2d897879"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f14d1a2788e064ea9a248ed497192bb3a4f53e2f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        post-config:"},{"line_number":31,"context_line":"          $NOVA_CONF:"},{"line_number":32,"context_line":"            compute:"},{"line_number":33,"context_line":"              cpu_shared_set: 0-5"},{"line_number":34,"context_line":"          $CYBORG_CONF:"},{"line_number":35,"context_line":"            agent:"},{"line_number":36,"context_line":"              # TODO(chandankumar): Replace pci_driver with a dedicated"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"cc53e252_e1015367","line":33,"in_reply_to":"808e6a25_b76d5ba2","updated":"2026-03-10 06:45:54.000000000","message":"Done","commit_id":"b2ed5b021707821eb66e78c6af1fc63d2d897879"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"00fe0db6d7fc4951973ddcfab925df02c028b378","unresolved":true,"context_lines":[{"line_number":23,"context_line":"      - name: snu-csl/nvmevirt"},{"line_number":24,"context_line":"        override-checkout: main"},{"line_number":25,"context_line":"    vars:"},{"line_number":26,"context_line":"      nslookup_target: \u0027opendev.org\u0027"},{"line_number":27,"context_line":"      devstack_localrc:"},{"line_number":28,"context_line":"        CYBORG_ENABLE_NVMEVIRT: true"},{"line_number":29,"context_line":"      devstack_local_conf:"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"899e5934_ec830658","line":26,"updated":"2026-03-09 12:55:27.000000000","message":"can you leave a comment to note this is needed by the post-reboot-tasks role","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f14d1a2788e064ea9a248ed497192bb3a4f53e2f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"      - name: snu-csl/nvmevirt"},{"line_number":24,"context_line":"        override-checkout: main"},{"line_number":25,"context_line":"    vars:"},{"line_number":26,"context_line":"      nslookup_target: \u0027opendev.org\u0027"},{"line_number":27,"context_line":"      devstack_localrc:"},{"line_number":28,"context_line":"        CYBORG_ENABLE_NVMEVIRT: true"},{"line_number":29,"context_line":"      devstack_local_conf:"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"9bdc4135_ab92ea37","line":26,"in_reply_to":"899e5934_ec830658","updated":"2026-03-10 06:45:54.000000000","message":"Done","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"007588463470200743418f0b884605c0931b2154","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        nodes:"},{"line_number":58,"context_line":"          - controller"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- job:"},{"line_number":61,"context_line":"    name: cyborg-nvme-tempest"},{"line_number":62,"context_line":"    description: |"},{"line_number":63,"context_line":"      Tempest integration tests for Cyborg with NVMeVirt emulated"}],"source_content_type":"text/x-yaml","patch_set":41,"id":"9faa4539_7ffdc0ad","line":60,"in_reply_to":"08a42269_c2e8c290","updated":"2026-05-08 10:44:21.000000000","message":"yes although we did say we shoudl move them here so we will do that in a seperate patch to have the job definiotn in the service rather then the plugin","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6c4d60040e551a4d52dd950ad503414cfec57e24","unresolved":true,"context_lines":[{"line_number":57,"context_line":"        nodes:"},{"line_number":58,"context_line":"          - controller"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- job:"},{"line_number":61,"context_line":"    name: cyborg-nvme-tempest"},{"line_number":62,"context_line":"    description: |"},{"line_number":63,"context_line":"      Tempest integration tests for Cyborg with NVMeVirt emulated"}],"source_content_type":"text/x-yaml","patch_set":41,"id":"08a42269_c2e8c290","line":60,"in_reply_to":"194739be_bc7483de","updated":"2026-05-08 10:15:44.000000000","message":"\u003e The .zuul.yaml cyborg-nvme-tempest job does not define an irrelevant-files list. While the parent job\u0027s irrelevant-files may cover some cases, the playbook path would still trigger the job even for unrelated changes.\n\u003e \n\u003e **Severity**: SUGGESTION | **Confidence**: 0.7\n\u003e \n\u003e **Benefit**: Avoiding unnecessary CI runs saves resources and reduces gate time.\n\u003e \n\u003e **Recommendation**:\n\u003e Consider adding irrelevant-files to the cyborg-nvme-tempest job to skip it when only non-devstack, non-playbook files change. However, this is a minor optimization and the current behavior is safe.\n\nthe parent job is defined in the tempest plugin https://github.com/openstack/cyborg-tempest-plugin/blob/80a60518b415c0eeb51e47c322eeb675f35482e9/.zuul.yaml#L51 and it has a reasonable list of irrelevant files. I find it odd to have the job definitions in the tempest plugin, but that is out of the scope for this patch","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"04b333da8ef0a1ad7e94d947455c55ee6ff4622a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        nodes:"},{"line_number":58,"context_line":"          - controller"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- job:"},{"line_number":61,"context_line":"    name: cyborg-nvme-tempest"},{"line_number":62,"context_line":"    description: |"},{"line_number":63,"context_line":"      Tempest integration tests for Cyborg with NVMeVirt emulated"}],"source_content_type":"text/x-yaml","patch_set":41,"id":"e5bcacf8_b7c226b1","line":60,"in_reply_to":"9faa4539_7ffdc0ad","updated":"2026-05-08 10:47:16.000000000","message":"I pushed a patch to start the move and added a topic in next IRC meeting https://etherpad.opendev.org/p/openstack-cyborg-irc-meeting#L50","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"abd5e85eda0b404b63f4e9122f83e19162429337","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"4540da56_ffafb9c9","updated":"2026-03-03 11:54:55.000000000","message":"Let me try without isolcpus","commit_id":"79669b12467317d8cc6e66eb66ccb307e21e6a4f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e789f13eb02b00a8c1ca000ae30f613122e2b117","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"379293d0_1ee4d413","updated":"2026-03-02 17:00:04.000000000","message":"we unfortunetly hti the 3 retry limit so the pre-playbook is not reliable enough to proceed with we can still land on the raxpace flex node\n\nso we either need to put this in the experimental pipeline or have it be a perod or nonvoitng job.\n\nunless we can remove the dedication fo those cores to nvmevirt.\n\ni know they recomment we use isolcpus but is it possibel to not do that\n\nhttps://github.com/snu-csl/nvmevirt?tab\u003dreadme-ov-file#using-nvmevirt\n\ncan we test that.","commit_id":"79669b12467317d8cc6e66eb66ccb307e21e6a4f"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"67d66d60da101dd56ff4117e4717c2b916f0b513","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"d9c8cb47_d6c334d6","updated":"2026-03-09 11:00:02.000000000","message":"and based on inputs from ai (there is a lot of comments to get through ones remained unaddressed without some guidance):\n\n**`cpu_shared_set` not configured in Zuul job** - Sean explicitly asked for this (PS4, PS12).                                                                                                               \n   With isolcpus now empty by default, NVMeVirt CPUs (2,3) remain in the general scheduler,\n   so there\u0027s no hard conflict. However, for correctness and to match Sean\u0027s feedback, the\n   job should ideally set `cpu_shared_set` to exclude NVMeVirt CPUs (e.g., `0-1,4-7`) to\n   prevent Nova from scheduling vCPUs on cores running NVMeVirt I/O threads.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5eb0f60cf43920e44cfdb01e7c38861f46c9f82e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"a2477758_bd9ed55e","updated":"2026-03-06 17:18:09.000000000","message":"the tox failure is a know regression globaly and there are patches in place to pin it\n\nwe will likely need to modify our tox config to modernise them seperatly but for now we can recheck this once that is rsolved.\n\nbefore merging this i woudl like to see at least 1 new tempest test taht will use the new device adn a 3 partch to this repo to enable that test\n\nso 3 patches in total\n\nthis patch\none to the tempet plugin that depend on this patch to add the new testcase\na final patch to this repot that depend on the tempest pugin change to show ti workign end to end.\n\nwe will traget all fo this to after RC1 is created and master has reopend for 2026.2\n\n-1 partly for code freeze and partly to highlihg the need to have test actully using this before we proceed.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f14d1a2788e064ea9a248ed497192bb3a4f53e2f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"d608e0a9_f5527111","in_reply_to":"cddcac55_a6443648","updated":"2026-03-10 06:45:54.000000000","message":"Acknowledged","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"957eb6071ca1d852c330c385a94c236ac865e18f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"a435fd16_deb57ebd","in_reply_to":"d608e0a9_f5527111","updated":"2026-03-10 10:40:42.000000000","message":"In CI, The existing nodeset will not always get 8 vcpus irrespective of 8 GB RAM nodeset. We have seen retry limit in the past run due to 8 vCPUS explicit check.\n\nThank you Sean for clarifying it around cpu_shared_set. Since we are not sure about the node will get more than 4 vCPUS. So I am not adding cpu_shared_set in the zuul job.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0490a200973a9c2793e11e125fe09db36b37fbc6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"cddcac55_a6443648","in_reply_to":"d9c8cb47_d6c334d6","updated":"2026-03-09 12:44:04.000000000","message":"i didnt ask to exclue the NVMEVirt cpus i asked to exclude the isolcpu cores.\n\nsincethat is now empty we dod not need to configure cpu_shared_set\n\ni should also note that we cant assume the vms have 8 cpus so if we were to configure cpu_shared_set we would have to compute it dynmaiclly and only add 4-7 if those cores existed.\n\ndepending on the provier we will get etiehr 4 or 8 or in very rare cases 16 cpus if we were using a diffent node pool lable.\n\nthis was not the case a number of year ago but we canonly rely on at most 4 cores in static config.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"1357c1478b39c84eda9cfffa8920c225693b40d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"78e6df44_29e60758","updated":"2026-03-10 06:04:02.000000000","message":"Need to address few more comments","commit_id":"cceb26f290980be08a4c08d2d4e3f2e9547cd36a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"adf8e1261b6c9d3cde28d3d3163d5b1701bc5896","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"d65fbdf3_a9bf2b3c","updated":"2026-03-11 12:19:21.000000000","message":"it did work by the way\n\n2026-03-11 10:03:39.912944 | TASK [Check if vfio module is loaded]\n2026-03-11 10:03:40.701629 | controller | cat: /sys/module/vfio/parameters/enable_unsafe_noiommu_mode: No such file or directory\n2026-03-11 10:03:40.609245 | controller | ok: Runtime: 0:00:00.003576\n2026-03-11 10:03:40.618831 | \n2026-03-11 10:03:40.618945 | TASK [Enable vfio unsafe no-IOMMU mode]\n2026-03-11 10:03:41.319710 | controller | ok: Runtime: 0:00:00.020048\n2026-03-11 10:03:41.332005 | \n2026-03-11 10:03:41.332179 | TASK [Verify vfio no-IOMMU mode is enabled]\n2026-03-11 10:03:42.190514 | controller | Y\n2026-03-11 10:03:42.032538 | controller | ok: Runtime: 0:00:00.003815\n2026-03-11 10:03:42.042681 | \n2026-03-11 10:03:42.042856 | TASK [Show vfio no-IOMMU mode status]\n2026-03-11 10:03:42.094202 | controller | ok: VFIO no-IOMMU mode: Y","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"c87cc1e88ebdc37eb84b89986658c8dd110a8223","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"e6425e91_f33be9e3","in_reply_to":"d65fbdf3_a9bf2b3c","updated":"2026-03-11 12:28:47.000000000","message":"Based on my testing https://review.opendev.org/c/openstack/cyborg-tempest-plugin/+/979847 (Not ready for review), https://zuul.opendev.org/t/openstack/build/7b19bfd73ece47c7928a333ccda8c463 \nhttps://7030c944013ae8180291-7130cff635b715a96cb8254a2740af6b.ssl.cf5.rackcdn.com/openstack/7b19bfd73ece47c7928a333ccda8c463/testr_results.html\n\ncyborg_tempest_plugin.tests.scenario.test_pci_device_ops.TestPciDeviceOps.test_pci_device_basic_ops\ntests passes pci device while creating vm is failing\n```\nTraceback (most recent call last):\n  File \"/opt/stack/tempest/tempest/common/utils/__init__.py\", line 65, in wrapper\n    return f(*func_args, **func_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/cyborg_tempest_plugin/tests/scenario/test_pci_device_ops.py\", line 152, in test_pci_device_basic_ops\n    instance \u003d self.create_server(\n               ^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/scenario/manager.py\", line 349, in create_server\n    body, _ \u003d compute.create_test_server(\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/common/compute.py\", line 345, in create_test_server\n    with excutils.save_and_reraise_exception():\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/oslo_utils/excutils.py\", line 267, in __exit__\n    self.force_reraise()\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/oslo_utils/excutils.py\", line 233, in force_reraise\n    raise self.value\n  File \"/opt/stack/tempest/tempest/common/compute.py\", line 328, in create_test_server\n    server \u003d waiters.wait_for_server_status(\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/opt/stack/tempest/tempest/common/waiters.py\", line 80, in wait_for_server_status\n    raise exceptions.BuildErrorException(details, server_id\u003dserver_id)\ntempest.exceptions.BuildErrorException: Server af96ee77-64f1-462d-9eb4-bcb6ae6eea91 failed to build and is in ERROR status\nDetails: Fault: {\u0027code\u0027: 500, \u0027created\u0027: \u00272026-03-11T11:06:41Z\u0027, \u0027message\u0027: \u0027Exceeded maximum number of retries. Exhausted all hosts available for retrying build failures for instance af96ee77-64f1-462d-9eb4-bcb6ae6eea91.\u0027}. Request ID of server operation performed before checking the server status req-c9874852-63cf-4c84-8c88-f5e8bf0bd2dc.\n```\nBased on the log in nova-compute https://7030c944013ae8180291-7130cff635b715a96cb8254a2740af6b.ssl.cf5.rackcdn.com/openstack/7b19bfd73ece47c7928a333ccda8c463/controller/logs/screen-n-cpu.txt\n```\nMar 11 11:06:34.080918 np596a64f55d6f4 nova-compute[69096]: : libvirt.libvirtError: unsupported configuration: host doesn\u0027t support passthrough of host PCI devices\nMar 11 11:06:34.080918 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest Traceback (most recent call last):\nMar 11 11:06:34.080918 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest   File \"/opt/stack/nova/nova/virt/libvirt/guest.py\", line 159, in launch\nMar 11 11:06:34.080918 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest     return self._domain.createWithFlags(flags)\nMar 11 11:06:34.080918 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nMar 11 11:06:34.080918 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest   File \"/opt/stack/data/venv/lib/python3.12/site-packages/eventlet/tpool.py\", line 186, in doit\nMar 11 11:06:34.080918 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest     result \u003d proxy_call(self._autowrap, f, *args, **kwargs)\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest   File \"/opt/stack/data/venv/lib/python3.12/site-packages/eventlet/tpool.py\", line 144, in proxy_call\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest     rv \u003d execute(f, *args, **kwargs)\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest          ^^^^^^^^^^^^^^^^^^^^^^^^^^^\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest   File \"/opt/stack/data/venv/lib/python3.12/site-packages/eventlet/tpool.py\", line 125, in execute\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest     raise e.with_traceback(tb)\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest   File \"/opt/stack/data/venv/lib/python3.12/site-packages/eventlet/tpool.py\", line 82, in tworker\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest     rv \u003d meth(*args, **kwargs)\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest          ^^^^^^^^^^^^^^^^^^^^^\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest   File \"/usr/lib/python3/dist-packages/libvirt.py\", line 1415, in createWithFlags\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest     raise libvirtError(\u0027virDomainCreateWithFlags() failed\u0027)\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest libvirt.libvirtError: unsupported configuration: host doesn\u0027t support passthrough of host PCI devices\nMar 11 11:06:34.084223 np596a64f55d6f4 nova-compute[69096]: ERROR nova.virt.libvirt.guest \n```\n\nAfter enabling no-IOMMU mode, the test are still failing with unsupported configuration: host doesn\u0027t support passthrough of host PCI devices error.\n\nI will keep this test to follow whitebox style testing and also add one more test around bind the arq and unbind it based on yesterday cyborg meeting discussion.","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1db28f47196bb534943860a5516deb937429438a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":27,"id":"fd212951_711786cb","in_reply_to":"e6425e91_f33be9e3","updated":"2026-03-11 13:05:26.000000000","message":"you are nto pre-binding the nvme device to vfio-pci\ni think you need to do that","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"78f2b14b53f7b8ac5e785fad695e2591f7ea57c5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":27,"id":"3fb17bb0_c6f2f203","in_reply_to":"fd212951_711786cb","updated":"2026-03-11 13:06:45.000000000","message":"whitebox test should be put in https://opendev.org/openstack/whitebox-tempest-plugin/src/branch/master/whitebox_tempest_plugin by the way not the main cybrog one.","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"b5e40192df3ccd00190f3a1f4bfefdff6acb1ef3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":41,"id":"8c2b7d2b_12ad9047","updated":"2026-05-08 10:47:01.000000000","message":"I am going to drop vfio and iommu piece from this patch and move it to a seperate one till we get rdo third party job up.","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"007588463470200743418f0b884605c0931b2154","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":41,"id":"41e4dbdb_ad2db5d8","updated":"2026-05-08 10:44:21.000000000","message":"i have not actully reviewd this just saw joan\u0027s comemnt about the job in my email","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"}],"devstack/README.rst":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f14d1a2788e064ea9a248ed497192bb3a4f53e2f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    At least 2 CPUs are required. The first CPU runs the dispatcher"},{"line_number":54,"context_line":"    thread and the remaining CPUs run I/O worker threads. This is"},{"line_number":55,"context_line":"    always passed to the NVMeVirt kernel module via the ``cpus``"},{"line_number":56,"context_line":"    parameter. These CPUs must **not** overlap with Nova\u0027s"},{"line_number":57,"context_line":"    ``cpu_shared_set``. If ``cyborg_nvmevirt_isolcpus`` is set in"},{"line_number":58,"context_line":"    the Ansible pre-run playbook, its value must match this setting."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"54d14f11_53357b72","line":56,"in_reply_to":"11e9993e_2614ddd1","updated":"2026-03-10 06:45:54.000000000","message":"Done","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3b775eaba6803084fe56392781c848bd2a35ed27","unresolved":true,"context_lines":[{"line_number":53,"context_line":"    At least 2 CPUs are required. The first CPU runs the dispatcher"},{"line_number":54,"context_line":"    thread and the remaining CPUs run I/O worker threads. This is"},{"line_number":55,"context_line":"    always passed to the NVMeVirt kernel module via the ``cpus``"},{"line_number":56,"context_line":"    parameter. These CPUs must **not** overlap with Nova\u0027s"},{"line_number":57,"context_line":"    ``cpu_shared_set``. If ``cyborg_nvmevirt_isolcpus`` is set in"},{"line_number":58,"context_line":"    the Ansible pre-run playbook, its value must match this setting."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"11e9993e_2614ddd1","line":56,"in_reply_to":"30536a9c_0396d927","updated":"2026-03-09 12:39:31.000000000","message":"the current text is actrully wrong \n\n`CYBORG_NVMEVIRT_CPUS` and nova `cpu_shared_set` can overlap\n\nwhat cant overlap is `isolcpus` and `cpu_shared_set`\n\nso the comment should be about `cyborg_nvmevirt_isolcpus`","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3b775eaba6803084fe56392781c848bd2a35ed27","unresolved":true,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"       memmap\u003d512M\\$7G"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"   If ``cyborg_nvmevirt_isolcpus`` is set, you should also see::"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"       isolcpus\u003d2,3"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"   If ``memmap`` is missing or malformed (e.g. ``memmap\u003d512MG``"},{"line_number":140,"context_line":"   without the ``\\$`` separator), the memory was not reserved."}],"source_content_type":"text/x-rst","patch_set":17,"id":"b942f981_fdaa7c16","line":137,"range":{"start_line":135,"start_character":1,"end_line":137,"end_character":19},"updated":"2026-03-09 12:39:31.000000000","message":"can we remove this guidace now?","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f14d1a2788e064ea9a248ed497192bb3a4f53e2f","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"       memmap\u003d512M\\$7G"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"   If ``cyborg_nvmevirt_isolcpus`` is set, you should also see::"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"       isolcpus\u003d2,3"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"   If ``memmap`` is missing or malformed (e.g. ``memmap\u003d512MG``"},{"line_number":140,"context_line":"   without the ``\\$`` separator), the memory was not reserved."}],"source_content_type":"text/x-rst","patch_set":17,"id":"6a7677dc_bca75f58","line":137,"range":{"start_line":135,"start_character":1,"end_line":137,"end_character":19},"in_reply_to":"b942f981_fdaa7c16","updated":"2026-03-10 06:45:54.000000000","message":"Done","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"e82242e262e2688beaffd016a6341f9221539461","unresolved":false,"context_lines":[{"line_number":21,"context_line":"create emulated NVMe devices on the host. This is useful for testing"},{"line_number":22,"context_line":"Cyborg\u0027s NVMe device management without requiring physical hardware."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"To enable NVMeVirt, add the following to your ``local.conf``::"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    CYBORG_ENABLE_NVMEVIRT\u003dTrue"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"293aea79_a7d5db6b","line":24,"in_reply_to":"297560af_290ef08a","updated":"2026-03-18 05:52:53.000000000","message":"Done","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8806532576ef85beb4ba4a9dba5e9225ece199a9","unresolved":true,"context_lines":[{"line_number":21,"context_line":"create emulated NVMe devices on the host. This is useful for testing"},{"line_number":22,"context_line":"Cyborg\u0027s NVMe device management without requiring physical hardware."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"To enable NVMeVirt, add the following to your ``local.conf``::"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    CYBORG_ENABLE_NVMEVIRT\u003dTrue"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"297560af_290ef08a","line":24,"in_reply_to":"93e12cf6_720c4149","updated":"2026-03-11 12:18:28.000000000","message":"\u003e   Minimal local.conf Example\n\u003e   ~~~~~~~~~~~~~~~~~~~~~~~~~~\n\u003e   ::\n\u003e \n\u003e     [[local|localrc]]\n\u003e     enable_plugin cyborg https://opendev.org/openstack/cyborg\n\u003e     CYBORG_ENABLE_NVMEVIRT\u003dTrue\n\u003e     CYBORG_NVMEVIRT_MEMMAP_SIZE\u003d512\n\u003e     CYBORG_NVMEVIRT_MEMMAP_START\u003d7\n\u003e     CYBORG_NVMEVIRT_CPUS\u003d\"2,3\"\n\nwhiel we coudl i asked you previosuly to add a sample nvme local.conf i.e. local.conf-nvme to the devstack direcotry so if we do that it will cover the docs","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8806532576ef85beb4ba4a9dba5e9225ece199a9","unresolved":false,"context_lines":[{"line_number":40,"context_line":"``CYBORG_NVMEVIRT_BRANCH`` (default: ``main``)"},{"line_number":41,"context_line":"    Git branch to checkout from the NVMeVirt repository."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"``CYBORG_NVMEVIRT_MEMMAP_SIZE`` (default: ``512``)"},{"line_number":44,"context_line":"    Reserved memory size in MB for the emulated NVMe device. This must"},{"line_number":45,"context_line":"    match the ``memmap`` kernel boot parameter."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":27,"id":"c0940a5b_2098e78c","line":43,"in_reply_to":"32a52bf4_b5c3480c","updated":"2026-03-11 12:18:28.000000000","message":"while this is kind fo tribal knowladge i think this is ok","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6c4d60040e551a4d52dd950ad503414cfec57e24","unresolved":true,"context_lines":[{"line_number":8,"context_line":"devices for testing."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"DevStack directory contains `local.conf-nvme` local.conf for Cyborg"},{"line_number":11,"context_line":"development with nvmevirt devstack plugin. You can copy this file to"},{"line_number":12,"context_line":"the root DevStack directory to work properly Or you can follow the below"},{"line_number":13,"context_line":"sections."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":41,"id":"4e2ba827_4d63a5d3","line":11,"in_reply_to":"046a0a6b_78785b23","updated":"2026-05-08 10:15:44.000000000","message":"\u003e The devstack/README.rst has a grammatical issue on line 13: \u0027You can copy this file to the root DevStack directory to work properly Or you can follow the below sections.\u0027 The \u0027Or\u0027 should be lowercase and the sentence structure could be improved.\n\u003e \n\u003e **Severity**: SUGGESTION | **Confidence**: 0.9\n\u003e \n\u003e **Benefit**: Improved documentation readability and professionalism.\n\u003e \n\u003e **Recommendation**:\n\u003e Rewrite to: \u0027A sample local.conf (local.conf-nvme) is provided for Cyborg development with the NVMeVirt devstack plugin. Copy this file to the root DevStack directory, or configure the settings manually as described in the sections below.\u0027\n\nsmall thing but we should fix it imo","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"}],"devstack/lib/cyborg":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8806532576ef85beb4ba4a9dba5e9225ece199a9","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    # set up drivers / hardware types"},{"line_number":137,"context_line":"    iniset $CYBORG_CONF agent enabled_drivers $CYBORG_ENABLED_DRIVERS"},{"line_number":138,"context_line":"    if [[ \"$CYBORG_ENABLE_NVMEVIRT\" \u003d\u003d \"True\" ]]; then"},{"line_number":139,"context_line":"        iniset $CYBORG_CONF pci passthrough_whitelist \u0027{\"vendor_id\":\"0c51\",\"product_id\":\"0110\"}\u0027"},{"line_number":140,"context_line":"    fi"},{"line_number":141,"context_line":"}"},{"line_number":142,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":27,"id":"eb966e72_70ff2ff5","line":139,"in_reply_to":"b8bae07a_9129843a","updated":"2026-03-11 12:18:28.000000000","message":"in this case its fine since since this is gated on the kernel module","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6c4d60040e551a4d52dd950ad503414cfec57e24","unresolved":true,"context_lines":[{"line_number":136,"context_line":"    # set up drivers / hardware types"},{"line_number":137,"context_line":"    iniset $CYBORG_CONF agent enabled_drivers $CYBORG_ENABLED_DRIVERS"},{"line_number":138,"context_line":"    if [[ \"$CYBORG_ENABLE_NVMEVIRT\" \u003d\u003d \"True\" ]]; then"},{"line_number":139,"context_line":"        iniset $CYBORG_CONF pci passthrough_whitelist \u0027{\"vendor_id\":\"0c51\",\"product_id\":\"0110\"}\u0027"},{"line_number":140,"context_line":"    fi"},{"line_number":141,"context_line":"}"},{"line_number":142,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":41,"id":"c8afb84d_3e7d9456","line":139,"updated":"2026-05-08 10:15:44.000000000","message":"just for reference, we configure this vendor and product id as it\u0027s what is used by nvmevirt https://github.com/snu-csl/nvmevirt/blob/a6a4252c8c6b2286ef7a118851fd1b6bf0dd77c4/nvmev.h#L35-L36","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"}],"devstack/lib/nvmevirt":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2c2768b2b88a466a1d061fb9416fc0f5b41c477","unresolved":true,"context_lines":[{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"# Exits with an error message if any check fails."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"function check_nvmevirt_prerequisites {"},{"line_number":19,"context_line":"    local cmdline"},{"line_number":20,"context_line":"    local cpu_count"},{"line_number":21,"context_line":"    local total_ram_gb"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"2f8ef75c_389d7a32","line":18,"updated":"2026-02-17 20:19:25.000000000","message":"im not sure we need this in devstack as well if we are doign the check with the pre playbook.","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#"},{"line_number":16,"context_line":"# Exits with an error message if any check fails."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"function check_nvmevirt_prerequisites {"},{"line_number":19,"context_line":"    local cmdline"},{"line_number":20,"context_line":"    local cpu_count"},{"line_number":21,"context_line":"    local total_ram_gb"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"b81ef4cc_b91659ae","line":18,"in_reply_to":"2f8ef75c_389d7a32","updated":"2026-03-02 14:46:25.000000000","message":"Acknowledged","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2c2768b2b88a466a1d061fb9416fc0f5b41c477","unresolved":true,"context_lines":[{"line_number":130,"context_line":"    local total_ram_gb"},{"line_number":131,"context_line":"    total_ram_gb\u003d$(free -g | awk \u0027/Mem:/{print $2}\u0027)"},{"line_number":132,"context_line":"    pushd ${NVMEVIRT_DIR}"},{"line_number":133,"context_line":"    sudo insmod ./nvmev.ko memmap_start\u003d$((total_ram_gb - 1))G memmap_size\u003d512M cpus\u003d4,5"},{"line_number":134,"context_line":"    popd"},{"line_number":135,"context_line":"    sudo nvme list"},{"line_number":136,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"dbdc9367_e4f446d8","line":133,"updated":"2026-02-17 20:19:25.000000000","message":"we shoudl defien the memmap size, cpus and offset as setting in the plugins setting file and set them in teh zuul job \n\ncan you remove all the chard coded values so we can tweak this vis the zuul job definition and locally via local.conf","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    local total_ram_gb"},{"line_number":131,"context_line":"    total_ram_gb\u003d$(free -g | awk \u0027/Mem:/{print $2}\u0027)"},{"line_number":132,"context_line":"    pushd ${NVMEVIRT_DIR}"},{"line_number":133,"context_line":"    sudo insmod ./nvmev.ko memmap_start\u003d$((total_ram_gb - 1))G memmap_size\u003d512M cpus\u003d4,5"},{"line_number":134,"context_line":"    popd"},{"line_number":135,"context_line":"    sudo nvme list"},{"line_number":136,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"c0a670e2_c23e7fac","line":133,"in_reply_to":"dbdc9367_e4f446d8","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3dd6d1792285f479f02c3100813e3f0fea3ffc3d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# lib/nvmevirt"},{"line_number":4,"context_line":"# Functions to install and run nvmevirt to create emulated nvme devices on the host"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"4696fc4f_1855965d","line":1,"in_reply_to":"e61ab32c_e6a227be","updated":"2026-02-18 12:34:23.000000000","message":"unstack shoudl probably rmmod the module not clean\n\nclean could delete the repos but that is nto hwoe we normally do that  so i woudl ignore that.","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3dd6d1792285f479f02c3100813e3f0fea3ffc3d","unresolved":true,"context_lines":[{"line_number":15,"context_line":"}"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Build nvmevirt"},{"line_number":18,"context_line":"function build_nvmevirt {"},{"line_number":19,"context_line":"    pushd ${CYBORG_NVMEVIRT_DIR}"},{"line_number":20,"context_line":"    make clean"},{"line_number":21,"context_line":"    make"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"d42d81d2_95b41412","line":18,"in_reply_to":"1f815e51_7b698c6b","updated":"2026-02-18 12:34:23.000000000","message":"i think we run with set -e or -epipefile  or somethign liek that by defualt\n\nso if make exits non 0 it shoudl cuase devstack to fail but if not then yes we should call die(\"failed to compile nvmevirt\")","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":15,"context_line":"}"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Build nvmevirt"},{"line_number":18,"context_line":"function build_nvmevirt {"},{"line_number":19,"context_line":"    pushd ${CYBORG_NVMEVIRT_DIR}"},{"line_number":20,"context_line":"    make clean"},{"line_number":21,"context_line":"    make"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"4f1e5f14_38d003dc","line":18,"in_reply_to":"d42d81d2_95b41412","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3dd6d1792285f479f02c3100813e3f0fea3ffc3d","unresolved":true,"context_lines":[{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Configure nvmevirt"},{"line_number":33,"context_line":"function configure_nvmevirt {"},{"line_number":34,"context_line":"    pushd ${CYBORG_NVMEVIRT_DIR}"},{"line_number":35,"context_line":"    sudo insmod ./nvmev.ko memmap_start\u003d${CYBORG_NVMEVIRT_MEMMAP_START}G memmap_size\u003d${CYBORG_NVMEVIRT_MEMMAP_SIZE}M cpus\u003d${CYBORG_NVMEVIRT_CPUS}"},{"line_number":36,"context_line":"    popd"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"d4b98fb7_269ddc12","line":33,"in_reply_to":"03cc553c_906de0ea","updated":"2026-02-18 12:34:23.000000000","message":"ya that is also valid either approch is preferable.\n\nif you do an rmmod in unstck its not stricly required but im leanign toward the second option","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":30,"context_line":"}"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# Configure nvmevirt"},{"line_number":33,"context_line":"function configure_nvmevirt {"},{"line_number":34,"context_line":"    pushd ${CYBORG_NVMEVIRT_DIR}"},{"line_number":35,"context_line":"    sudo insmod ./nvmev.ko memmap_start\u003d${CYBORG_NVMEVIRT_MEMMAP_START}G memmap_size\u003d${CYBORG_NVMEVIRT_MEMMAP_SIZE}M cpus\u003d${CYBORG_NVMEVIRT_CPUS}"},{"line_number":36,"context_line":"    popd"}],"source_content_type":"application/x-shellscript","patch_set":6,"id":"25373465_2df3e5ec","line":33,"in_reply_to":"d4b98fb7_269ddc12","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    local nvmev_opts\u003d\"memmap_start\u003d${CYBORG_NVMEVIRT_MEMMAP_START}G\""},{"line_number":36,"context_line":"    nvmev_opts+\u003d\" memmap_size\u003d${CYBORG_NVMEVIRT_MEMMAP_SIZE}M\""},{"line_number":37,"context_line":"    nvmev_opts+\u003d\" cpus\u003d${CYBORG_NVMEVIRT_CPUS}\""},{"line_number":38,"context_line":"    sudo insmod ./nvmev.ko ${nvmev_opts} 2\u003e/dev/null \\"},{"line_number":39,"context_line":"        || echo \"Module may already be loaded\""},{"line_number":40,"context_line":"    popd"},{"line_number":41,"context_line":"    sudo nvme list"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"193195d0_7796c2b7","line":38,"in_reply_to":"2aa5bffd_78702c7f","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"488a2a2828b41d21de3e3c694f84bfb5b8bdeae5"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"0b62730beeebb46d27c3eec27033e8cc8be88457","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    local nvmev_opts\u003d\"memmap_start\u003d${CYBORG_NVMEVIRT_MEMMAP_START}G\""},{"line_number":36,"context_line":"    nvmev_opts+\u003d\" memmap_size\u003d${CYBORG_NVMEVIRT_MEMMAP_SIZE}M\""},{"line_number":37,"context_line":"    nvmev_opts+\u003d\" cpus\u003d${CYBORG_NVMEVIRT_CPUS}\""},{"line_number":38,"context_line":"    sudo insmod ./nvmev.ko ${nvmev_opts} 2\u003e/dev/null \\"},{"line_number":39,"context_line":"        || echo \"Module may already be loaded\""},{"line_number":40,"context_line":"    popd"},{"line_number":41,"context_line":"    sudo nvme list"}],"source_content_type":"application/x-shellscript","patch_set":8,"id":"2aa5bffd_78702c7f","line":38,"in_reply_to":"ce014f94_37e8bc07","updated":"2026-03-02 11:42:51.000000000","message":"https://2c24c6d5ad85ea6a734c-2577420e766b653c3ec089b9602cc4a1.ssl.cf5.rackcdn.com/openstack/438cd52e409a426c97b48f94f837bd43/job-output.txt\n```\n++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:34 :   pushd /opt/stack/nvmevirt\n2026-03-02 11:29:03.167810 | controller | ~/nvmevirt ~/devstack\n2026-03-02 11:29:03.169657 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:35 :   local nvmev_opts\u003dmemmap_start\u003d7G\n2026-03-02 11:29:03.174969 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:36 :   nvmev_opts+\u003d\u0027 memmap_size\u003d512M\u0027\n2026-03-02 11:29:03.179272 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:37 :   nvmev_opts+\u003d\u0027 cpus\u003d6,7\u0027\n2026-03-02 11:29:03.182968 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:38 :   sudo insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M cpus\u003d6,7\n2026-03-02 11:29:03.295383 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:39 :   echo \u0027Module may already be loaded\u0027\n2026-03-02 11:29:03.296227 | controller | Module may already be loaded\n2026-03-02 11:29:03.299143 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:40 :   popd\n```\nYes, correct this one hides the error, Need to handle error differently","commit_id":"488a2a2828b41d21de3e3c694f84bfb5b8bdeae5"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d8ece4a87a9367407167c2c7a2f2b50ec92ee80f","unresolved":true,"context_lines":[{"line_number":34,"context_line":"    pushd ${CYBORG_NVMEVIRT_DIR}"},{"line_number":35,"context_line":"    local nvmev_opts\u003d\"memmap_start\u003d${CYBORG_NVMEVIRT_MEMMAP_START}G\""},{"line_number":36,"context_line":"    nvmev_opts+\u003d\" memmap_size\u003d${CYBORG_NVMEVIRT_MEMMAP_SIZE}M\""},{"line_number":37,"context_line":"    # nvmev_opts+\u003d\" cpus\u003d${CYBORG_NVMEVIRT_CPUS}\""},{"line_number":38,"context_line":"    echo \"Kernel cmdline: $(cat /proc/cmdline)\""},{"line_number":39,"context_line":"    if lsmod | grep -q nvmev; then"},{"line_number":40,"context_line":"        echo \"nvmev module is already loaded\""}],"source_content_type":"application/x-shellscript","patch_set":12,"id":"5fe12190_9512adf0","line":37,"range":{"start_line":37,"start_character":3,"end_line":37,"end_character":49},"updated":"2026-03-03 13:44:18.000000000","message":"Here is the traceback when we run without isolcpus https://77cd425e91ba8aca5969-001d480fc44810e6cf7b18a72293f87e.ssl.cf2.rackcdn.com/openstack/8e0fb891e7044e8ca6ea36b78350c8b9/job-output.txt\n```\n\n++ /opt/stack/cyborg/devstack/plugin.sh:source:23 :   configure_nvmevirt\n2026-03-03 13:05:54.478162 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:34 :   pushd /opt/stack/nvmevirt\n2026-03-03 13:05:54.478187 | controller | ~/nvmevirt ~/devstack\n2026-03-03 13:05:54.482100 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:35 :   local nvmev_opts\u003dmemmap_start\u003d7G\n2026-03-03 13:05:54.486972 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:36 :   nvmev_opts+\u003d\u0027 memmap_size\u003d512M\u0027\n2026-03-03 13:05:54.493140 | controller | +++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:38 :   cat /proc/cmdline\n2026-03-03 13:05:54.501232 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:38 :   echo \u0027Kernel cmdline: BOOT_IMAGE\u003d/boot/vmlinuz-6.8.0-101-generic root\u003dLABEL\u003dcloudimg-rootfs ro memmap\u003d512M$7G console\u003dtty0 console\u003dttyS0,115200 no_timer_check nofb nomodeset gfxpayload\u003dtext\u0027\n2026-03-03 13:05:54.501291 | controller | Kernel cmdline: BOOT_IMAGE\u003d/boot/vmlinuz-6.8.0-101-generic root\u003dLABEL\u003dcloudimg-rootfs ro memmap\u003d512M$7G console\u003dtty0 console\u003dttyS0,115200 no_timer_check nofb nomodeset gfxpayload\u003dtext\n2026-03-03 13:05:54.505233 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:39 :   lsmod\n2026-03-03 13:05:54.506723 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:39 :   grep -q nvmev\n2026-03-03 13:05:54.518629 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:42 :   local insmod_err\n2026-03-03 13:05:54.521704 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:43 :   echo \u0027Running: insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M\u0027\n2026-03-03 13:05:54.521744 | controller | Running: insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M\n2026-03-03 13:05:54.526011 | controller | +++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:44 :   sudo insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M\n2026-03-03 13:05:55.039034 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:44 :   insmod_err\u003d\n2026-03-03 13:05:55.042269 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:45 :   die \u0027Failed to load nvmev module: \u0027\n2026-03-03 13:05:55.046038 | controller | ++ functions-common:die:288                 :   local exitcode\u003d137\n2026-03-03 13:05:55.050151 | controller | [Call Trace]\n```\ndmsg logs\n```\n(venv) ubuntu@chkumar-watcher-1:/tmp$ journalctl --file ./output.journal -k | grep -i nvme\nMar 03 13:05:54 npec46fe3004084 kernel: nvmev: loading out-of-tree module taints kernel.\nMar 03 13:05:54 npec46fe3004084 kernel: nvmev: module verification failed: signature and/or required key missing - tainting kernel\nMar 03 13:05:54 npec46fe3004084 kernel: NVMeVirt: Version 1.10 for \u003e\u003e NVM SSD \u003c\u003c\nMar 03 13:05:54 npec46fe3004084 kernel: NVMeVirt: Storage: 0x1c0100000-0x1e0000000 (511 MiB)\nMar 03 13:05:54 npec46fe3004084 kernel: NVMeVirt: ns 0/1: size 511 MiB\nMar 03 13:05:54 npec46fe3004084 kernel:  NVMEV_PCI_INIT+0x43a/0x440 [nvmev]\nMar 03 13:05:54 npec46fe3004084 kernel:  NVMeV_init+0x3e2/0x5d0 [nvmev]\nMar 03 13:05:54 npec46fe3004084 kernel:  ? __pfx_NVMeV_init+0x10/0x10 [nvmev]\nMar 03 13:05:54 npec46fe3004084 kernel: RIP: 0010:NVMEV_PCI_INIT+0x15d/0x440 [nvmev]\nMar 03 13:05:54 npec46fe3004084 kernel:  NVMeV_init+0x3e2/0x5d0 [nvmev]\nMar 03 13:05:54 npec46fe3004084 kernel:  ? __pfx_NVMeV_init+0x10/0x10 [nvmev]\nMar 03 13:05:54 npec46fe3004084 kernel: Modules linked in: nvmev(OE+) nvme_fabrics nvme_keyring nvme_core nvme_auth scsi_transport_iscsi xt_CHECKSUM xt_MASQUERADE nft_chain_nat bridge nfnetlink_cttimeout openvswitch nsh nf_conncount nf_nat lz4 lz4_compress isofs ip6t_REJECT nf_reject_ipv6 nft_limit ipt_REJECT nf_reject_ipv4 xt_LOG nf_log_syslog xt_limit xt_conntrack intel_rapl_msr nf_conntrack intel_rapl_common nf_defrag_ipv6 nf_defrag_ipv4 xt_tcpudp nft_compat nf_tables binfmt_misc libcrc32c crct10dif_pclmul polyval_clmulni polyval_generic ghash_clmulni_intel sha256_ssse3 sha1_ssse3 aesni_intel crypto_simd cryptd ppdev i2c_piix4 parport_pc joydev parport vmgenid input_leds mac_hid serio_raw sch_fq_codel 8021q garp mrp stp llc efi_pstore nfnetlink dmi_sysfs ip_tables x_tables autofs4 hid_generic usbhid crc32_pclmul hid psmouse pata_acpi floppy\nMar 03 13:05:54 npec46fe3004084 kernel: RIP: 0010:NVMEV_PCI_INIT+0x15d/0x440 [nvmev]\n```\nWe can see it crashed at ` nvmev: module verification failed: signature and/or required key missing - tainting kernel`","commit_id":"b2ed5b021707821eb66e78c6af1fc63d2d897879"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"# Clone nvmevirt repo from GitHub"},{"line_number":13,"context_line":"function clone_nvmevirt {"},{"line_number":14,"context_line":"    git_clone ${CYBORG_NVMEVIRT_REPO} ${CYBORG_NVMEVIRT_DIR} ${CYBORG_NVMEVIRT_BRANCH}"},{"line_number":15,"context_line":"}"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"# Build nvmevirt"}],"source_content_type":"application/x-shellscript","patch_set":17,"id":"f772849c_ccc87a9c","line":14,"in_reply_to":"127022e1_debf8bea","updated":"2026-03-06 17:13:13.000000000","message":"this shoudl be reported as a nit but its a valid suggestion\n\nit should cause devstack to fail even without that but it woudl imporve debuging slightly.\n\ni woudl treat this as a nit.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    pushd ${CYBORG_NVMEVIRT_DIR}"},{"line_number":35,"context_line":"    local nvmev_opts\u003d\"memmap_start\u003d${CYBORG_NVMEVIRT_MEMMAP_START}G\""},{"line_number":36,"context_line":"    nvmev_opts+\u003d\" memmap_size\u003d${CYBORG_NVMEVIRT_MEMMAP_SIZE}M\""},{"line_number":37,"context_line":"    nvmev_opts+\u003d\" cpus\u003d${CYBORG_NVMEVIRT_CPUS}\""},{"line_number":38,"context_line":"    echo \"Kernel cmdline: $(cat /proc/cmdline)\""},{"line_number":39,"context_line":"    if lsmod | grep -q nvmev; then"},{"line_number":40,"context_line":"        echo \"nvmev module is already loaded\""}],"source_content_type":"application/x-shellscript","patch_set":17,"id":"36062490_6b3b7f7f","line":37,"in_reply_to":"b8177ddc_d24f8b4b","updated":"2026-03-06 17:13:13.000000000","message":"that is fair, we could do that but i general prefer to do validation in settings not in the lib.\n\nwith that said we are going to be primary using this in a ci env so im not too worried about typos or other incorrect input here so i think we can disregard this for now.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8806532576ef85beb4ba4a9dba5e9225ece199a9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    else"},{"line_number":42,"context_line":"        local insmod_err"},{"line_number":43,"context_line":"        echo \"Running: insmod ./nvmev.ko ${nvmev_opts}\""},{"line_number":44,"context_line":"        insmod_err\u003d$(sudo insmod ./nvmev.ko ${nvmev_opts} 2\u003e\u00261) \\"},{"line_number":45,"context_line":"            || die \"Failed to load nvmev module: ${insmod_err}\""},{"line_number":46,"context_line":"    fi"},{"line_number":47,"context_line":"    popd"}],"source_content_type":"application/x-shellscript","patch_set":17,"id":"af560a78_2f5be4c7","line":44,"in_reply_to":"9c2f974b_de7406ac","updated":"2026-03-11 12:18:28.000000000","message":"thanks","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"38f9826ce11026e3704218ef273d503153e1fa94","unresolved":true,"context_lines":[{"line_number":41,"context_line":"    else"},{"line_number":42,"context_line":"        local insmod_err"},{"line_number":43,"context_line":"        echo \"Running: insmod ./nvmev.ko ${nvmev_opts}\""},{"line_number":44,"context_line":"        insmod_err\u003d$(sudo insmod ./nvmev.ko ${nvmev_opts} 2\u003e\u00261) \\"},{"line_number":45,"context_line":"            || die \"Failed to load nvmev module: ${insmod_err}\""},{"line_number":46,"context_line":"    fi"},{"line_number":47,"context_line":"    popd"}],"source_content_type":"application/x-shellscript","patch_set":17,"id":"9c2f974b_de7406ac","line":44,"in_reply_to":"d73efd05_71e7e987","updated":"2026-03-10 07:13:38.000000000","message":"https://review.opendev.org/c/openstack/cyborg/+/979788","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":true,"context_lines":[{"line_number":41,"context_line":"    else"},{"line_number":42,"context_line":"        local insmod_err"},{"line_number":43,"context_line":"        echo \"Running: insmod ./nvmev.ko ${nvmev_opts}\""},{"line_number":44,"context_line":"        insmod_err\u003d$(sudo insmod ./nvmev.ko ${nvmev_opts} 2\u003e\u00261) \\"},{"line_number":45,"context_line":"            || die \"Failed to load nvmev module: ${insmod_err}\""},{"line_number":46,"context_line":"    fi"},{"line_number":47,"context_line":"    popd"}],"source_content_type":"application/x-shellscript","patch_set":17,"id":"d73efd05_71e7e987","line":44,"in_reply_to":"dec0a537_838b725a","updated":"2026-03-06 17:13:13.000000000","message":"this is valid i shoudl eventually add a bash8 hook or similar to lint our devstack plugin to catch this.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"38f9826ce11026e3704218ef273d503153e1fa94","unresolved":false,"context_lines":[{"line_number":49,"context_line":"}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# Unload nvmevirt kernel module"},{"line_number":52,"context_line":"function unstack_nvmevirt {"},{"line_number":53,"context_line":"    sudo rmmod nvmev || true"},{"line_number":54,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":17,"id":"57fa87f8_4decf4c5","line":52,"in_reply_to":"ba51502c_e49abc8e","updated":"2026-03-10 07:13:38.000000000","message":"I have added unstack step but not cleanup step since we are not deleting repos during cleanup.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":false,"context_lines":[{"line_number":49,"context_line":"}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# Unload nvmevirt kernel module"},{"line_number":52,"context_line":"function unstack_nvmevirt {"},{"line_number":53,"context_line":"    sudo rmmod nvmev || true"},{"line_number":54,"context_line":"}"}],"source_content_type":"application/x-shellscript","patch_set":17,"id":"ba51502c_e49abc8e","line":52,"in_reply_to":"e8c77c53_c8dfa7c1","updated":"2026-03-06 17:13:13.000000000","message":"while this would be valid genericly the convetion is not to delete the repos in unstack or clean","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8806532576ef85beb4ba4a9dba5e9225ece199a9","unresolved":true,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# Build nvmevirt"},{"line_number":19,"context_line":"function build_nvmevirt {"},{"line_number":20,"context_line":"    pushd ${CYBORG_NVMEVIRT_DIR}"},{"line_number":21,"context_line":"    make clean"},{"line_number":22,"context_line":"    make || die \"Failed to compile nvmevirt\""},{"line_number":23,"context_line":"    popd"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"7689fe13_99365481","line":20,"in_reply_to":"d0a23fd1_fa163e15","updated":"2026-03-11 12:18:28.000000000","message":"\u003e **Suggestion**:\n\u003e Add \u0027pushd ${CYBORG_NVMEVIRT_DIR} || die \"Directory ${CYBORG_NVMEVIRT_DIR} not found\"\u0027 to provide clearer error messaging\n\nwe could make will file if we dont chnage dir so this is really just a nit.","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6c4d60040e551a4d52dd950ad503414cfec57e24","unresolved":true,"context_lines":[{"line_number":11,"context_line":"# Fail if Secure Boot is enabled."},{"line_number":12,"context_line":"function check_nvmevirt_secure_boot_disabled {"},{"line_number":13,"context_line":"    if mokutil --sb-state 2\u003e\u00261 | grep -q \u0027SecureBoot enabled\u0027; then"},{"line_number":14,"context_line":"        die $LINENO \"NVMeVirt requires Secure Boot to be disabled: \""},{"line_number":15,"context_line":"    fi"},{"line_number":16,"context_line":"}"},{"line_number":17,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":41,"id":"d8d36713_056b562d","line":14,"in_reply_to":"e92c2059_02b9f973","updated":"2026-05-08 10:15:44.000000000","message":"\u003e The die error message in check_nvmevirt_secure_boot_disabled ends with a trailing colon and space: \u0027NVMeVirt requires Secure Boot to be disabled: \u0027. This suggests additional text was intended to follow.\n\u003e \n\u003e **Severity**: SUGGESTION | **Confidence**: 0.9\n\u003e \n\u003e **Benefit**: Clearer error messages for users encountering Secure Boot issues.\n\u003e \n\u003e **Recommendation**:\n\u003e Remove the trailing colon and space. Change to: die $LINENO \u0027NVMeVirt requires Secure Boot to be disabled\u0027\n\nthis is a good suggestion, is some text missing here?","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6c4d60040e551a4d52dd950ad503414cfec57e24","unresolved":true,"context_lines":[{"line_number":20,"context_line":"    git_clone ${CYBORG_NVMEVIRT_REPO} \\"},{"line_number":21,"context_line":"        ${CYBORG_NVMEVIRT_DIR} \\"},{"line_number":22,"context_line":"        ${CYBORG_NVMEVIRT_BRANCH} \\"},{"line_number":23,"context_line":"        || die \"Failed to clone nvmevirt\""},{"line_number":24,"context_line":"}"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"# Build nvmevirt"}],"source_content_type":"application/octet-stream","patch_set":41,"id":"a5c4ddbe_9de872a5","line":23,"in_reply_to":"a63efab5_a9b4a1bb","updated":"2026-05-08 10:15:44.000000000","message":"\u003e The die call in clone_nvmevirt does not pass $LINENO, which means error messages will not indicate the line number where the failure occurred. This is inconsistent with other die calls in the file.\n\u003e \n\u003e **Severity**: HIGH | **Confidence**: 0.8\n\u003e \n\u003e **Risk**: Reduced debuggability. When clone_nvmevirt fails, the error message will not contain the line number, making it harder to locate the failing code.\n\u003e \n\u003e **Priority**: Next sprint\n\u003e **Why This Matters**: Consistent error reporting with line numbers is a standard devstack convention. All other die calls in this file pass $LINENO.\n\u003e \n\u003e **Recommendation**:\n\u003e Change to: || die $LINENO \"Failed to clone nvmevirt\". Also fix build_nvmevirt line 30 similarly: || die $LINENO \"Failed to compile nvmevirt\".\ngood catch, the line number is expected by the `die` function https://github.com/openstack/devstack/blob/03ece8f88040be9b0b14dd1cfe93076ad2419a80/functions-common#L289","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6c4d60040e551a4d52dd950ad503414cfec57e24","unresolved":true,"context_lines":[{"line_number":51,"context_line":"            \"memmap_start\u003d${CYBORG_NVMEVIRT_MEMMAP_START}G\" \\"},{"line_number":52,"context_line":"            \"memmap_size\u003d${CYBORG_NVMEVIRT_MEMMAP_SIZE}M\" \\"},{"line_number":53,"context_line":"            \"cpus\u003d${CYBORG_NVMEVIRT_CPUS}\""},{"line_number":54,"context_line":"        insmod_err\u003d$(sudo insmod ./nvmev.ko \\"},{"line_number":55,"context_line":"            \"memmap_start\u003d${CYBORG_NVMEVIRT_MEMMAP_START}G\" \\"},{"line_number":56,"context_line":"            \"memmap_size\u003d${CYBORG_NVMEVIRT_MEMMAP_SIZE}M\" \\"},{"line_number":57,"context_line":"            \"cpus\u003d${CYBORG_NVMEVIRT_CPUS}\" 2\u003e\u00261) \\"}],"source_content_type":"application/octet-stream","patch_set":41,"id":"9528add2_1c5dfb37","line":54,"in_reply_to":"a1cc62a6_4df40d7a","updated":"2026-05-08 10:15:44.000000000","message":"\u003e The insmod command\u0027s error capture has a shell pattern issue: the \u0027|| die\u0027 causes the subshell to exit before the assignment completes, resulting in an empty error message passed to die.\n\u003e \n\u003e **Severity**: HIGH | **Confidence**: 0.8\n\u003e \n\u003e **Risk**: On insmod failure, the error message will be \u0027Failed to load nvmev module: \u0027 with an empty error detail, making debugging harder. The die function also does not receive $LINENO.\n\u003e \n\u003e **Priority**: Before merge\n\u003e **Why This Matters**: Debugging kernel module load failures is critical for this feature. Without the actual error message, users will struggle to diagnose issues.\n\u003e \n\u003e **Recommendation**:\n\u003e Restructure to capture the error before calling die. For example: local insmod_err; insmod_err\u003d$(sudo insmod ... 2\u003e\u00261) || die $LINENO \"Failed to load nvmev module: ${insmod_err}\". This separates the assignment from the error check so insmod_err is populated before die is called.\n\nI think this is correct, if `insmod` writes to stderr this will not capture the  error. Also the line number is missing from die","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"6c4d60040e551a4d52dd950ad503414cfec57e24","unresolved":true,"context_lines":[{"line_number":199,"context_line":"}"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"# Unload nvmevirt kernel module"},{"line_number":202,"context_line":"function unstack_nvmevirt {"},{"line_number":203,"context_line":"    sudo rmmod nvmev || true"},{"line_number":204,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":41,"id":"69bbe49b_7272cab9","line":202,"in_reply_to":"053923c8_9140f3f6","updated":"2026-05-08 10:15:44.000000000","message":"\u003e The unstack_nvmevirt function only removes the nvmev kernel module but does not revert any of the libvirt configuration, AppArmor changes, VFIO bindings, device node permissions, or symlinks created during setup.\n\u003e \n\u003e **Severity**: WARNING | **Confidence**: 0.8\n\u003e \n\u003e **Impact**: After running unstack.sh, the host is left in a modified state: libvirt security_driver is still \u0027none\u0027, AppArmor rules still allow VFIO access, and VFIO device symlinks remain. This can cause issues if unstack/stack is repeated or if the host is reused.\n\u003e \n\u003e **Suggestion**:\n\u003e Add cleanup functions to unstack_nvmevirt that: (1) unbind the device from vfio-pci, (2) remove the compatibility symlink, (3) revert the libvirt security_driver change, (4) revert the AppArmor modification. Alternatively, document that unstack does not fully revert and a full clean.sh cycle is recommended.\n\nthis seems reasonable, particularly the change to qemu conf","commit_id":"c81cd5935d24926c5e8b4e294c0605d171dc290d"}],"devstack/plugin.sh":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3dd6d1792285f479f02c3100813e3f0fea3ffc3d","unresolved":true,"context_lines":[{"line_number":18,"context_line":"                echo_summary \"Installing Cyborg\""},{"line_number":19,"context_line":"                install_cyborg"},{"line_number":20,"context_line":"                install_cyborg_client"},{"line_number":21,"context_line":"\t\tif [[ \"$CYBORG_ENABLE_NVMEVIRT\" \u003d\u003d \"True\" ]]; then"},{"line_number":22,"context_line":"                    echo_summary \"Setting up NVMeVirt\""},{"line_number":23,"context_line":"                    setup_nvmevirt"},{"line_number":24,"context_line":"\t\t    configure_nvmevirt"}],"source_content_type":"text/x-sh","patch_set":6,"id":"df8bb860_9817d68c","line":21,"in_reply_to":"029bc709_d5e3da62","updated":"2026-02-18 12:34:23.000000000","message":"this is also valid and shoudl be fixed before we commit this","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":18,"context_line":"                echo_summary \"Installing Cyborg\""},{"line_number":19,"context_line":"                install_cyborg"},{"line_number":20,"context_line":"                install_cyborg_client"},{"line_number":21,"context_line":"\t\tif [[ \"$CYBORG_ENABLE_NVMEVIRT\" \u003d\u003d \"True\" ]]; then"},{"line_number":22,"context_line":"                    echo_summary \"Setting up NVMeVirt\""},{"line_number":23,"context_line":"                    setup_nvmevirt"},{"line_number":24,"context_line":"\t\t    configure_nvmevirt"}],"source_content_type":"text/x-sh","patch_set":6,"id":"403b8835_f9c86134","line":21,"in_reply_to":"df8bb860_9817d68c","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"9957fc2a13344511ac480d9ea8bdf927d79357cb","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"echo_summary \"cyborg devstack plugin.sh called: $1/$2\""},{"line_number":7,"context_line":"source $DEST/cyborg/devstack/lib/cyborg"},{"line_number":8,"context_line":"source $DEST/cyborg/devstack/lib/nvmevirt"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"case $1 in"},{"line_number":11,"context_line":"    \"stack\")"}],"source_content_type":"text/x-sh","patch_set":17,"id":"06c672bb_d56558b4","line":8,"updated":"2026-03-09 10:58:40.000000000","message":"nit: this should only be sources when CYBORG_ENABLE_NVMEVIRT \u003d\u003d \"True","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f14d1a2788e064ea9a248ed497192bb3a4f53e2f","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"echo_summary \"cyborg devstack plugin.sh called: $1/$2\""},{"line_number":7,"context_line":"source $DEST/cyborg/devstack/lib/cyborg"},{"line_number":8,"context_line":"source $DEST/cyborg/devstack/lib/nvmevirt"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"case $1 in"},{"line_number":11,"context_line":"    \"stack\")"}],"source_content_type":"text/x-sh","patch_set":17,"id":"9537e4aa_b9be0956","line":8,"in_reply_to":"06c672bb_d56558b4","updated":"2026-03-10 06:45:54.000000000","message":"Done","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"}],"devstack/settings":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2c2768b2b88a466a1d061fb9416fc0f5b41c477","unresolved":true,"context_lines":[{"line_number":45,"context_line":"CYBORG_CLIENT_DIR\u003d\"${DEST}/python-cyborgclient\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# nvmevirt settings"},{"line_number":48,"context_line":"ENABLE_NVMEVIRT\u003d$(trueorfalse False ENABLE_NVMEVIRT)"},{"line_number":49,"context_line":"NVMEVIRT_REPO\u003d${NVMEVIRT_REPO:-\"https://github.com/snu-csl/nvmevirt\"}"},{"line_number":50,"context_line":"NVMEVIRT_BRANCH\u003d${NVMEVIRT_BRANCH:-main}"},{"line_number":51,"context_line":"NVMEVIRT_DIR\u003d\"${DEST}/nvmevirt\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"6cb6adb7_783a0800","line":48,"updated":"2026-02-17 20:19:25.000000000","message":"by convention we shoudl prefix all the devstack plugin variable names with CYBORG_","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":false,"context_lines":[{"line_number":45,"context_line":"CYBORG_CLIENT_DIR\u003d\"${DEST}/python-cyborgclient\""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# nvmevirt settings"},{"line_number":48,"context_line":"ENABLE_NVMEVIRT\u003d$(trueorfalse False ENABLE_NVMEVIRT)"},{"line_number":49,"context_line":"NVMEVIRT_REPO\u003d${NVMEVIRT_REPO:-\"https://github.com/snu-csl/nvmevirt\"}"},{"line_number":50,"context_line":"NVMEVIRT_BRANCH\u003d${NVMEVIRT_BRANCH:-main}"},{"line_number":51,"context_line":"NVMEVIRT_DIR\u003d\"${DEST}/nvmevirt\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"a311bb14_dc7b7053","line":48,"in_reply_to":"6cb6adb7_783a0800","updated":"2026-03-06 17:13:13.000000000","message":"Done","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2c2768b2b88a466a1d061fb9416fc0f5b41c477","unresolved":true,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# nvmevirt settings"},{"line_number":48,"context_line":"ENABLE_NVMEVIRT\u003d$(trueorfalse False ENABLE_NVMEVIRT)"},{"line_number":49,"context_line":"NVMEVIRT_REPO\u003d${NVMEVIRT_REPO:-\"https://github.com/snu-csl/nvmevirt\"}"},{"line_number":50,"context_line":"NVMEVIRT_BRANCH\u003d${NVMEVIRT_BRANCH:-main}"},{"line_number":51,"context_line":"NVMEVIRT_DIR\u003d\"${DEST}/nvmevirt\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"703b50e5_66f88aa6","line":49,"updated":"2026-02-17 20:19:25.000000000","message":"we do not allow git clones in teh upstream ci\n\nso before we can proceed with this change we need to add this repo to the zuul tenant config.\n\nplease add it here https://github.com/openstack/project-config/blob/master/zuul/main.yaml#L1416\nand then make it a required-project for this job","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# nvmevirt settings"},{"line_number":48,"context_line":"ENABLE_NVMEVIRT\u003d$(trueorfalse False ENABLE_NVMEVIRT)"},{"line_number":49,"context_line":"NVMEVIRT_REPO\u003d${NVMEVIRT_REPO:-\"https://github.com/snu-csl/nvmevirt\"}"},{"line_number":50,"context_line":"NVMEVIRT_BRANCH\u003d${NVMEVIRT_BRANCH:-main}"},{"line_number":51,"context_line":"NVMEVIRT_DIR\u003d\"${DEST}/nvmevirt\""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"760ead3e_264a1919","line":49,"in_reply_to":"703b50e5_66f88aa6","updated":"2026-03-06 17:13:13.000000000","message":"Done","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3dd6d1792285f479f02c3100813e3f0fea3ffc3d","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# nvmevirt settings"},{"line_number":48,"context_line":"CYBORG_ENABLE_NVMEVIRT\u003d$(trueorfalse False CYBORG_ENABLE_NVMEVIRT)"},{"line_number":49,"context_line":"CYBORG_NVMEVIRT_REPO\u003d${CYBORG_NVMEVIRT_REPO:-\"https://github.com/snu-csl/nvmevirt\"}"},{"line_number":50,"context_line":"CYBORG_NVMEVIRT_BRANCH\u003d${CYBORG_NVMEVIRT_BRANCH:-main}"},{"line_number":51,"context_line":"CYBORG_NVMEVIRT_DIR\u003d\"${DEST}/nvmevirt\""},{"line_number":52,"context_line":"##"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"73b0397f_d70b58da","line":49,"in_reply_to":"a390a183_f0827cd4","updated":"2026-02-18 12:34:23.000000000","message":"done via CYBORG_NVMEVIRT_BRANCH\nwhich follows devstacks normal naming convetion","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3dd6d1792285f479f02c3100813e3f0fea3ffc3d","unresolved":false,"context_lines":[{"line_number":49,"context_line":"CYBORG_NVMEVIRT_REPO\u003d${CYBORG_NVMEVIRT_REPO:-\"https://github.com/snu-csl/nvmevirt\"}"},{"line_number":50,"context_line":"CYBORG_NVMEVIRT_BRANCH\u003d${CYBORG_NVMEVIRT_BRANCH:-main}"},{"line_number":51,"context_line":"CYBORG_NVMEVIRT_DIR\u003d\"${DEST}/nvmevirt\""},{"line_number":52,"context_line":"##"},{"line_number":53,"context_line":"## CYBORG_NVMEVIRT_MEMMAP_SIZE(memmap_size) refers to the reserved memory"},{"line_number":54,"context_line":"##"},{"line_number":55,"context_line":"## CYBORG_NVMEVIRT_MEMMAP_START(memmap_start) refers to the relative offset"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"8119a596_2633c823","line":52,"in_reply_to":"469f06b4_e1a46ed8","updated":"2026-02-18 12:34:23.000000000","message":"for devstack plugins we either provide a readme in the devstack dir or just document this in commetns in line in settings.","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e789f13eb02b00a8c1ca000ae30f613122e2b117","unresolved":true,"context_lines":[{"line_number":60,"context_line":"## NOTE: These values should match the configurations"},{"line_number":61,"context_line":"## specified in the /etc/default/grub."},{"line_number":62,"context_line":"##"},{"line_number":63,"context_line":"## GRUB_CMDLINE_LINUX\u003d\"memmap\u003d512M\\\\\\$7G isolcpus\u003d6,7\"\""},{"line_number":64,"context_line":"##"},{"line_number":65,"context_line":"## Where memmap allows reserving one or more ranged of unassigned memory for"},{"line_number":66,"context_line":"## use with emulated persistent memory. Minimum 512M is needed out of 8 GB RAM"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"66ca299e_4e18fba4","line":63,"range":{"start_line":63,"start_character":41,"end_line":63,"end_character":54},"updated":"2026-03-02 17:00:04.000000000","message":"so this is strongly recommened but \nwoudl we beabel to get away with not doign this","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":false,"context_lines":[{"line_number":60,"context_line":"## NOTE: These values should match the configurations"},{"line_number":61,"context_line":"## specified in the /etc/default/grub."},{"line_number":62,"context_line":"##"},{"line_number":63,"context_line":"## GRUB_CMDLINE_LINUX\u003d\"memmap\u003d512M\\\\\\$7G isolcpus\u003d6,7\"\""},{"line_number":64,"context_line":"##"},{"line_number":65,"context_line":"## Where memmap allows reserving one or more ranged of unassigned memory for"},{"line_number":66,"context_line":"## use with emulated persistent memory. Minimum 512M is needed out of 8 GB RAM"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"8ac0595a_1eda81dc","line":63,"range":{"start_line":63,"start_character":41,"end_line":63,"end_character":54},"in_reply_to":"66ca299e_4e18fba4","updated":"2026-03-06 17:13:13.000000000","message":"Done","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e789f13eb02b00a8c1ca000ae30f613122e2b117","unresolved":true,"context_lines":[{"line_number":71,"context_line":"##"},{"line_number":72,"context_line":"CYBORG_NVMEVIRT_MEMMAP_SIZE\u003d512"},{"line_number":73,"context_line":"CYBORG_NVMEVIRT_MEMMAP_START\u003d7"},{"line_number":74,"context_line":"CYBORG_NVMEVIRT_CPUS\u003d6,7"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"fa16adbc_6ed5ff1f","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":24},"updated":"2026-03-02 17:00:04.000000000","message":"and maping it to say core 2,3 (avoid core 0/1)\n\nso that this woudl work even if we end up with a 4 cpu vm.","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":false,"context_lines":[{"line_number":71,"context_line":"##"},{"line_number":72,"context_line":"CYBORG_NVMEVIRT_MEMMAP_SIZE\u003d512"},{"line_number":73,"context_line":"CYBORG_NVMEVIRT_MEMMAP_START\u003d7"},{"line_number":74,"context_line":"CYBORG_NVMEVIRT_CPUS\u003d6,7"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"7fbf0675_64ba921c","line":74,"range":{"start_line":74,"start_character":0,"end_line":74,"end_character":24},"in_reply_to":"fa16adbc_6ed5ff1f","updated":"2026-03-06 17:13:13.000000000","message":"Done","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"08b75681e4c9eeffde400fe65abcd188f179ace2","unresolved":true,"context_lines":[{"line_number":65,"context_line":"## Ansible pre-run playbook, the value must match this setting."},{"line_number":66,"context_line":"##"},{"line_number":67,"context_line":"CYBORG_NVMEVIRT_MEMMAP_SIZE\u003d512"},{"line_number":68,"context_line":"CYBORG_NVMEVIRT_MEMMAP_START\u003d7"},{"line_number":69,"context_line":"CYBORG_NVMEVIRT_CPUS\u003d${CYBORG_NVMEVIRT_CPUS:-\"2,3\"}"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"c16a035f_7e933dff","line":68,"updated":"2026-03-09 10:57:07.000000000","message":"shouldn\u0027t these 2 not be hardcoded to let in overrides from zuul?","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f14d1a2788e064ea9a248ed497192bb3a4f53e2f","unresolved":false,"context_lines":[{"line_number":65,"context_line":"## Ansible pre-run playbook, the value must match this setting."},{"line_number":66,"context_line":"##"},{"line_number":67,"context_line":"CYBORG_NVMEVIRT_MEMMAP_SIZE\u003d512"},{"line_number":68,"context_line":"CYBORG_NVMEVIRT_MEMMAP_START\u003d7"},{"line_number":69,"context_line":"CYBORG_NVMEVIRT_CPUS\u003d${CYBORG_NVMEVIRT_CPUS:-\"2,3\"}"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"1bb04d29_54b23805","line":68,"in_reply_to":"2eb1ddf6_24908086","updated":"2026-03-10 06:45:54.000000000","message":"Done","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3b775eaba6803084fe56392781c848bd2a35ed27","unresolved":true,"context_lines":[{"line_number":65,"context_line":"## Ansible pre-run playbook, the value must match this setting."},{"line_number":66,"context_line":"##"},{"line_number":67,"context_line":"CYBORG_NVMEVIRT_MEMMAP_SIZE\u003d512"},{"line_number":68,"context_line":"CYBORG_NVMEVIRT_MEMMAP_START\u003d7"},{"line_number":69,"context_line":"CYBORG_NVMEVIRT_CPUS\u003d${CYBORG_NVMEVIRT_CPUS:-\"2,3\"}"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"2eb1ddf6_24908086","line":68,"in_reply_to":"c16a035f_7e933dff","updated":"2026-03-09 12:39:31.000000000","message":"that would be a good impovement yes\n\nwe can default them to the curent values and we do not nessiarly need to specify them in zull but it woudl not be a bad idea to suport that also for local confg via the local.conf\n\n```\nCYBORG_NVMEVIRT_MEMMAP_SIZE\u003d512\nCYBORG_NVMEVIRT_MEMMAP_START\u003d7\n```\nto \n```\n##\nCYBORG_NVMEVIRT_MEMMAP_SIZE\u003d${CYBORG_NVMEVIRT_MEMMAP_SIZE:-512}\nCYBORG_NVMEVIRT_MEMMAP_START\u003d${CYBORG_NVMEVIRT_MEMMAP_START:-7}\n```","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"}],"playbooks/nvmevirt-pre.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2c2768b2b88a466a1d061fb9416fc0f5b41c477","unresolved":true,"context_lines":[{"line_number":18,"context_line":"        state: present"},{"line_number":19,"context_line":"        backrefs: yes"},{"line_number":20,"context_line":"        regexp: \u0027GRUB_CMDLINE_LINUX\u003d\"([^\"]*)\"\u0027"},{"line_number":21,"context_line":"        line: \u0027GRUB_CMDLINE_LINUX\u003d\"\\1 memmap\u003d512M\\\\\\${{ total_ram_gb | int - 1 }}G isolcpus\u003d4,5\"\u0027"},{"line_number":22,"context_line":"      become: true"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    - name: Update grub.cfg"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"d87b121f_c0814d05","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":97},"updated":"2026-02-17 20:19:25.000000000","message":"how much space are you mapping here\n\nplease add a comemtn to explin this in detail.","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2c2768b2b88a466a1d061fb9416fc0f5b41c477","unresolved":true,"context_lines":[{"line_number":18,"context_line":"        state: present"},{"line_number":19,"context_line":"        backrefs: yes"},{"line_number":20,"context_line":"        regexp: \u0027GRUB_CMDLINE_LINUX\u003d\"([^\"]*)\"\u0027"},{"line_number":21,"context_line":"        line: \u0027GRUB_CMDLINE_LINUX\u003d\"\\1 memmap\u003d512M\\\\\\${{ total_ram_gb | int - 1 }}G isolcpus\u003d4,5\"\u0027"},{"line_number":22,"context_line":"      become: true"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    - name: Update grub.cfg"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"5d9168c2_592aee7a","line":21,"range":{"start_line":21,"start_character":92,"end_line":21,"end_character":95},"updated":"2026-02-17 20:19:25.000000000","message":"use 6,7\nwe cannot have cores managed by nova overlap with isolcpus \nso your goign to have to also cofnigre \n```\n[compute]\ncpu_shared_set\u003d0-5 \n```\nor it will cause some buggy behvior with qemu start up times\n\n\nbasiclly unless you enablign cpu pinning we consider it invlied for floating vms to be spawd on cores with isolcpus\nso you should make suer they are not in teh valid set for nova ot use\nin the job definition.","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        state: present"},{"line_number":19,"context_line":"        backrefs: yes"},{"line_number":20,"context_line":"        regexp: \u0027GRUB_CMDLINE_LINUX\u003d\"([^\"]*)\"\u0027"},{"line_number":21,"context_line":"        line: \u0027GRUB_CMDLINE_LINUX\u003d\"\\1 memmap\u003d512M\\\\\\${{ total_ram_gb | int - 1 }}G isolcpus\u003d4,5\"\u0027"},{"line_number":22,"context_line":"      become: true"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    - name: Update grub.cfg"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"8937d504_1a5b3a04","line":21,"range":{"start_line":21,"start_character":92,"end_line":21,"end_character":95},"in_reply_to":"5d9168c2_592aee7a","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        state: present"},{"line_number":19,"context_line":"        backrefs: yes"},{"line_number":20,"context_line":"        regexp: \u0027GRUB_CMDLINE_LINUX\u003d\"([^\"]*)\"\u0027"},{"line_number":21,"context_line":"        line: \u0027GRUB_CMDLINE_LINUX\u003d\"\\1 memmap\u003d512M\\\\\\${{ total_ram_gb | int - 1 }}G isolcpus\u003d4,5\"\u0027"},{"line_number":22,"context_line":"      become: true"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    - name: Update grub.cfg"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"e1a5b19b_7a48961f","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":97},"in_reply_to":"d87b121f_c0814d05","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e2c2768b2b88a466a1d061fb9416fc0f5b41c477","unresolved":true,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    - name: Reboot"},{"line_number":29,"context_line":"      ansible.builtin.reboot:"},{"line_number":30,"context_line":"      become: true"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    - name: (Re-)start the Zuul console streamer after the reboot"},{"line_number":33,"context_line":"      ansible.builtin.import_role:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"e4a95551_ce843641","line":30,"updated":"2026-02-17 20:19:25.000000000","message":"i belive there is a zuul-jobs role to make this more gacfully by properly pooling for the instance ot come back\n\nhttps://opendev.org/zuul/zuul-jobs/src/branch/master/roles/post-reboot-tasks\n\nwe shoudl proably be using that here","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    - name: Reboot"},{"line_number":29,"context_line":"      ansible.builtin.reboot:"},{"line_number":30,"context_line":"      become: true"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    - name: (Re-)start the Zuul console streamer after the reboot"},{"line_number":33,"context_line":"      ansible.builtin.import_role:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"260fd303_7c5d338d","line":30,"in_reply_to":"e4a95551_ce843641","updated":"2026-03-02 14:46:25.000000000","message":"Acknowledged","commit_id":"824e09e1803193b573cb49224039d3fd354b84c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3dd6d1792285f479f02c3100813e3f0fea3ffc3d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"      # While isolcpus provides dedicated CPU time for specialized, high-priority tasks that "},{"line_number":16,"context_line":"      # require consistent, predictable performance. It requires atleast two cpus."},{"line_number":17,"context_line":"      #"},{"line_number":18,"context_line":"    - name: Append NVMeVirt parameters to GRUB command line"},{"line_number":19,"context_line":"      vars:"},{"line_number":20,"context_line":"        cyborg_nvmevirt_memmap_size: 512"},{"line_number":21,"context_line":"        cyborg_nvmevirt_memmap_start: 7"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"2a216019_7f0901b1","line":18,"in_reply_to":"a45566d2_9e44c2dd","updated":"2026-02-18 12:34:23.000000000","message":"for ci this is fine","commit_id":"50e59f5b40108405c9764e1e6c9a22073b1a4864"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"13a90c9ce5b990729858bc6a80f53a254589a841","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        state: present"},{"line_number":26,"context_line":"        backrefs: yes"},{"line_number":27,"context_line":"        regexp: \u0027GRUB_CMDLINE_LINUX\u003d\"([^\"]*)\"\u0027"},{"line_number":28,"context_line":"        line: \u0027GRUB_CMDLINE_LINUX\u003d\"\\1 memmap\u003d{{ cyborg_nvmevirt_memmap_size }}M\\\\\\${{ cyborg_nvmevirt_memmap_start}}G isolcpus\u003d{{ cyborg_nvmevirt_cpus }}\"\u0027"},{"line_number":29,"context_line":"      become: true"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    - name: Update grub.cfg"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"356b7b7e_415fc40a","line":28,"range":{"start_line":28,"start_character":79,"end_line":28,"end_character":83},"updated":"2026-03-02 13:05:01.000000000","message":"escape characters are missing. https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_5f6/openstack/5f61dc093a784ef8b0f54f0fcbae5e34/job-output.txt\n```\n++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:38 :   echo \u0027Kernel cmdline: BOOT_IMAGE\u003d/boot/vmlinuz-6.8.0-101-generic root\u003dLABEL\u003dcloudimg-rootfs ro memmap\u003d512MG isolcpus\u003d6,7 console\u003dtty0 console\u003dttyS0,115200 no_timer_check nofb nomodeset gfxpayload\u003dtext\u0027\n2026-03-02 12:25:38.580340 | controller | Kernel cmdline: BOOT_IMAGE\u003d/boot/vmlinuz-6.8.0-101-generic root\u003dLABEL\u003dcloudimg-rootfs ro memmap\u003d512MG isolcpus\u003d6,7 console\u003dtty0 console\u003dttyS0,115200 no_timer_check nofb nomodeset gfxpayload\u003dtext\n2026-03-02 12:25:38.580797 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:39 :   grep -q nvmev\n2026-03-02 12:25:38.580815 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:39 :   lsmod\n2026-03-02 12:25:38.589035 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:42 :   local insmod_err\n2026-03-02 12:25:38.592918 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:43 :   echo \u0027Running: insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M cpus\u003d6,7\u0027\n2026-03-02 12:25:38.594273 | controller | Running: insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M cpus\u003d6,7\n2026-03-02 12:25:38.596432 | controller | +++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:44 :   sudo insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M cpus\u003d6,7\n2026-03-02 12:25:38.689156 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:44 :   insmod_err\u003d\u0027insmod: ERROR: could not insert module ./nvmev.ko: Input/output error\u0027\n2026-03-02 12:25:38.693107 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:45 :   die \u0027Failed to load nvmev module: insmod: ERROR: could not insert module ./nvmev.ko: Input/output error\u0027\n```","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"a72a9fc28ad852eb09e69585ec57241556ef0804","unresolved":false,"context_lines":[{"line_number":25,"context_line":"        state: present"},{"line_number":26,"context_line":"        backrefs: yes"},{"line_number":27,"context_line":"        regexp: \u0027GRUB_CMDLINE_LINUX\u003d\"([^\"]*)\"\u0027"},{"line_number":28,"context_line":"        line: \u0027GRUB_CMDLINE_LINUX\u003d\"\\1 memmap\u003d{{ cyborg_nvmevirt_memmap_size }}M\\\\\\${{ cyborg_nvmevirt_memmap_start}}G isolcpus\u003d{{ cyborg_nvmevirt_cpus }}\"\u0027"},{"line_number":29,"context_line":"      become: true"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    - name: Update grub.cfg"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"2da5fe93_8ea18f2b","line":28,"range":{"start_line":28,"start_character":79,"end_line":28,"end_character":83},"in_reply_to":"23dc10b1_7fc93d40","updated":"2026-03-02 14:46:25.000000000","message":"Done","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"bfc461c1722c4b035159e317b4f0053cb6f3686a","unresolved":true,"context_lines":[{"line_number":25,"context_line":"        state: present"},{"line_number":26,"context_line":"        backrefs: yes"},{"line_number":27,"context_line":"        regexp: \u0027GRUB_CMDLINE_LINUX\u003d\"([^\"]*)\"\u0027"},{"line_number":28,"context_line":"        line: \u0027GRUB_CMDLINE_LINUX\u003d\"\\1 memmap\u003d{{ cyborg_nvmevirt_memmap_size }}M\\\\\\${{ cyborg_nvmevirt_memmap_start}}G isolcpus\u003d{{ cyborg_nvmevirt_cpus }}\"\u0027"},{"line_number":29,"context_line":"      become: true"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    - name: Update grub.cfg"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"23dc10b1_7fc93d40","line":28,"range":{"start_line":28,"start_character":79,"end_line":28,"end_character":83},"in_reply_to":"356b7b7e_415fc40a","updated":"2026-03-02 14:22:03.000000000","message":"Fixed now cyborg-nvme-tempest SUCCESS\n\t       https://zuul.opendev.org/t/openstack/build/28a7c0bfbf074127ab783034c8d5c658\n\t       https://zuul.opendev.org/t/openstack/build/28a7c0bfbf074127ab783034c8d5c658/log/job-output.txt#10121\n\t       \n\t       \n```\n\t       2026-03-02 14:00:34.080533 | controller | make[1]: Leaving directory \u0027/usr/src/linux-headers-6.8.0-101-generic\u0027\n2026-03-02 14:00:34.086009 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:build_nvmevirt:22 :   popd\n2026-03-02 14:00:34.086060 | controller | ~/devstack\n2026-03-02 14:00:34.091728 | controller | ++ /opt/stack/cyborg/devstack/plugin.sh:source:24 :   configure_nvmevirt\n2026-03-02 14:00:34.094555 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:34 :   pushd /opt/stack/nvmevirt\n2026-03-02 14:00:34.094622 | controller | ~/nvmevirt ~/devstack\n2026-03-02 14:00:34.099859 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:35 :   local nvmev_opts\u003dmemmap_start\u003d7G\n2026-03-02 14:00:34.105135 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:36 :   nvmev_opts+\u003d\u0027 memmap_size\u003d512M\u0027\n2026-03-02 14:00:34.110340 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:37 :   nvmev_opts+\u003d\u0027 cpus\u003d6,7\u0027\n2026-03-02 14:00:34.116141 | controller | +++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:38 :   cat /proc/cmdline\n2026-03-02 14:00:34.124872 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:38 :   echo \u0027Kernel cmdline: BOOT_IMAGE\u003d/boot/vmlinuz-6.8.0-101-generic root\u003dLABEL\u003dcloudimg-rootfs ro memmap\u003d512M$7G isolcpus\u003d6,7 console\u003dtty0 console\u003dttyS0,115200 no_timer_check nofb nomodeset gfxpayload\u003dtext\u0027\n2026-03-02 14:00:34.125064 | controller | Kernel cmdline: BOOT_IMAGE\u003d/boot/vmlinuz-6.8.0-101-generic root\u003dLABEL\u003dcloudimg-rootfs ro memmap\u003d512M$7G isolcpus\u003d6,7 console\u003dtty0 console\u003dttyS0,115200 no_timer_check nofb nomodeset gfxpayload\u003dtext\n2026-03-02 14:00:34.129396 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:39 :   grep -q nvmev\n2026-03-02 14:00:34.131272 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:39 :   lsmod\n2026-03-02 14:00:34.150655 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:42 :   local insmod_err\n2026-03-02 14:00:34.155395 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:43 :   echo \u0027Running: insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M cpus\u003d6,7\u0027\n2026-03-02 14:00:34.155502 | controller | Running: insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M cpus\u003d6,7\n2026-03-02 14:00:34.163745 | controller | +++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:44 :   sudo insmod ./nvmev.ko memmap_start\u003d7G memmap_size\u003d512M cpus\u003d6,7\n2026-03-02 14:00:34.234332 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:44 :   insmod_err\u003d\n2026-03-02 14:00:34.238596 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:47 :   popd\n2026-03-02 14:00:34.238638 | controller | ~/devstack\n2026-03-02 14:00:34.242714 | controller | ++ /opt/stack/cyborg/devstack/lib/nvmevirt:configure_nvmevirt:48 :   sudo nvme list\n2026-03-02 14:00:34.263708 | controller | Node                  Generic               SN                   Model                                    Namespace  Usage                      Format           FW Rev\n2026-03-02 14:00:34.263758 | controller | --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- --------\n2026-03-02 14:00:34.263770 | controller | /dev/nvme0n1          /dev/ng0n1            CSL_Virt_SN_01       CSL_Virt_MN_01                           0x\n```","commit_id":"6ce3dff56a3d74e6b1c5d2f8e1bb102e9a64310f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":true,"context_lines":[{"line_number":15,"context_line":"    - name: Check minimum vCPU count"},{"line_number":16,"context_line":"      ansible.builtin.assert:"},{"line_number":17,"context_line":"        that:"},{"line_number":18,"context_line":"          - ansible_processor_vcpus \u003e\u003d 8"},{"line_number":19,"context_line":"        fail_msg: \u003e-"},{"line_number":20,"context_line":"          Insufficient vCPUs: {{ ansible_processor_vcpus }},"},{"line_number":21,"context_line":"          need at least 8."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"87f26915_33c52375","line":18,"in_reply_to":"0a072707_3ea7066a","updated":"2026-03-06 17:13:13.000000000","message":"it will in the case we care about however this check shoudl be updated to \u003e\u003d4\nnow tha the job nolonger uses isolcpus","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"90a112fc727af60d5c5b3bbd1c8873ee5f4caf49","unresolved":true,"context_lines":[{"line_number":24,"context_line":"          vCPUs available"},{"line_number":25,"context_line":"      when: cyborg_nvmevirt_isolcpus | length \u003e 0"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    - name: Append memmap parameter to GRUB command line"},{"line_number":28,"context_line":"      ansible.builtin.lineinfile:"},{"line_number":29,"context_line":"        path: /etc/default/grub"},{"line_number":30,"context_line":"        state: present"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"c88f84a6_519888e5","line":27,"updated":"2026-03-06 11:03:06.000000000","message":"in CI we don\u0027t run playbooks multiple times, because those are one-off.\nI believe we could ignore this warn","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":false,"context_lines":[{"line_number":24,"context_line":"          vCPUs available"},{"line_number":25,"context_line":"      when: cyborg_nvmevirt_isolcpus | length \u003e 0"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    - name: Append memmap parameter to GRUB command line"},{"line_number":28,"context_line":"      ansible.builtin.lineinfile:"},{"line_number":29,"context_line":"        path: /etc/default/grub"},{"line_number":30,"context_line":"        state: present"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"aef8077b_629547a5","line":27,"in_reply_to":"3a66df41_fda26090","updated":"2026-03-06 17:13:13.000000000","message":"that fair, we could technialy be using systemd-boot or simialr however this is an ok assumtion fro the distros we will be testing","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":false,"context_lines":[{"line_number":24,"context_line":"          vCPUs available"},{"line_number":25,"context_line":"      when: cyborg_nvmevirt_isolcpus | length \u003e 0"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    - name: Append memmap parameter to GRUB command line"},{"line_number":28,"context_line":"      ansible.builtin.lineinfile:"},{"line_number":29,"context_line":"        path: /etc/default/grub"},{"line_number":30,"context_line":"        state: present"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"3c7554ca_fa0031d8","line":27,"in_reply_to":"51bc0347_cd80fb0c","updated":"2026-03-06 17:13:13.000000000","message":"again this is fiar and we can trivially fix it but as bogdan noted its not strictly required due to how our ci work\nwith that said it probaly should be fixed evenutlaly\n\nat some poitn i shoudl also add ansible lint to the repo.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"f14d1a2788e064ea9a248ed497192bb3a4f53e2f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"          vCPUs available"},{"line_number":25,"context_line":"      when: cyborg_nvmevirt_isolcpus | length \u003e 0"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    - name: Append memmap parameter to GRUB command line"},{"line_number":28,"context_line":"      ansible.builtin.lineinfile:"},{"line_number":29,"context_line":"        path: /etc/default/grub"},{"line_number":30,"context_line":"        state: present"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"48f7b277_1f54f7c8","line":27,"in_reply_to":"9e10c15f_788cb8c0","updated":"2026-03-10 06:45:54.000000000","message":"Done","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c38e4bc561f4c361ad1f830da2d49de37794f27","unresolved":true,"context_lines":[{"line_number":24,"context_line":"          vCPUs available"},{"line_number":25,"context_line":"      when: cyborg_nvmevirt_isolcpus | length \u003e 0"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    - name: Append memmap parameter to GRUB command line"},{"line_number":28,"context_line":"      ansible.builtin.lineinfile:"},{"line_number":29,"context_line":"        path: /etc/default/grub"},{"line_number":30,"context_line":"        state: present"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"9e10c15f_788cb8c0","line":27,"in_reply_to":"c88f84a6_519888e5","updated":"2026-03-06 17:13:13.000000000","message":"we dont but that does not mena we shoudl not adress general ansible best practices.\nso we can ignore it but we should likely fix it it just not something we have to fix before merging. it can wait for a followup\n\nwe just run it in ci is not really a good enouch reason to ignore valid feedback like that. our ci is a critical part of our development flow.","commit_id":"7a804e3784c726413c37d15cebb2730363d0eec2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8806532576ef85beb4ba4a9dba5e9225ece199a9","unresolved":true,"context_lines":[{"line_number":95,"context_line":"      become: true"},{"line_number":96,"context_line":"      when: noiommu_status.rc !\u003d 0 or noiommu_status.stdout.strip() !\u003d \u0027Y\u0027"},{"line_number":97,"context_line":"      ansible.builtin.shell: |"},{"line_number":98,"context_line":"        modprobe vfio enable_unsafe_noiommu_mode\u003d1"},{"line_number":99,"context_line":"      register: vfio_result"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    - name: Verify vfio no-IOMMU mode is enabled"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"1190067b_588a446a","line":98,"range":{"start_line":98,"start_character":8,"end_line":98,"end_character":50},"updated":"2026-03-11 12:18:28.000000000","message":"it woudl be better to do this via a module file\ni.e. set the partmer via /etc/modules...","commit_id":"c02a0c8ebdc5cb659beecb1cab97a3044937ad4b"}]}
