)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f718c0c9d2361dd062330ef632564d8376a6bfba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"23b06a2d_01449da0","updated":"2025-06-20 16:27:29.000000000","message":"im supportive of making this change but i think we need a little more detail in the spec.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b7b5e3eca5ba760cc7e06b57fe65c1ec7ac79a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ed6f18c0_d92fcafb","updated":"2025-07-02 16:40:33.000000000","message":"I have some clarifications needed about the QEMU and libvirt versions we need to support and the upgrade scenarios we may have, plus some additional comments about the default values and the different CPU topologies an operator may define.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b5d4cb97d3b687fb6aa07c6181121ca7306d01aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4a0bbb8e_d63b3f3d","updated":"2025-07-02 10:11:42.000000000","message":"Thanks for submitting this spec, and apologies for the delayed review on my side.\n\nI’ve added some comments, I think the spec would benefit from a bit more detail regarding the XML modifications introduced by this change. Additionally, if a specific libvirt and QEMU version is required, we should consider defining a trait to identify hosts that support this feature.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"5316b08716dce338a3ccdff749493526fb9c04eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e20a7967_02c1179e","updated":"2025-07-02 09:13:09.000000000","message":"Thanks for the review. Updated the spec.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2f5ac9a7_280d62bd","updated":"2025-07-03 16:50:28.000000000","message":"Thanks for the reviews. I appreciate the lots of comments.\n\nAfter some discussion in the spec, I decided to narrow down the spec scope only for the queues part because it makes discussion simpler and feasible.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2673020eb89fbe1f5bfeee50c19fa696d1c63f99","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c8930af4_dc1dff8d","updated":"2025-07-03 10:48:27.000000000","message":"by the way i very much do want to collaberate on geting both iothread and queue supprot done.\n\nmost of my feedback is with a view to minimise upgrade impact and depencies so that we can reduce the inital scope of the spec and deliver baseline supprot in 2025.2\n\nand then the idea woudl be to follwo up in 2026.1 or 2026.2 to build on that baseline and add more advnaced iothread/queue supprot if we really do need that.\n\ni think going all the way to the more complex from is likely going to mean we wont have time to review it this cycle but if we take an incremental approach we should be able to make some progress in the time we have left.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b01e902528035f129faecfec84729b9145d55613","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4f9f3d3f_705ad2a0","updated":"2025-07-02 11:15:47.000000000","message":"given the delay in updating this i had asusmed thiw would not be rebased this cycle\n\nas such is have created a spereate proposal for this https://review.opendev.org/c/openstack/nova-specs/+/953940 to address the concerns with the spec.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"91d8e105b402437f28db4a536a31c9d0bb87e1d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f4c74a1b_21088e67","updated":"2025-07-03 07:58:46.000000000","message":"quick reply for the sean\u0027s spec and support version things. I\u0027m neutral for the way to proceed, separated spec or not.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cef3062e7b16379a66d8ee1760bc02a2aeecbf7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2a7d62a0_f4efef71","updated":"2025-07-02 11:39:50.000000000","message":"so i think there are quite a lot of details missing form this versoin of the spec and im reluctant to expos queue configuration intially.\n\nas i noted in my comments i wrote a spec for just the iothread part this mornign \n\nhttps://review.opendev.org/c/openstack/nova-specs/+/953940/1/specs/2025.2/approved/dynamic-vm-iothreads.rst#134\n\nwhat we coudl do is split this spec and have this focus only on the multi queue config and use my spec for the iothread part\n\notherwise i think we woudl have to enahce this spec with alot of the details form my spec.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"85b7def89165a77c888cf3680129cb4a0ecf2118","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"87d9dfad_0fb33930","updated":"2025-10-15 08:25:03.000000000","message":"Hi, thanks for the comment. I resumed this spec update because 2026.1 development cycle is open.\n\nLet me update this spec and move it to 2026.1 directory.","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"a5a14ded0521df36a5f8e7095f78da279c765e12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"16e2fd52_983e7879","updated":"2025-09-26 13:08:06.000000000","message":"I wonder what is the status on this one? As this would be amazing to get in, but obviously it needs to be re-proposed for 2026.1 at this point.","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"7ed4ecfc3e05d97f341ece7a7f4053386e4592f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"22c80432_3a407dc4","updated":"2025-10-16 08:39:58.000000000","message":"Thanks for the comment. Updated the patch to follow the Gazpacho release and applied comment.","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"34a35d18096117023df2bef256e27b93e265d937","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ffe991a5_aff6a2c5","updated":"2025-07-03 17:11:34.000000000","message":"given the heavily  restricted scope fo this revision i think this is workable.\n\nwe can adress the automatic translation fo the flavor extra spec into a trait request in a followup if we agree on the direction.","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c52e964f69c138a5a384c345c679cd8118271f00","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"23e8c418_a3b8fa33","updated":"2025-07-25 09:33:52.000000000","message":"thanks for proposing.\nDuring the 2025.1 PTG discussion we discussed a proposal for enabling 1 IOThread for VMs if iothreads_usage_for_instances cfg option was enabled (see the meeting summary: https://etherpad.opendev.org/p/nova-2025.1-ptg#L686 )","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"877cb1f3431b262da675605bbb4dc836756a957a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5b43b0f7_6838a6b5","in_reply_to":"16e2fd52_983e7879","updated":"2025-10-15 08:26:36.000000000","message":"This spec was discussed at 2025.2 ptg, Flamingo ptg, but this spec was slipped from the Flamingo spec freeze. Let me update this and push PoC code.","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"a19b7d73130054740e6343c750d32e0e0ca881a0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"adb7265b_2e0a9eac","updated":"2026-01-21 15:52:31.000000000","message":"Hello, from the PTG I uderstood this need is now covered by qemu natively.\n```\n(sean) multi queue is enabeld by default now for virtio-blk and virtio-scis\nby libvirt/qemu i belive today but that is a basic impleantion that is limited by number of io threads.\n```\n\nSo I think we can abandon this spec. Please tell me if you agree or if I\u0027m wrong.","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dc5beb3fcfb4e105074e0d4139f329c78d5d729b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ca7cd136_b04a1aac","updated":"2025-12-17 10:15:57.000000000","message":"unfortunately the nova spec freeze for this cycle has passed\n\nhttps://releases.openstack.org/gazpacho/schedule.html#g-nova-spec-freeze\nso this will need to be updated to 2026.2","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a5953242ae0b290b8415db739ef587dd95e7cdec","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6b125d09_56260612","in_reply_to":"0717714f_6dd8c975","updated":"2026-01-28 17:27:24.000000000","message":"yes.\n\non the iothrad side i think there are 2 topcis still on the table\n1 should we suprpot static io thread config via the flavor as an extra spec\n2 shoudl we supprot dynmiclly allcaoting an addtional 1-n io thread per cinder volume\n\nim inteniclaly not saying how we express policy on 2 i.e. it could be hard coded or conigured via the flavor or somethign else.\n\n\non the multiqueue side yes there is the open question of if we shoudl expose a way to decouple the queue count form the cpu count and waht form that should take.\n\nthat again could be something as simple as a hw:block_queue\u003d4 extra spec or something else.\n\ni would start with simple but those are the 2 related functionalities im my mind that still have open questions on how to proceed.\n\nboth are potically in scope of nova to addressed.\n\nthere are some other dicsssion baout qos and service level enfocement or tering tha tare also tangental and related to this topic.\n\nnvoa can alreayd enforce iop and bandwith restriction on disks via flavor extra specs. if we were to ever have a nova qos concept in the api i think iotread and multi queu tuening would eventually need to be part fo that but im not suggesting we cant do something wihtout that ro that that would be a depency jsut raising that so its in teh back of our midns when discussing this.","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"ad56af13e3ece9ef91206f3506561e565682151e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b8894616_a2be0150","in_reply_to":"13110b03_7ff45825","updated":"2026-01-28 16:26:49.000000000","message":"Yes. Without iothread case, current default configuration, setting 1 queue has better performance than vcpu number queue sometimes.  But as you mentioned, multi queue with iothread has better performance than 1 queue setting. In our case, only the queue number config feature is variable.\n\nIs this spec active status? https://review.opendev.org/c/openstack/nova-specs/+/953940 . I think https://review.opendev.org/c/openstack/nova/+/939254 is just adding 1 iothread for 1 vm and not used to anywhere. The support of configurable iothread number is out of scope in the current single iothread patches from my understanding.","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d30b38a4ea262c1986cc9cf83d3152a1c2bb0c18","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"13110b03_7ff45825","in_reply_to":"75c34ffc_97fda090","updated":"2026-01-21 18:06:21.000000000","message":"so the current state is yes qemu not enabled this by default but as they noted in there performance testing it actully assgien to many ques.\n\nwithout iothread however there is very littel benift to enablign multi queue at all.\n\nso this spe is really gated behidn actully completing the iothread work for it to really deliver a performace improvement.","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"f65028a9cc66ada2e8e02a2a920ed9b930d2e529","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0717714f_6dd8c975","in_reply_to":"ad654482_c6f9e90c","updated":"2026-01-28 17:02:22.000000000","message":"OK, thanks for the clarification.\n\nI understood that https://review.opendev.org/c/openstack/nova/+/939254\n was the minimum needed to enable some performance improvements. While not ideal, it was a first step in that direction. (agreed on PTG)\n\nFrom this discussion, I also understand that Masahito still needs further tuning around iothreads and the multi-queue count. So the multi-queue work is still on the table, with the goal of limiting QEMU’s default queue assignment rather than increasing it.\n\nPlease let me know if my understanding is correct.","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"8eb9359c310010f0df3d7d5ff526e40bc3f9be72","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"75c34ffc_97fda090","in_reply_to":"adb7265b_2e0a9eac","updated":"2026-01-21 16:52:02.000000000","message":"Hi, thanks for the contact. I missed the PTG discussion.\n\nqemu sets number of multi queue with same number of vCPU in default. For example, if a flavor has 36 vCPU qemu creates 36 queues in default. The default is too much and causes slow IO performance. \n\n2-4 queues shows better performance even though VM has many vCPU from our test result and some article listed in this spec reference. The goal of this spec is to make configurable the number of queues from flavor\u0027s extra spec.\n\nI have POC code following this spec in my local. Let me push it in one week, too.","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"73a2d9bdb392d9b50366f02d4846f898df8ff736","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ad654482_c6f9e90c","in_reply_to":"b8894616_a2be0150","updated":"2026-01-28 16:34:13.000000000","message":"it was put on hold for this cycle but can be revied for 2026.2\nim not activly working on it however\n\nhttps://review.opendev.org/c/openstack/nova/+/939254 was the baseline i.e. just adding 1 iothread to all vms\ni was expcting there to be more disucsson of next steps at the ptg ofr next cycle now that that has been completed","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"}],"specs/2025.2/approved/add-virtio-blk-iothreads.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f718c0c9d2361dd062330ef632564d8376a6bfba","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This change introduces new flavor\u0027s extra_spec, ``hw:blk_multiqueue`` and"},{"line_number":40,"context_line":"``hw:blk_iothreads``. If a flavor has the one or two extra_spec, nova-compute"},{"line_number":41,"context_line":"applies the number of multi queues and iothreads to a libvirt xml domain file."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"If the new extra_spec is not added in a flavor, nova-compute doesn\u0027t add any"},{"line_number":44,"context_line":"multi queue and iothreads information to a libvirt domain file."}],"source_content_type":"text/x-rst","patch_set":1,"id":"f0743a23_c1d06d05","line":41,"updated":"2025-06-20 16:27:29.000000000","message":"so this section is missing some detail about where the IO thread will run\n\nWhen we discussed this during the ptg, we said this should use the same logic as the emulator thread, as if hw:emulator_thread_policy\u003dshared.\n\n\nwhat that means is if the vm is pinned and the cpu_shared_set is defeined the iothread will float over teh cpu_shared_set cores instead of the cpu_dedicated_cores.\n\nif the vm has a numa toplogy it will float over the numa subset of it.\ninother words it shoudl float over the exact same cores that the emulator thread would.\n\nit woudl be good to refence that in the spec. we discss that detail in the ptg.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"5316b08716dce338a3ccdff749493526fb9c04eb","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This change introduces new flavor\u0027s extra_spec, ``hw:blk_multiqueue`` and"},{"line_number":40,"context_line":"``hw:blk_iothreads``. If a flavor has the one or two extra_spec, nova-compute"},{"line_number":41,"context_line":"applies the number of multi queues and iothreads to a libvirt xml domain file."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"If the new extra_spec is not added in a flavor, nova-compute doesn\u0027t add any"},{"line_number":44,"context_line":"multi queue and iothreads information to a libvirt domain file."}],"source_content_type":"text/x-rst","patch_set":1,"id":"68eb305a_f49b26ad","line":41,"in_reply_to":"f0743a23_c1d06d05","updated":"2025-07-02 09:13:09.000000000","message":"Thanks. I completely missed to write the discussion. Updated.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f718c0c9d2361dd062330ef632564d8376a6bfba","unresolved":true,"context_lines":[{"line_number":41,"context_line":"applies the number of multi queues and iothreads to a libvirt xml domain file."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"If the new extra_spec is not added in a flavor, nova-compute doesn\u0027t add any"},{"line_number":44,"context_line":"multi queue and iothreads information to a libvirt domain file."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"73b92358_059c28cc","line":44,"updated":"2025-06-20 16:27:29.000000000","message":"i would personlly prefer we handeled the lack of extra specs sligtly differntly\n\ni think it woudl be better to add 1 iothread to all vms by defualt\n\nfor multiqueue we shoudl leave the default to libvirt when not set in teh falvor.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"5316b08716dce338a3ccdff749493526fb9c04eb","unresolved":false,"context_lines":[{"line_number":41,"context_line":"applies the number of multi queues and iothreads to a libvirt xml domain file."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"If the new extra_spec is not added in a flavor, nova-compute doesn\u0027t add any"},{"line_number":44,"context_line":"multi queue and iothreads information to a libvirt domain file."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f74aa0db_f05d790d","line":44,"in_reply_to":"73b92358_059c28cc","updated":"2025-07-02 09:13:09.000000000","message":"Done","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"f6a6fa1b567c4cfa278759c20668a28edeafe31b","unresolved":true,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"If the new extra_spec is not added in a flavor, nova-compute doesn\u0027t add any"},{"line_number":44,"context_line":"multi queue and iothreads information to a libvirt domain file."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dede6167_c553d75f","line":45,"updated":"2025-06-03 09:21:38.000000000","message":"Quick question: is it needed for image property to support the virtio-blk related configuration?","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"5316b08716dce338a3ccdff749493526fb9c04eb","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"If the new extra_spec is not added in a flavor, nova-compute doesn\u0027t add any"},{"line_number":44,"context_line":"multi queue and iothreads information to a libvirt domain file."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da29fd21_597d54fd","line":45,"in_reply_to":"8a8a4e1f_8035afaa","updated":"2025-07-02 09:13:09.000000000","message":"Thanks. Then, I try to focus on extra_spec support in this spec.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f718c0c9d2361dd062330ef632564d8376a6bfba","unresolved":true,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"If the new extra_spec is not added in a flavor, nova-compute doesn\u0027t add any"},{"line_number":44,"context_line":"multi queue and iothreads information to a libvirt domain file."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Alternatives"},{"line_number":48,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8a8a4e1f_8035afaa","line":45,"in_reply_to":"dede6167_c553d75f","updated":"2025-06-20 16:27:29.000000000","message":"Technically no, but we normally would control the enabling of multiqueu form the image since it is viable to the guest and the allocation of the iothread from the flavor since it is part of the resource usage of the vm.\n\nso it would be conventional to allow enabling multi queu in the image.\n\ni would only expose `hw:blk_iothreads`` as an extra spec not an image proeprty.\n\nas an aside, apparently in newer releases of qemu, virtio multiquee is automatically enabled for virtio-blk and virtio-scsi. that lend more weight to not needign to expose it as an image property because libvirt/qemu belived it was fine to enabel by default.\n\nHaving an explicit opt in/out  i think is ok but really multi for blk devices shoudl be enabled by default, which will be the case in newer libvirt/qemu releases.\n\ni think its ok to just start with both options in the flaovr and skip modifying the image properties for now.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f718c0c9d2361dd062330ef632564d8376a6bfba","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Data model impact"},{"line_number":56,"context_line":"-----------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"None."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"addd5249_515ad22d","line":58,"updated":"2025-06-20 16:27:29.000000000","message":"in it current form this is correct\n\nif we added image properties it woudl modify the image metadta object and the correspondign notification object.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f718c0c9d2361dd062330ef632564d8376a6bfba","unresolved":true,"context_lines":[{"line_number":67,"context_line":"  integer"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- ``hw:blk_iothreads``: number of iothreads used in hypervisor by this"},{"line_number":70,"context_line":"  flavor, integer"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Security impact"},{"line_number":73,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"235f12cc_5194ef3c","line":70,"updated":"2025-06-20 16:27:29.000000000","message":"flavor extra spefsc are not considerd rest api changees","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"5316b08716dce338a3ccdff749493526fb9c04eb","unresolved":false,"context_lines":[{"line_number":67,"context_line":"  integer"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- ``hw:blk_iothreads``: number of iothreads used in hypervisor by this"},{"line_number":70,"context_line":"  flavor, integer"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Security impact"},{"line_number":73,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c6652fe0_d2a7fc9e","line":70,"in_reply_to":"235f12cc_5194ef3c","updated":"2025-07-02 09:13:09.000000000","message":"Got it. I removed the API Impact.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f718c0c9d2361dd062330ef632564d8376a6bfba","unresolved":true,"context_lines":[{"line_number":87,"context_line":"Performance Impact"},{"line_number":88,"context_line":"------------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Cloud admin can configure virtio-blk performance using the new extra_specs."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Other deployer impact"},{"line_number":93,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"79693acb_bed73902","line":90,"updated":"2025-06-20 16:27:29.000000000","message":"this whoudl in general improve the perfomace of the vms and i think we have the opertunty to alwasy add 1 io thread to vms if not extra spec is provided.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"5316b08716dce338a3ccdff749493526fb9c04eb","unresolved":false,"context_lines":[{"line_number":87,"context_line":"Performance Impact"},{"line_number":88,"context_line":"------------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Cloud admin can configure virtio-blk performance using the new extra_specs."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Other deployer impact"},{"line_number":93,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"576ca441_e148d58c","line":90,"in_reply_to":"79693acb_bed73902","updated":"2025-07-02 09:13:09.000000000","message":"Done","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f718c0c9d2361dd062330ef632564d8376a6bfba","unresolved":true,"context_lines":[{"line_number":130,"context_line":"Dependencies"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"* libvert 10.0"},{"line_number":134,"context_line":"* qemu 9.0"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Testing"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"12d4ed8b_451b57a3","line":134,"range":{"start_line":133,"start_character":0,"end_line":134,"end_character":10},"updated":"2025-06-20 16:27:29.000000000","message":"why these versions\n\nio thread has been aviabel for much longer then that","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"5316b08716dce338a3ccdff749493526fb9c04eb","unresolved":true,"context_lines":[{"line_number":130,"context_line":"Dependencies"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"* libvert 10.0"},{"line_number":134,"context_line":"* qemu 9.0"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Testing"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f94dbb9_f6c9edf8","line":134,"range":{"start_line":133,"start_character":0,"end_line":134,"end_character":10},"in_reply_to":"12d4ed8b_451b57a3","updated":"2025-07-02 09:13:09.000000000","message":"According to the 2nd reference, the multi iothread in host side configuration is supported from the libvirt and qemu combination.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"39d92d1a40d37dc65519d20585ed1046d3c4ae8b","unresolved":true,"context_lines":[{"line_number":130,"context_line":"Dependencies"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"* libvert 10.0"},{"line_number":134,"context_line":"* qemu 9.0"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Testing"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"12ae5ccc_9fea2846","line":134,"range":{"start_line":133,"start_character":0,"end_line":134,"end_character":10},"in_reply_to":"2c626f14_a996d1f7","updated":"2025-07-03 16:58:08.000000000","message":"adding compatibalty checks if fine.\n\nwe do that often. but when we do it alwasy makes the impelmation more complxex to reivew.\n\nif we only need to check the qemu version that is perferabel to needed to check both.\n\nif we do this over two cycles, qeue this cycle and maping queue to iothread next cycle we wont have to do any version checks this cycle and next cycle we will only need to check the qemu version and can fall back to not doing the queue to iothread mapping if its not supproted.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2673020eb89fbe1f5bfeee50c19fa696d1c63f99","unresolved":true,"context_lines":[{"line_number":130,"context_line":"Dependencies"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"* libvert 10.0"},{"line_number":134,"context_line":"* qemu 9.0"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Testing"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ecebec9b_48159d6d","line":134,"range":{"start_line":133,"start_character":0,"end_line":134,"end_character":10},"in_reply_to":"3f94dbb9_f6c9edf8","updated":"2025-07-03 10:48:27.000000000","message":"see my comment above that is not entirly ture\n\nthat is just true of the ablity top map specific quene to specific iothread and the bality to make specific iothread ot a given device.\n\n\nthe supprot for iothread in general and the ablity to map a disk to a given iothread is there since 1.2.8\n\n\nif we keep this spec focused on just the queu aspect then the required version are\n\nhe optional queues attribute specifies the number of virt queues for virtio-blk ( Since 3.9.0 ) or vhost-user-blk ( Since 7.1.0 )\n\n\nour min libvirt verison is 8.0.0\n\nhttps://github.com/openstack/nova/blob/2c19c07d5e29ca5445fa6dd45a6117542951714c/nova/virt/libvirt/driver.py#L221C1-L221C32\n\nso if we do not do the disk/queue to iothread mapping until next cycle when we raise our libvirt min to  to 10.0.0\n\nhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L223-L224\n\nwe can avoid adding a bunch of extra logic to check the libvirt version.\n\nalthough we woudl still need to check the qemu version.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":true,"context_lines":[{"line_number":130,"context_line":"Dependencies"},{"line_number":131,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"* libvert 10.0"},{"line_number":134,"context_line":"* qemu 9.0"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Testing"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"2c626f14_a996d1f7","line":134,"range":{"start_line":133,"start_character":0,"end_line":134,"end_character":10},"in_reply_to":"ecebec9b_48159d6d","updated":"2025-07-03 16:50:28.000000000","message":"I checked the libvirt and qemu release schedule and Ubuntu\u0027s LTS release schedule.\n\nUbuntu 26.04 is assumed to have libvirt 11.10.0 and qemu 10.2.0. So if we want to avoid implementing any extra capability filters, Ubuntu 28.04 LTS (openstack 2028.01) is a target release of the multi iothread mapping to queue 😊","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f718c0c9d2361dd062330ef632564d8376a6bfba","unresolved":true,"context_lines":[{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Unit tests and functional test need to have some new test scenario to"},{"line_number":140,"context_line":"validate the new extra_specs."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Documentation Impact"},{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ab10090_b54e3b76","line":140,"updated":"2025-06-20 16:27:29.000000000","message":"it would be nice to have a tempest test for this as well.","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"91d8e105b402437f28db4a536a31c9d0bb87e1d0","unresolved":false,"context_lines":[{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Unit tests and functional test need to have some new test scenario to"},{"line_number":140,"context_line":"validate the new extra_specs."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Documentation Impact"},{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"83a6cbcd_c34cec52","line":140,"in_reply_to":"5ab10090_b54e3b76","updated":"2025-07-03 07:58:46.000000000","message":"Done","commit_id":"7240fa319dd274c1cd6a235dbb1844c7f40685b1"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b5d4cb97d3b687fb6aa07c6181121ca7306d01aa","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-virtio-blk-iothreads"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"52f92bec_16dedc4a","line":14,"range":{"start_line":13,"start_character":51,"end_line":14,"end_character":17},"updated":"2025-07-02 10:11:42.000000000","message":"Since these versions are not part of our minimum supported versions, I believe we should introduce a trait to indicate which hosts support this configuration. This would allow operators to define an availability zone (AZ) with hosts that provide this trait, or to add the trait as an extra spec or image property to guide the scheduler in placing the VM on a compatible host.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2673020eb89fbe1f5bfeee50c19fa696d1c63f99","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-virtio-blk-iothreads"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"e3a2d4ff_aa4fd4a0","line":14,"range":{"start_line":13,"start_character":51,"end_line":14,"end_character":17},"in_reply_to":"0a977aea_f2925441","updated":"2025-07-03 10:48:27.000000000","message":"no we have 2 choices for upgrade reasons\n\neither we add a comptue service bump and a min compute service check when creating or reisze a vm to ensure that all nova-compute serivces are upgraded to support the new extra spec before allowing it to be used or we need a compute_capablity trait\nso we can schdule to the sub set of nodes that supprot it.\n\nall 3 changes need either a trait of compute service  version check.\n\n\nin term os live migration impact you are correct that only change 3 needs modification to the xml update logic but we would still need to select a host that supports the feature it is using. if we don\u0027t do that what will happen i the live migration will likely succeed but then the io optimisation woudl be lost on a vm reboot if we have a mix of upgraded and non-upgraded compute nodes.\n\n\njust ot be very clear im ok with adding iothread and explicit mulqueue support this cycle the reason i create the other spec was to capture the changes required to make live migration work and tweak the minimies the upgrade impact.\n\ni created my version of the spec to help move this along because i was not expecting you to have time to revise it before the spec freeze today.\n\nso im very much ok with approving both and limiting this to just the queues parmater and the implication of that.\n\ni woudl suggest we have 2 traits \n\nCOMPUTE_IOTHREADS form my spec an COMPUTE_BLK_MULTIQUEUE for your queue enhancement.\n\nassuming we mange to get both done this cycle then great is we only get the iothreads part done then we can continue with the queue after ectra.\n\ni think the multi queue enhancment is gong to end up being a very small change on top of the iothreads work\n\ni think the io threas changes would be roughly 4 patches to nova + one to os traits\n\ni think the multi-queue would be a single patch on top.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9ea76e3e87c16501529c9897817858a325398d2f","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-virtio-blk-iothreads"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"f0d39257_141a7cae","line":14,"range":{"start_line":13,"start_character":51,"end_line":14,"end_character":17},"in_reply_to":"52f92bec_16dedc4a","updated":"2025-07-02 10:31:23.000000000","message":"We definitely need some solution to only place a VM requesting these feature where the feature is available. \n\nI think we have capabilities for this https://github.com/openstack/nova/blob/2c19c07d5e29ca5445fa6dd45a6117542951714c/nova/virt/driver.py#L186","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"91d8e105b402437f28db4a536a31c9d0bb87e1d0","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-virtio-blk-iothreads"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"0a977aea_f2925441","line":14,"range":{"start_line":13,"start_character":51,"end_line":14,"end_character":17},"in_reply_to":"a9c74ca0_52039246","updated":"2025-07-03 07:58:46.000000000","message":"I understand the reason lots of confusions for the version comment especially libvirt and qemu combination. This spec proposal is mainly enabling 2 and 3 in the following xml example mainly and setting 1 is side-output to activate iothreads by this spec.\n\nI\u0027m ok to separate 1 (sean\u0027s spec) from this spec (2 and 3). It\u0027s smiler to implement both feature indivisualy. What do you think?\n\n\nI think capability filter is needed only for change3 and not for change 1 and 2.\n```\n\u003cdomain type\u003d\u0027kvm\u0027\u003e\n  \u003ciothreads\u003e1\u003c/iothreads\u003e   \u003c--------- change 1\n\n  \u003cdevices\u003e\n    \u003cemulator\u003e/usr/libexec/qemu-kvm\u003c/emulator\u003e\n    \u003cdisk type\u003d\u0027file\u0027 device\u003d\u0027disk\u0027\u003e\n      \u003cdriver name\u003d\u0027qemu\u0027 type\u003d\u0027qcow2\u0027 cache\u003d\u0027none\u0027 discard\u003d\u0027unmap\u0027 queues\u003d\u00271\u0027 /\u003e\n                                                                    ^^^^^^^^^^^^^^^^^^^^^^\n                                                                     change 2\n      \u003ciothreads\u003e                    \u003c------ change 3\n        \u003ciothread id\u003d\u00271\u0027\u003e\u003c/iothread\u003e\n      \u003c/iothreads\u003e\n```","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-virtio-blk-iothreads"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"cf605030_6312dbae","line":14,"range":{"start_line":13,"start_character":51,"end_line":14,"end_character":17},"in_reply_to":"e3a2d4ff_aa4fd4a0","updated":"2025-07-03 16:50:28.000000000","message":"Now that I\u0027m thinking about it, the total number of iothreads, change 1 in the above, comes from not only the specific disk to iothread mapping but other iothread use. So if we define the \"hw:blk_iothreads` extra_spec, it shouldn\u0027t affect the total number of iothreads directly.\n\nex. total iothreads are defined to be 5. One disk is mapped to 2 of 5 iothreds and 3 of 5 are defined by other feature.\n\nI\u0027m fine for this spec to focus on adding only `queues` extra_spec and doing incremental improvement.\n\n\u003e COMPUTE_IOTHREADS form my spec an COMPUTE_BLK_MULTIQUEUE for your queue enhancement.\n\nJust a question for the 2 traits. The reason we needs the two traits is Nova supports non-libvirt virt driver, isn\u0027t it?  Libvirt driver computes have the two traits and others don\u0027t have it. qemu supports the `queues` parameter already at qemu 6.2.0.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cef3062e7b16379a66d8ee1760bc02a2aeecbf7e","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-virtio-blk-iothreads"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"a9c74ca0_52039246","line":14,"range":{"start_line":13,"start_character":51,"end_line":14,"end_character":17},"in_reply_to":"f0d39257_141a7cae","updated":"2025-07-02 11:39:50.000000000","message":"so i am not conviced we whould be exposign multiqueu queue configuration\n\nin my verion i removed that to symplicy the spec and only focus on iothreads\n\nhttps://review.opendev.org/c/openstack/nova-specs/+/953940/1/specs/2025.2/approved/dynamic-vm-iothreads.rst\n\ntaht entirlly removes our depency on newer verson of qemu and libvirt.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b7b5e3eca5ba760cc7e06b57fe65c1ec7ac79a7","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"a4901b42_d33dd8af","line":15,"range":{"start_line":15,"start_character":42,"end_line":15,"end_character":76},"updated":"2025-07-02 16:40:33.000000000","message":"Maybe I\u0027m wrong but libvirt does support setting a number of iothreads since 1.2.8\nWhat am I misunderstanding ?\n\nhttps://libvirt.org/formatdomain.html#iothreads-allocation","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"172efb20_fedc72ce","line":15,"range":{"start_line":15,"start_character":42,"end_line":15,"end_character":76},"in_reply_to":"1bd79890_13c49005","updated":"2025-07-03 16:50:28.000000000","message":"Yes, what I want to say in the previous comment is the mapping specific disk to specific multi iothreads.  Mapping MULTI iothreads to disk improves IO performance significantly with multi queue.\n\n\u003e \u003cdriver name\u003d\u0027qemu\u0027 queues\u003d\u00274\u0027 iothread\u003d\u00275\u0027\u003e\n\nI agree no to support this single iothread mapping format.  Once the multi queue mapping is supported by Nova, the single iothread mapping becomes deprecated feature soon.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2673020eb89fbe1f5bfeee50c19fa696d1c63f99","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1bd79890_13c49005","line":15,"range":{"start_line":15,"start_character":42,"end_line":15,"end_character":76},"in_reply_to":"56ee1268_88954aaa","updated":"2025-07-03 10:48:27.000000000","message":"by chagne 3 you mean \n```\n\u003ciothreads\u003e                    \u003c------ change 3\n        \u003ciothread id\u003d\u00271\u0027\u003e\u003c/iothread\u003e\n      \u003c/iothreads\u003e\n```   \niothreads have been supproted in libvirt since 1.2.8 and qemu 2.1\n\niothreadids came much latter in 8.5.0 but we do not need that\n\nwe can and shoudl use the older \n\n\u003ciothreads\u003e4\u003c/iothreads\u003e syntax\n\nhttps://libvirt.org/formatdomain.html#iothreads-allocation\n\nWhat\u0027s new in 10.0 is the ability to map specific disks to specific iothreads\n\n\n```\n\u003cdriver name\u003d\u0027qemu\u0027 queues\u003d\u00274\u0027\u003e\n  \u003ciothreads\u003e\n    \u003ciothread id\u003d\u00272\u0027/\u003e\n    \u003ciothread id\u003d\u00273\u0027/\u003e\n  \u003c/iothreads\u003e\n\u003c/driver\u003e\n```\ni dont think we shoudl do that this cycle.\n\nwe can expore that next cycle but that need a livbirt 10.0.0 instead of 1.2.8\n\nand qemu 9.0 instead of 2.1\n\nin 1.2.8 there is an atibute on the driver element to allow maping a disk to a single iothread\n\n\u003cdriver name\u003d\u0027qemu\u0027 queues\u003d\u00274\u0027 iothread\u003d\u00275\u0027\u003e\n\nbut i woudl alos prefer to aovid doing that this cycel.\n\nim not disagreeign that it may not be a useful enhancment in the future im just saying this make the proposal much more complicated and i would prefer to get basic\niothread supprot enable before considering if we will eveolve it to some like this\n\n```\n\u003cdriver name\u003d\u0027qemu\u0027 queues\u003d\u00273\u0027\u003e\n  \u003ciothreads\u003e\n    \u003ciothread id\u003d\u00272\u0027\u003e\n      \u003cqueue id\u003d\u00271\u0027/\u003e\n    \u003c/iothread\u003e\n    \u003ciothread id\u003d\u00273\u0027\u003e\n      \u003cqueue id\u003d\u00270\u0027/\u003e\n      \u003cqueue id\u003d\u00272\u0027/\u003e\n    \u003c/iothread\u003e\n  \u003c/iothreads\u003e\n\u003c/driver\u003e\n```\n\nwould you be ok defering that aspect to a future cycle.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"91d8e105b402437f28db4a536a31c9d0bb87e1d0","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. Starting from libvirt"},{"line_number":14,"context_line":"10.0 and Qemu 9.0, the libvirt and the qemu introduces new configuration"},{"line_number":15,"context_line":"option for number of virtio-blk queue and number of iothreads used in hosts."},{"line_number":16,"context_line":"The new feature enables cloud admin to configure the number of queue and"},{"line_number":17,"context_line":"iothread by Nova API."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"56ee1268_88954aaa","line":15,"range":{"start_line":15,"start_character":42,"end_line":15,"end_character":76},"in_reply_to":"a4901b42_d33dd8af","updated":"2025-07-03 07:58:46.000000000","message":"As I commented above, this spec focuses on the change 3 in the above example. The change 3 is available from libvirt10.0 and qemu 9.0. That\u0027s why I added this line.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9ea76e3e87c16501529c9897817858a325398d2f","unresolved":true,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The libvirt sets up number of virtio-blk\u0027s queue with same with number"},{"line_number":24,"context_line":"of vCPU. The queues are correctly seprated from VM perspective, but"},{"line_number":25,"context_line":"number of iothread in host is set to 1 as default. The default configuration"},{"line_number":26,"context_line":"doesn\u0027t maximize virtio-blk\u0027s performance. However, the two value are not"}],"source_content_type":"text/x-rst","patch_set":2,"id":"abf4edc1_6fdcb276","line":23,"updated":"2025-07-02 10:31:23.000000000","message":"do we want to do the same for virtio-scsi as well? As far as I understand we have the same tunables there as well.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b7b5e3eca5ba760cc7e06b57fe65c1ec7ac79a7","unresolved":true,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The libvirt sets up number of virtio-blk\u0027s queue with same with number"},{"line_number":24,"context_line":"of vCPU. The queues are correctly seprated from VM perspective, but"},{"line_number":25,"context_line":"number of iothread in host is set to 1 as default. The default configuration"},{"line_number":26,"context_line":"doesn\u0027t maximize virtio-blk\u0027s performance. However, the two value are not"}],"source_content_type":"text/x-rst","patch_set":2,"id":"69404e46_1c67215d","line":23,"in_reply_to":"aa6e18b9_96112f6c","updated":"2025-07-02 16:40:33.000000000","message":"agreed, I think we should have separate specs.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cef3062e7b16379a66d8ee1760bc02a2aeecbf7e","unresolved":true,"context_lines":[{"line_number":20,"context_line":"Problem description"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"The libvirt sets up number of virtio-blk\u0027s queue with same with number"},{"line_number":24,"context_line":"of vCPU. The queues are correctly seprated from VM perspective, but"},{"line_number":25,"context_line":"number of iothread in host is set to 1 as default. The default configuration"},{"line_number":26,"context_line":"doesn\u0027t maximize virtio-blk\u0027s performance. However, the two value are not"}],"source_content_type":"text/x-rst","patch_set":2,"id":"aa6e18b9_96112f6c","line":23,"in_reply_to":"abf4edc1_6fdcb276","updated":"2025-07-02 11:39:50.000000000","message":"its support for both and yes if we allowed multi queu tuenign we shoudl do it for both.\n\nin newer version fo libvirt/qemu multi queu for virtio-blk adn virtio-scsi is enabled by default with sane defauls\n\nwithout iothread multi queu will not significnaly improve perfromance\nit simpley aloows the guest kernel to avoid lockign in some case and ot do sligly smarter qos,\n\nmulti queu on its own still has all io going through the single qemu emulator thread so the real performace uplift is tied to io thread.\n\nthat is actully what i woudl prefer to focus on this cycle and defer if we allow multi queue to be confiured to a future release.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b7b5e3eca5ba760cc7e06b57fe65c1ec7ac79a7","unresolved":true,"context_lines":[{"line_number":31,"context_line":"---------"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- As a cloud admin, I want to tune VM io performance using virtio-blk queue"},{"line_number":34,"context_line":"  and iothreads."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9f17d8eb_0e34e5c7","line":34,"updated":"2025-07-02 16:40:33.000000000","message":"if we mix both knobs, how the operator would know which ones to prefer ?","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":false,"context_lines":[{"line_number":31,"context_line":"---------"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- As a cloud admin, I want to tune VM io performance using virtio-blk queue"},{"line_number":34,"context_line":"  and iothreads."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Proposed change"},{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf1bbd06_c04b649e","line":34,"in_reply_to":"9f17d8eb_0e34e5c7","updated":"2025-07-03 16:50:28.000000000","message":"It\u0027s better for operator to configure both.\n\nAfter some discussion, I decided to force only the queue parameter in this spec. Thank you for the comment.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9ea76e3e87c16501529c9897817858a325398d2f","unresolved":true,"context_lines":[{"line_number":41,"context_line":"applies the number of multi queues and iothreads to a libvirt xml domain file."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The IO threads for virtio-blk run on shared CPU on hosts. If a flavor has"},{"line_number":44,"context_line":"`hw:blk_iothreads` and nova-compute is configured to use `cpu_shared_set`"},{"line_number":45,"context_line":"configuration, the iothreads runs on shared CPU even though the flavor\u0027s CPU"},{"line_number":46,"context_line":"is pinned to some host\u0027s CPU. The behavior is same for the numa topology."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"If the new extra_spec is not added in a flavor, nova-compute sets virtio blk"},{"line_number":49,"context_line":"related configuration as following:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4864baad_58178e88","line":46,"range":{"start_line":44,"start_character":21,"end_line":46,"end_character":30},"updated":"2025-07-02 10:31:23.000000000","message":"what if the host is not configured with any shared CPUs? Where do we put the threads then?\n\nnova already has a wide range of logic to place the emulator thread. Do we want to follow that? https://docs.openstack.org/nova/latest/admin/cpu-topologies.html#customizing-instance-emulator-thread-pinning-policies","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":false,"context_lines":[{"line_number":41,"context_line":"applies the number of multi queues and iothreads to a libvirt xml domain file."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The IO threads for virtio-blk run on shared CPU on hosts. If a flavor has"},{"line_number":44,"context_line":"`hw:blk_iothreads` and nova-compute is configured to use `cpu_shared_set`"},{"line_number":45,"context_line":"configuration, the iothreads runs on shared CPU even though the flavor\u0027s CPU"},{"line_number":46,"context_line":"is pinned to some host\u0027s CPU. The behavior is same for the numa topology."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"If the new extra_spec is not added in a flavor, nova-compute sets virtio blk"},{"line_number":49,"context_line":"related configuration as following:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"0dcf2df3_faaf3a43","line":46,"range":{"start_line":44,"start_character":21,"end_line":46,"end_character":30},"in_reply_to":"4662e29b_ad2ccdcf","updated":"2025-07-03 16:50:28.000000000","message":"Thanks.\n\nDue to the spec scope change, I removed the iothread\u0027s related contents from this spec so I checked the resolved check. If it\u0027s wrong, please reopen this comment.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cef3062e7b16379a66d8ee1760bc02a2aeecbf7e","unresolved":true,"context_lines":[{"line_number":41,"context_line":"applies the number of multi queues and iothreads to a libvirt xml domain file."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The IO threads for virtio-blk run on shared CPU on hosts. If a flavor has"},{"line_number":44,"context_line":"`hw:blk_iothreads` and nova-compute is configured to use `cpu_shared_set`"},{"line_number":45,"context_line":"configuration, the iothreads runs on shared CPU even though the flavor\u0027s CPU"},{"line_number":46,"context_line":"is pinned to some host\u0027s CPU. The behavior is same for the numa topology."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"If the new extra_spec is not added in a flavor, nova-compute sets virtio blk"},{"line_number":49,"context_line":"related configuration as following:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba854516_f075a8aa","line":46,"range":{"start_line":44,"start_character":21,"end_line":46,"end_character":30},"in_reply_to":"4864baad_58178e88","updated":"2025-07-02 11:39:50.000000000","message":"that depend\n\nthe answer is that for pinned vms they woudl run on the same cores the vm is pinned too.\n\nfor floatign vms fi cpu_shared_set adn cpu_dedicated_set are nto defiend then all cores are implictly in the cpu_shared_set\n\nthe answer is basiclly the bhavior is identical to hw:emulator_thread_polcy\u003dshared.\n\nhttps://review.opendev.org/c/openstack/nova-specs/+/953940/1/specs/2025.2/approved/dynamic-vm-iothreads.rst#134\n\nthat also what we discussed in the prior ptgs.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b7b5e3eca5ba760cc7e06b57fe65c1ec7ac79a7","unresolved":true,"context_lines":[{"line_number":41,"context_line":"applies the number of multi queues and iothreads to a libvirt xml domain file."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"The IO threads for virtio-blk run on shared CPU on hosts. If a flavor has"},{"line_number":44,"context_line":"`hw:blk_iothreads` and nova-compute is configured to use `cpu_shared_set`"},{"line_number":45,"context_line":"configuration, the iothreads runs on shared CPU even though the flavor\u0027s CPU"},{"line_number":46,"context_line":"is pinned to some host\u0027s CPU. The behavior is same for the numa topology."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"If the new extra_spec is not added in a flavor, nova-compute sets virtio blk"},{"line_number":49,"context_line":"related configuration as following:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4662e29b_ad2ccdcf","line":46,"range":{"start_line":44,"start_character":21,"end_line":46,"end_character":30},"in_reply_to":"ba854516_f075a8aa","updated":"2025-07-02 16:40:33.000000000","message":"yeah, that spec should clarify what would be the behaviour of an instance asking for iothreads depending on the CPU topologies.\n\nFor example, what would happen if some flavor asks for IO threads and none of the computes are set with shared CPUs but rather CPU pinning ?","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b7b5e3eca5ba760cc7e06b57fe65c1ec7ac79a7","unresolved":true,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"- multiqueue configuration: Nothing is configured. The default value of"},{"line_number":52,"context_line":"  virtio-blk is same with number of vcpu."},{"line_number":53,"context_line":"- iothreads: iothread\u003d1 is configured explicitly."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"32c5a086_cc2d9816","line":53,"updated":"2025-07-02 16:40:33.000000000","message":"are you proposing to isolate one IO thread for each libvirt domain ?","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"- multiqueue configuration: Nothing is configured. The default value of"},{"line_number":52,"context_line":"  virtio-blk is same with number of vcpu."},{"line_number":53,"context_line":"- iothreads: iothread\u003d1 is configured explicitly."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fed97381_f08673d1","line":53,"in_reply_to":"32c5a086_cc2d9816","updated":"2025-07-03 16:50:28.000000000","message":"yes. the previous proposal is to configure at least 1 iothread.\n\nDue to the spec scope change, I removed the iothread\u0027s related contents from this spec so I checked the resolved check. If it\u0027s wrong, please reopen this comment.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b5d4cb97d3b687fb6aa07c6181121ca7306d01aa","unresolved":true,"context_lines":[{"line_number":51,"context_line":"- multiqueue configuration: Nothing is configured. The default value of"},{"line_number":52,"context_line":"  virtio-blk is same with number of vcpu."},{"line_number":53,"context_line":"- iothreads: iothread\u003d1 is configured explicitly."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"a080a4b4_37869287","line":54,"updated":"2025-07-02 10:11:42.000000000","message":"I think it would be helpful to mention the required modification to the libvirt XML file and provide a snippet illustrating it. It would also be useful to clearly link or highlight how the hw:blk_multiqueue and hw:blk_iothreads image or flavor properties translate into changes in the XML.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":false,"context_lines":[{"line_number":51,"context_line":"- multiqueue configuration: Nothing is configured. The default value of"},{"line_number":52,"context_line":"  virtio-blk is same with number of vcpu."},{"line_number":53,"context_line":"- iothreads: iothread\u003d1 is configured explicitly."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Alternatives"},{"line_number":56,"context_line":"------------"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"97baa0a9_9556c28c","line":54,"in_reply_to":"a080a4b4_37869287","updated":"2025-07-03 16:50:28.000000000","message":"Thanks. I added new spec scope xml domain sample.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b7b5e3eca5ba760cc7e06b57fe65c1ec7ac79a7","unresolved":true,"context_lines":[{"line_number":97,"context_line":"Other deployer impact"},{"line_number":98,"context_line":"---------------------"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"None."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Developer impact"},{"line_number":103,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f7636eda_4a60ba08","line":100,"updated":"2025-07-02 16:40:33.000000000","message":"They should carefully set flavors with a correct number of IO threads depending on the workloads they wish to run and the CPUs they know the computes have.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":false,"context_lines":[{"line_number":97,"context_line":"Other deployer impact"},{"line_number":98,"context_line":"---------------------"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"None."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Developer impact"},{"line_number":103,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a15a575b_93c7bdb0","line":100,"in_reply_to":"f7636eda_4a60ba08","updated":"2025-07-03 16:50:28.000000000","message":"That\u0027s right.  The pinned cpu and shared_cpu configuration really affect the compute\u0027s capacity management and scheduling.\n\nDue to the spec scope change, I removed the iothread\u0027s related contents from this spec so I checked the resolved check. If it\u0027s wrong, please reopen this comment.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9b7b5e3eca5ba760cc7e06b57fe65c1ec7ac79a7","unresolved":true,"context_lines":[{"line_number":107,"context_line":"Upgrade impact"},{"line_number":108,"context_line":"--------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"None."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Implementation"},{"line_number":113,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"186137e2_b5e1aa74","line":110,"updated":"2025-07-02 16:40:33.000000000","message":"Really ? if we have to check compute QEMU versions, then there is a rolling-upgrade impact.\n\nUsing the existing libvirt iothreads feature tho is a way simplier upgrade concern.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Upgrade impact"},{"line_number":108,"context_line":"--------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"None."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Implementation"},{"line_number":113,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5b7ee7f4_c9d37c66","line":110,"in_reply_to":"186137e2_b5e1aa74","updated":"2025-07-03 16:50:28.000000000","message":"Thanks. that\u0027s right. I completely missed the MIN_VERSION_SUPPORT.\n\nDue to the spec scope change, the new spec doesn\u0027t need to check qemu version because minimum qemu version already support the `queue` sub element.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9a4946ab4fd2655d29cae047a78755ba103bd4d6","unresolved":true,"context_lines":[{"line_number":121,"context_line":"Feature Liaison"},{"line_number":122,"context_line":"---------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"None."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f44a452f_a7373a46","line":124,"updated":"2025-07-03 10:49:47.000000000","message":"by the way you can add me as a feature liason if you like.\nim happy to advocate for these enhancemnts and review your patches.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":false,"context_lines":[{"line_number":121,"context_line":"Feature Liaison"},{"line_number":122,"context_line":"---------------"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"None."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c49c0def_c5763d8c","line":124,"in_reply_to":"f44a452f_a7373a46","updated":"2025-07-03 16:50:28.000000000","message":"Thanks. added.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b5d4cb97d3b687fb6aa07c6181121ca7306d01aa","unresolved":true,"context_lines":[{"line_number":124,"context_line":"None."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Work Items"},{"line_number":128,"context_line":"----------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Support the new extra specs in a new API microversion."}],"source_content_type":"text/x-rst","patch_set":2,"id":"feb13a6a_2088f745","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":10},"updated":"2025-07-02 10:11:42.000000000","message":"Maybe the trait addition should be listed here, if we agree about it.","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"feded73cd51aa2b2348fbd76c1f838f4a2099347","unresolved":false,"context_lines":[{"line_number":124,"context_line":"None."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Work Items"},{"line_number":128,"context_line":"----------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Support the new extra specs in a new API microversion."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9c9767a7_281f7b02","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":10},"in_reply_to":"feb13a6a_2088f745","updated":"2025-07-03 16:50:28.000000000","message":"Done","commit_id":"84877f1b4179c8b1d4c00e1893e9720dd28c8cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"88e5a1800282412c58f965e2f6b5bc15f282725a","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Support Virtio-blk queue"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-virtio-blk-iothreads"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Cloud admin wants to tune server\u0027s io performance. The libvirt and qemu"},{"line_number":14,"context_line":"supports configure the number of virtio-blk queue via xml domain file."}],"source_content_type":"text/x-rst","patch_set":3,"id":"d6e150e3_59cd2a1d","line":11,"updated":"2025-07-03 17:14:42.000000000","message":"we proably shoud update teh title to refect that this is now jsut for blk multi queue","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c52e964f69c138a5a384c345c679cd8118271f00","unresolved":true,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"- As a cloud admin, I want to tune VM io performance using virtio-blk queue"},{"line_number":32,"context_line":"  to provide better IO performance VM to cloud user."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c76ab9f2_46448df8","line":31,"range":{"start_line":31,"start_character":38,"end_line":31,"end_character":40},"updated":"2025-07-25 09:33:52.000000000","message":"nit: IO","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"7ed4ecfc3e05d97f341ece7a7f4053386e4592f9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"- As a cloud admin, I want to tune VM io performance using virtio-blk queue"},{"line_number":32,"context_line":"  to provide better IO performance VM to cloud user."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4331de1c_07a0e6e0","line":31,"range":{"start_line":31,"start_character":38,"end_line":31,"end_character":40},"in_reply_to":"c76ab9f2_46448df8","updated":"2025-10-16 08:39:58.000000000","message":"Done","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"34a35d18096117023df2bef256e27b93e265d937","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"This change introduces new flavor\u0027s extra_spec, ``hw:blk_multiqueue``."},{"line_number":38,"context_line":"If a flavor has the new extra spec, nova-compute applies the number of queues"},{"line_number":39,"context_line":"set by the extra_spec to a libvirt xml domain file."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"If the new extra_spec is not added in a flavor, nova-compute sets nothing to"},{"line_number":42,"context_line":"libvirt xml domain to use qemu default value."}],"source_content_type":"text/x-rst","patch_set":3,"id":"19cd6f64_60700682","line":39,"updated":"2025-07-03 17:11:34.000000000","message":"so the only thing that is missing in my view is translating the hw:blk_multiqueue\ninto a required trait. \n\nwhich shuld be done via a new _translate funciton in the schduler utils that called form ResourceRequest.from_request_spec\n\nhttps://github.com/openstack/nova/blob/master/nova/scheduler/utils.py#L80\n\nlike this\n\nhttps://github.com/openstack/nova/blob/2c19c07d5e29ca5445fa6dd45a6117542951714c/nova/scheduler/utils.py#L300-L318\n\nhttps://github.com/openstack/nova/blob/2c19c07d5e29ca5445fa6dd45a6117542951714c/nova/scheduler/utils.py#L191","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"7ed4ecfc3e05d97f341ece7a7f4053386e4592f9","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"This change introduces new flavor\u0027s extra_spec, ``hw:blk_multiqueue``."},{"line_number":38,"context_line":"If a flavor has the new extra spec, nova-compute applies the number of queues"},{"line_number":39,"context_line":"set by the extra_spec to a libvirt xml domain file."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"If the new extra_spec is not added in a flavor, nova-compute sets nothing to"},{"line_number":42,"context_line":"libvirt xml domain to use qemu default value."}],"source_content_type":"text/x-rst","patch_set":3,"id":"c0b6dc5c_89b51ac8","line":39,"in_reply_to":"19cd6f64_60700682","updated":"2025-10-16 08:39:58.000000000","message":"Done","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"34a35d18096117023df2bef256e27b93e265d937","unresolved":true,"context_lines":[{"line_number":39,"context_line":"set by the extra_spec to a libvirt xml domain file."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"If the new extra_spec is not added in a flavor, nova-compute sets nothing to"},{"line_number":42,"context_line":"libvirt xml domain to use qemu default value."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"traits"},{"line_number":45,"context_line":"------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ad2a199a_d64715de","line":42,"updated":"2025-07-03 17:11:34.000000000","message":"+1","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"34a35d18096117023df2bef256e27b93e265d937","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"This change introduces one new traits, `COMPUTE_BLK_MULTIQUEUE`, to show"},{"line_number":48,"context_line":"compute\u0027s capability. Compute nodes supporting the multi queue configuration"},{"line_number":49,"context_line":"have the new tratis."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Domain xml"},{"line_number":52,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fbcc7e2c_dfb2d145","line":49,"updated":"2025-07-03 17:11:34.000000000","message":"+1\n\nwe might want to use\nCOMPUTE_STORAGE_MULTIQUEUE\nhttps://github.com/openstack/os-traits/blob/master/os_traits/compute/storage.py\n\ni agree that this shoudl be a COMPUTE_ trait and not a HW_ trait lik \n\nHW_NIC_MULTIQUEUE\n\nhttps://github.com/openstack/os-traits/blob/45bc9b800f383780c9ff6519f4ebb48afa5ac546/os_traits/hw/nic/__init__.py#L18\n\nbecause that actully mean the host nic i.e. an sriov interface supprot multi sueue.\n\nwhere as this si declaring hypveri8sor supprot which is what we use COMPUTE_ for","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"c52e964f69c138a5a384c345c679cd8118271f00","unresolved":true,"context_lines":[{"line_number":65,"context_line":"Alternatives"},{"line_number":66,"context_line":"------------"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Introducing new two configurations to nova.conf. The new configuration sets"},{"line_number":69,"context_line":"hypervisor base multi queues and iothreads. However, cloud admin usually"},{"line_number":70,"context_line":"manages VM performance and its setting per VM, not per hypervisor."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"56602f35_0610d8ed","line":68,"range":{"start_line":68,"start_character":12,"end_line":68,"end_character":70},"updated":"2025-07-25 09:33:52.000000000","message":"Could you add the name of the two new cfg options here please? Later you wrote only one, so little confusing from config perspective.\nOne will be for per hypervisor configuration and one for per VM ?","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"7ed4ecfc3e05d97f341ece7a7f4053386e4592f9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"Alternatives"},{"line_number":66,"context_line":"------------"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Introducing new two configurations to nova.conf. The new configuration sets"},{"line_number":69,"context_line":"hypervisor base multi queues and iothreads. However, cloud admin usually"},{"line_number":70,"context_line":"manages VM performance and its setting per VM, not per hypervisor."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"2a528a11_4e20761e","line":68,"range":{"start_line":68,"start_character":12,"end_line":68,"end_character":70},"in_reply_to":"56602f35_0610d8ed","updated":"2025-10-16 08:39:58.000000000","message":"Thanks for the catch. I forget to remove the iothread part description here.","commit_id":"b3532001fa8a6626de2f2bc4b425f75ce00de8b7"}],"specs/2026.1/approved/add-virtio-blk-iothreads.rst":[{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"24d81dd85649668f85c4f44ab48adefcb237a55f","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The libvirt sets up number of virtio-blk\u0027s queue with same with number"},{"line_number":22,"context_line":"of vCPU. The queues are correctly seprated from VM perspective, but"},{"line_number":23,"context_line":"the all queues are handled by the single qemu emulator thread. So if the"},{"line_number":24,"context_line":"number of vCPU is big the number of queue is too much. For example, one"},{"line_number":25,"context_line":"flavor is set to 64vCPU, the number of virtio-blk\u0027s queue is 64 queues."},{"line_number":26,"context_line":"The 64 queues are too much and don\u0027t improve the IO performance."}],"source_content_type":"text/x-rst","patch_set":5,"id":"e99719c0_13505af6","line":23,"range":{"start_line":23,"start_character":4,"end_line":23,"end_character":61},"updated":"2025-12-17 03:20:52.000000000","message":"In other words, the all queues run on one CPU thread, right?","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6371c6a507331992c17b0b122748b65a69e22ebd","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The libvirt sets up number of virtio-blk\u0027s queue with same with number"},{"line_number":22,"context_line":"of vCPU. The queues are correctly seprated from VM perspective, but"},{"line_number":23,"context_line":"the all queues are handled by the single qemu emulator thread. So if the"},{"line_number":24,"context_line":"number of vCPU is big the number of queue is too much. For example, one"},{"line_number":25,"context_line":"flavor is set to 64vCPU, the number of virtio-blk\u0027s queue is 64 queues."},{"line_number":26,"context_line":"The 64 queues are too much and don\u0027t improve the IO performance."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5c5346ee_2208ef0e","line":23,"range":{"start_line":23,"start_character":4,"end_line":23,"end_character":61},"in_reply_to":"43521dc4_5837e3ab","updated":"2025-12-18 01:57:28.000000000","message":"Got it and thank you again for you etailed explanation.","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dc5beb3fcfb4e105074e0d4139f329c78d5d729b","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The libvirt sets up number of virtio-blk\u0027s queue with same with number"},{"line_number":22,"context_line":"of vCPU. The queues are correctly seprated from VM perspective, but"},{"line_number":23,"context_line":"the all queues are handled by the single qemu emulator thread. So if the"},{"line_number":24,"context_line":"number of vCPU is big the number of queue is too much. For example, one"},{"line_number":25,"context_line":"flavor is set to 64vCPU, the number of virtio-blk\u0027s queue is 64 queues."},{"line_number":26,"context_line":"The 64 queues are too much and don\u0027t improve the IO performance."}],"source_content_type":"text/x-rst","patch_set":5,"id":"43521dc4_5837e3ab","line":23,"range":{"start_line":23,"start_character":4,"end_line":23,"end_character":61},"in_reply_to":"e99719c0_13505af6","updated":"2025-12-17 10:15:57.000000000","message":"yes an no. your simplification misses the nuance that we are not talking about the queue running on any random thread.\n\nwe are specificity saying that the queue are handled by the qemu main thread which also handels messages via the qemu monitor and other background tasks.\n\nthat is what we mean by `qemu emulator thread`\n\nthat thread will execute on 1 cpu but that just an artifact fo how thread thread based concurrence works.","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"24d81dd85649668f85c4f44ab48adefcb237a55f","unresolved":true,"context_lines":[{"line_number":44,"context_line":"traits"},{"line_number":45,"context_line":"------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"This change introduces one new traits, ``COMPUTE_BLK_MULTIQUEUE``, to show"},{"line_number":48,"context_line":"compute\u0027s capability. Compute nodes supporting the multi queue configuration"},{"line_number":49,"context_line":"have the new tratis."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1e313a1b_5917a838","line":47,"range":{"start_line":47,"start_character":31,"end_line":47,"end_character":37},"updated":"2025-12-17 03:20:52.000000000","message":"s/trait","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"24d81dd85649668f85c4f44ab48adefcb237a55f","unresolved":true,"context_lines":[{"line_number":76,"context_line":"Alternatives"},{"line_number":77,"context_line":"------------"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Introducing a new configurations to nova.conf. The new configuration sets"},{"line_number":80,"context_line":"hypervisor base multi queues. However, cloud admin usually manages VM"},{"line_number":81,"context_line":"performance and its setting per VM, not per hypervisor."},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"39c39f15_2bcd36b0","line":79,"updated":"2025-12-17 03:20:52.000000000","message":"s/configuration option","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"24d81dd85649668f85c4f44ab48adefcb237a55f","unresolved":true,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Introducing a new configurations to nova.conf. The new configuration sets"},{"line_number":80,"context_line":"hypervisor base multi queues. However, cloud admin usually manages VM"},{"line_number":81,"context_line":"performance and its setting per VM, not per hypervisor."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ad71f1c4_0037701b","line":81,"updated":"2025-12-17 03:20:52.000000000","message":"Why we need to introduce a new configuration option? What are the influences of the new configuration?","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dc5beb3fcfb4e105074e0d4139f329c78d5d729b","unresolved":true,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Introducing a new configurations to nova.conf. The new configuration sets"},{"line_number":80,"context_line":"hypervisor base multi queues. However, cloud admin usually manages VM"},{"line_number":81,"context_line":"performance and its setting per VM, not per hypervisor."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1daab534_220c4dba","line":81,"in_reply_to":"ad71f1c4_0037701b","updated":"2025-12-17 10:15:57.000000000","message":"we dont this is in the alternitive selction which are the alternitives we have rejected\n\na configuration option was consider and rejected as we do not want the behavior fo the xml generation to vary per host.\n\nthat causes a lot of problems for live migration and scheduling in general so we generally reject config driven approach that alter the amount of resources allocated to a vm","commit_id":"b3aea415d2eaca394affe0da9fe9edfc848b0213"}]}
