)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0b49ace679b90c129b2dc83c6ed1d9390c4fcd90","unresolved":true,"context_lines":[{"line_number":9,"context_line":"This test simulates a scenario where NUMA live migration causes the"},{"line_number":10,"context_line":"per-cell CPU usage to exceed the limit configured by"},{"line_number":11,"context_line":"cpu_allocation_ratio."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ie6bcf827cadc67d0937f1bc3e100b2ce09a6e26b"},{"line_number":14,"context_line":"Signed-off-by: Masanori Ueno \u003cms-ueno@kddi.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"f619987e_5d8f97c9","line":12,"updated":"2026-06-23 11:14:58.000000000","message":"nit if you need a respine you could add\n\n\nRelated-Bug: #2153425\n\nbut you called it out in the title anyway so all good.","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"70948a656e4472e6da6a91950544445b2d164cef","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This test simulates a scenario where NUMA live migration causes the"},{"line_number":10,"context_line":"per-cell CPU usage to exceed the limit configured by"},{"line_number":11,"context_line":"cpu_allocation_ratio."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ie6bcf827cadc67d0937f1bc3e100b2ce09a6e26b"},{"line_number":14,"context_line":"Signed-off-by: Masanori Ueno \u003cms-ueno@kddi.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"a5d7bba2_06d9da32","line":12,"in_reply_to":"7ac36f9f_26a7b4c0","updated":"2026-06-23 13:47:35.000000000","message":"Done","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"},{"author":{"_account_id":38918,"name":"Masanori Ueno","display_name":"Masanori Ueno","email":"ms-ueno@kddi.com","username":"masan4444"},"change_message_id":"2a52ee407174885d41be946033b8f3f4275517b8","unresolved":true,"context_lines":[{"line_number":9,"context_line":"This test simulates a scenario where NUMA live migration causes the"},{"line_number":10,"context_line":"per-cell CPU usage to exceed the limit configured by"},{"line_number":11,"context_line":"cpu_allocation_ratio."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ie6bcf827cadc67d0937f1bc3e100b2ce09a6e26b"},{"line_number":14,"context_line":"Signed-off-by: Masanori Ueno \u003cms-ueno@kddi.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7ac36f9f_26a7b4c0","line":12,"in_reply_to":"f619987e_5d8f97c9","updated":"2026-06-23 13:14:49.000000000","message":"Thanks. I\u0027ve added a related bug info.","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a09601c73092bcd877034b30f06b8b97610f211f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8c2f49ba_1a95aa2d","updated":"2026-06-04 08:13:36.000000000","message":"FWIW, I demonstrated the same problem in an older patch here https://review.opendev.org/c/openstack/nova/+/986693 but this DNM looks good to me as well.","commit_id":"1ed848f0468b9337e3973cf01115be6b57765c5a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9c9643504ae0b368cf04e18ab7e19ee8a368940a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e28f78d5_80144cbf","updated":"2026-06-11 10:14:30.000000000","message":"solid regression testclass, no real blockers except two doc nits. Don\u0027t provide a new revision just for this.","commit_id":"f7760fdb68678643733fe404a737409963d7301c"},{"author":{"_account_id":38918,"name":"Masanori Ueno","display_name":"Masanori Ueno","email":"ms-ueno@kddi.com","username":"masan4444"},"change_message_id":"1126918f7d9afd14db922c599a0559a401303b83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"742d3d69_3e9aa243","updated":"2026-06-18 14:55:17.000000000","message":"@smooney@redhat.com\nI have updated the regression test to include hw:mem_page_size\u003dsmall as discussed.\nCould you please review the changes?","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"}],"nova/tests/functional/regressions/test_bug_2153425.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9c9643504ae0b368cf04e18ab7e19ee8a368940a","unresolved":true,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"Regression test for bug ."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"https://bugs.launchpad.net/nova/+bug/2153425"},{"line_number":16,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"e240b316_1dfb55bc","line":13,"range":{"start_line":13,"start_character":27,"end_line":13,"end_character":28},"updated":"2026-06-11 10:14:30.000000000","message":"nit: you forgot to add the bug number but the filename is self-explanatory.","commit_id":"f7760fdb68678643733fe404a737409963d7301c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"18763a397c5d020d497ab656bbf28c443ffa2314","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"Regression test for bug ."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"https://bugs.launchpad.net/nova/+bug/2153425"},{"line_number":16,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"fda0ea2c_1d27c2f0","line":13,"range":{"start_line":13,"start_character":27,"end_line":13,"end_character":28},"in_reply_to":"e240b316_1dfb55bc","updated":"2026-06-19 10:35:06.000000000","message":"Done","commit_id":"f7760fdb68678643733fe404a737409963d7301c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9c9643504ae0b368cf04e18ab7e19ee8a368940a","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"\"\"\"Regression test for bug ."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"https://bugs.launchpad.net/nova/+bug/2153425"},{"line_number":16,"context_line":"\"\"\""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import fixtures"}],"source_content_type":"text/x-python","patch_set":3,"id":"0a00767a_9efff5b8","line":15,"updated":"2026-06-11 10:14:30.000000000","message":"++","commit_id":"f7760fdb68678643733fe404a737409963d7301c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9c9643504ae0b368cf04e18ab7e19ee8a368940a","unresolved":true,"context_lines":[{"line_number":103,"context_line":"            flavor_id\u003dflavor, az\u003d\u0027nova\u0027, host\u003d\u0027src\u0027, networks\u003d\u0027none\u0027)"},{"line_number":104,"context_line":"        self.assertEqual(\u0027src\u0027, self.get_host(self.server[\u0027id\u0027]))"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # The live migration should must select Cell 1, not Cell 0"},{"line_number":107,"context_line":"        # because selecting Cell 0 would exceed the limit of 3 (cpu_usage\u003d4)"},{"line_number":108,"context_line":"        self._live_migrate(self.server, \u0027completed\u0027, host\u003d\u0027dest\u0027)"},{"line_number":109,"context_line":"        self.assertEqual(\u0027dest\u0027, self.get_host(self.server[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"4f6a4243_85b7af4c","line":106,"range":{"start_line":106,"start_character":36,"end_line":106,"end_character":40},"updated":"2026-06-11 10:14:30.000000000","message":"nit: either \u0027should\u0027 or \u0027must\u0027 but two verbs here is too much ;-)","commit_id":"f7760fdb68678643733fe404a737409963d7301c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"18763a397c5d020d497ab656bbf28c443ffa2314","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            flavor_id\u003dflavor, az\u003d\u0027nova\u0027, host\u003d\u0027src\u0027, networks\u003d\u0027none\u0027)"},{"line_number":104,"context_line":"        self.assertEqual(\u0027src\u0027, self.get_host(self.server[\u0027id\u0027]))"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # The live migration should must select Cell 1, not Cell 0"},{"line_number":107,"context_line":"        # because selecting Cell 0 would exceed the limit of 3 (cpu_usage\u003d4)"},{"line_number":108,"context_line":"        self._live_migrate(self.server, \u0027completed\u0027, host\u003d\u0027dest\u0027)"},{"line_number":109,"context_line":"        self.assertEqual(\u0027dest\u0027, self.get_host(self.server[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":3,"id":"347901f7_bb2ba676","line":106,"range":{"start_line":106,"start_character":36,"end_line":106,"end_character":40},"in_reply_to":"4f6a4243_85b7af4c","updated":"2026-06-19 10:35:06.000000000","message":"Done","commit_id":"f7760fdb68678643733fe404a737409963d7301c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9c9643504ae0b368cf04e18ab7e19ee8a368940a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1be1ac56_7805886d","line":115,"updated":"2026-06-11 10:14:30.000000000","message":"great test, ty.","commit_id":"f7760fdb68678643733fe404a737409963d7301c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"18763a397c5d020d497ab656bbf28c443ffa2314","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        # issue can also occur when it is set to False."},{"line_number":70,"context_line":"        self.flags("},{"line_number":71,"context_line":"            packing_host_numa_cells_allocation_strategy\u003dTrue,"},{"line_number":72,"context_line":"            group\u003d\u0027compute\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        host_info \u003d fakelibvirt.HostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1,"},{"line_number":75,"context_line":"                                         cpu_cores\u003d2, cpu_threads\u003d1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"c88b501f_4bebcd4d","line":72,"updated":"2026-06-19 10:35:06.000000000","message":"ya so this is imporant so that nova will prefer to try and fill one numa node before moving to the other as it demonstrates that the allocation rations are not taking effect\n\nfalse woudl prefer to spread so the addtion of small woudl cause them to be blaance based on memory\n\nso this si not required to correctly demonstrate teh cpu edgecase","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"70948a656e4472e6da6a91950544445b2d164cef","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        # issue can also occur when it is set to False."},{"line_number":70,"context_line":"        self.flags("},{"line_number":71,"context_line":"            packing_host_numa_cells_allocation_strategy\u003dTrue,"},{"line_number":72,"context_line":"            group\u003d\u0027compute\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        host_info \u003d fakelibvirt.HostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1,"},{"line_number":75,"context_line":"                                         cpu_cores\u003d2, cpu_threads\u003d1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9c7a8367_d2f0e6f4","line":72,"in_reply_to":"07954146_121e0c0b","updated":"2026-06-23 13:47:35.000000000","message":"yep this looks better thanks for your efforts here","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"575a828338974e1cc7c3a6ca5f0e287a5e6ad818","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        # issue can also occur when it is set to False."},{"line_number":70,"context_line":"        self.flags("},{"line_number":71,"context_line":"            packing_host_numa_cells_allocation_strategy\u003dTrue,"},{"line_number":72,"context_line":"            group\u003d\u0027compute\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        host_info \u003d fakelibvirt.HostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1,"},{"line_number":75,"context_line":"                                         cpu_cores\u003d2, cpu_threads\u003d1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ef186ba1_4d7c31fd","line":72,"in_reply_to":"16e75a43_be873907","updated":"2026-06-22 11:09:47.000000000","message":"no im saying it is mandatory\n\nnow that we are requesting hw_mem_page_size\u003dsmall we are now decrementing the aviable memory per numa node which we were not doing before\n\nso with it set to false that woudl be enought o start blancing vms based on numa memory usage irriespective of the cpu usage.\n\nby requesting pack we would try to fill the first numa ndoe until all memroy is exausted but with this change once the cpu usage exceed the allcoation ratio that will cause it to reject the numa ndoe that was prefered by packing based on memory and select the other one\n\nso this repoducer is correct as writen although the comment about the issue sill happenign with false is slightly imprecise but not entirly uncorrect.\n\nwe are tryign to replciate a very specific scenaior where numa 0 would normaly be condier but the cpu_allocation raitio si what forces the selection fo a diffent node which this current test does.","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0b49ace679b90c129b2dc83c6ed1d9390c4fcd90","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        # issue can also occur when it is set to False."},{"line_number":70,"context_line":"        self.flags("},{"line_number":71,"context_line":"            packing_host_numa_cells_allocation_strategy\u003dTrue,"},{"line_number":72,"context_line":"            group\u003d\u0027compute\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        host_info \u003d fakelibvirt.HostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1,"},{"line_number":75,"context_line":"                                         cpu_cores\u003d2, cpu_threads\u003d1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"851c00ef_3872e58c","line":72,"in_reply_to":"69ef1cc9_7daee661","updated":"2026-06-23 11:14:58.000000000","message":"yes so nova does not provide a public contract for how we select which numa ndoe the vm is placed on. its an internal implemation detial that we are free to modify over time. the packing option was the first tunable we exposed for operators to express a prefence.\n\nprior to that we only allowed truning the affinty requiremetns to select a shot where the affinity can be achived but did not allow expressing a prefnce of which numa ndoe would be used within the vm","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"},{"author":{"_account_id":38918,"name":"Masanori Ueno","display_name":"Masanori Ueno","email":"ms-ueno@kddi.com","username":"masan4444"},"change_message_id":"2a52ee407174885d41be946033b8f3f4275517b8","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        # issue can also occur when it is set to False."},{"line_number":70,"context_line":"        self.flags("},{"line_number":71,"context_line":"            packing_host_numa_cells_allocation_strategy\u003dTrue,"},{"line_number":72,"context_line":"            group\u003d\u0027compute\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        host_info \u003d fakelibvirt.HostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1,"},{"line_number":75,"context_line":"                                         cpu_cores\u003d2, cpu_threads\u003d1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"07954146_121e0c0b","line":72,"in_reply_to":"851c00ef_3872e58c","updated":"2026-06-23 13:14:49.000000000","message":"Thank you. I’m editing the comment. I’d appreciate it if you could take a look at it again.","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"},{"author":{"_account_id":38918,"name":"Masanori Ueno","display_name":"Masanori Ueno","email":"ms-ueno@kddi.com","username":"masan4444"},"change_message_id":"de6d2c99445b118afe3aff617a116bd74dcbbe92","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        # issue can also occur when it is set to False."},{"line_number":70,"context_line":"        self.flags("},{"line_number":71,"context_line":"            packing_host_numa_cells_allocation_strategy\u003dTrue,"},{"line_number":72,"context_line":"            group\u003d\u0027compute\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        host_info \u003d fakelibvirt.HostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1,"},{"line_number":75,"context_line":"                                         cpu_cores\u003d2, cpu_threads\u003d1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"16e75a43_be873907","line":72,"in_reply_to":"c88b501f_4bebcd4d","updated":"2026-06-22 06:57:13.000000000","message":"Sorry for the confusion. If I understand correctly, are you saying that the packing_host_numa_cells_allocation_strategy setting is not mandatory for this regression test?","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"},{"author":{"_account_id":38918,"name":"Masanori Ueno","display_name":"Masanori Ueno","email":"ms-ueno@kddi.com","username":"masan4444"},"change_message_id":"dfd96ead59ab54284c2c980dd044116e8ebd8a79","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        # issue can also occur when it is set to False."},{"line_number":70,"context_line":"        self.flags("},{"line_number":71,"context_line":"            packing_host_numa_cells_allocation_strategy\u003dTrue,"},{"line_number":72,"context_line":"            group\u003d\u0027compute\u0027)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        host_info \u003d fakelibvirt.HostInfo(cpu_nodes\u003d2, cpu_sockets\u003d1,"},{"line_number":75,"context_line":"                                         cpu_cores\u003d2, cpu_threads\u003d1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"69ef1cc9_7daee661","line":72,"in_reply_to":"ef186ba1_4d7c31fd","updated":"2026-06-22 13:44:41.000000000","message":"Thank you. You\u0027re right that packing_host_numa_cells_allocation_strategy is required for this regression test.\n\nSorry if my previous comment was unclear. What I meant by \"the issue can also occur\" was a different scenario. For example, if PCI devices are available on NUMA0 but not on NUMA1, I believe that VMs that do not request PCI devices could end up being preferentially placed on NUMA1 regardless of the packing_host_numa_cells_allocation_strategy setting.\n\nThat understanding comes from my reading of the following documentation:\nhttps://opendev.org/openstack/nova/blame/branch/master/doc/source/admin/cpu-topologies.rst#L129\n\nSo when I wrote \"the issue can also occur\", I was referring to cases like that.","commit_id":"162d57a0cc81d60a57622b696d3b76fbad3ee7b7"}]}
