)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c6809b6909eb68873227a4640745a32b217a8cb4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"I\u0027m not sure why these weren\u0027t included in the series, but they help"},{"line_number":10,"context_line":"prove out what this is doing."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This highlights a small bug in the code, whereby the topology object"},{"line_number":13,"context_line":"associated with the instance doesn\u0027t have the correct number of CPUs."},{"line_number":14,"context_line":"This doesn\u0027t seem to have any adverse effects since I am able to create"},{"line_number":15,"context_line":"an instance without the \"fix\" and the XML looks correct, but we correct"},{"line_number":16,"context_line":"it here nonetheless."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f560f44_b137e6db","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":69},"updated":"2020-10-02 18:35:58.000000000","message":"as i noted on irce its logically incorrect to store the cpu toplogy in the instance cell since it cannot vary per numa cell. its a vmwide atribute not numa cell specific.\n\nits only use in the cell object is for the siblings property which i belive is unused. the host cell siblings property is used but i belive the instace cell one is not.\n\nso as a follow up we can remove the cpu_toplogy field form the instnace cell and the siblings proeprty.\nthe cpu toplgoy can then be storeed in the instnace numa toplogy object if requried but its actully unrelated to numa.","commit_id":"104665ea83aae12dfb3c23babbd620c9103d290c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c6809b6909eb68873227a4640745a32b217a8cb4","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This highlights a small bug in the code, whereby the topology object"},{"line_number":13,"context_line":"associated with the instance doesn\u0027t have the correct number of CPUs."},{"line_number":14,"context_line":"This doesn\u0027t seem to have any adverse effects since I am able to create"},{"line_number":15,"context_line":"an instance without the \"fix\" and the XML looks correct, but we correct"},{"line_number":16,"context_line":"it here nonetheless."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Some tests are renamed now that we\u0027re testing more than one \"legacy\""},{"line_number":19,"context_line":"policy."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9f560f44_31759698","line":16,"range":{"start_line":14,"start_character":0,"end_line":16,"end_character":20},"updated":"2020-10-02 18:35:58.000000000","message":"that is more or less confirming my theory that this is unused and we shoudl remove it entirely.\n\nthe instnace_cell cpu_toplogy field and siblings property should not exist\n\nthe page size is also vmwide not per numa cell so that should also be moved up a level but thats a long standign todo.\n\nwe proably should delete them instead.","commit_id":"104665ea83aae12dfb3c23babbd620c9103d290c"}],"nova/tests/functional/libvirt/test_numa_servers.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"ea763412ce4d7c3c780f6010616fb92798c1b6fb","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        pinned and unpinned CPUs."},{"line_number":230,"context_line":"        \"\"\""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        # configure the flags so we 2 shared, 2 dedicated CPUs on one node and"},{"line_number":233,"context_line":"        # 1 shared and 3 dedicated on the other; the guest will request the"},{"line_number":234,"context_line":"        # latter so it should always land on the second NUMA node"},{"line_number":235,"context_line":"        self.flags("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_0e274965","line":232,"range":{"start_line":232,"start_character":70,"end_line":232,"end_character":74},"updated":"2020-10-08 14:02:50.000000000","message":"Ah, NUMA node (not compute node), OK. So, with 4 CPUs per node:\n\n      _S_ _D_\n  N1: 0 1 2 3 \n  N2: 4 5 6 7\n      D ^^S^^","commit_id":"24abe0f57cd4d38dfdca0fbe15ebcb9d4ec510a0"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"ea763412ce4d7c3c780f6010616fb92798c1b6fb","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                self.ctxt, \u0027compute1\u0027,"},{"line_number":250,"context_line":"            ).numa_topology"},{"line_number":251,"context_line":"        )"},{"line_number":252,"context_line":"        self.assertEqual(2, len(host_numa.cells))"},{"line_number":253,"context_line":"        self.assertEqual({0, 1}, host_numa.cells[0].cpuset)"},{"line_number":254,"context_line":"        self.assertEqual({2, 3}, host_numa.cells[0].pcpuset)"},{"line_number":255,"context_line":"        self.assertEqual({4}, host_numa.cells[1].cpuset)"},{"line_number":256,"context_line":"        self.assertEqual({5, 6, 7}, host_numa.cells[1].pcpuset)"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # create a flavor with 1 shared and 3 dedicated CPUs so that we can"},{"line_number":259,"context_line":"        # validate that both come from the same host NUMA node"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_aeea9dd5","line":256,"range":{"start_line":252,"start_character":9,"end_line":256,"end_character":63},"updated":"2020-10-08 14:02:50.000000000","message":"This is asserting my comment on L232, cool.","commit_id":"24abe0f57cd4d38dfdca0fbe15ebcb9d4ec510a0"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"ea763412ce4d7c3c780f6010616fb92798c1b6fb","unresolved":false,"context_lines":[{"line_number":271,"context_line":"        # sanity check the instance topology"},{"line_number":272,"context_line":"        inst \u003d objects.Instance.get_by_uuid(self.ctxt, server[\u0027id\u0027])"},{"line_number":273,"context_line":"        self.assertEqual(1, len(inst.numa_topology.cells))"},{"line_number":274,"context_line":"        self.assertEqual(4, inst.numa_topology.cells[0].cpu_topology.cores)"},{"line_number":275,"context_line":"        self.assertEqual({0}, inst.numa_topology.cells[0].cpuset)"},{"line_number":276,"context_line":"        self.assertEqual({1, 2, 3}, inst.numa_topology.cells[0].pcpuset)"},{"line_number":277,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_380ecee3","line":274,"updated":"2020-10-08 14:02:50.000000000","message":"Without the change in hardware.py, this would fail with:\n\n  testtools.matchers._impl.MismatchError: 4 !\u003d 3\n\nbecause cpu_topology.cores would only contain the 3 pinned cores.","commit_id":"24abe0f57cd4d38dfdca0fbe15ebcb9d4ec510a0"},{"author":{"_account_id":21813,"name":"Andrey Volkov","email":"m@amadev.ru","username":"avolkov"},"change_message_id":"9cd20f144e5bd865f695045e8c2a83cd34cfdc07","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        # validate that both come from the same host NUMA node"},{"line_number":260,"context_line":"        extra_spec \u003d {"},{"line_number":261,"context_line":"            \u0027hw:cpu_policy\u0027: \u0027mixed\u0027,"},{"line_number":262,"context_line":"            \u0027hw:cpu_dedicated_mask\u0027: \u0027^0\u0027,"},{"line_number":263,"context_line":"        }"},{"line_number":264,"context_line":"        flavor_id \u003d self._create_flavor(vcpu\u003d4, extra_spec\u003dextra_spec)"},{"line_number":265,"context_line":"        expected_usage \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f621f24_787e39e4","line":262,"range":{"start_line":262,"start_character":12,"end_line":262,"end_character":42},"updated":"2020-11-16 08:42:00.000000000","message":"This a bit confusing to me.\nOn numa node 0 we have 0,1 - vcpu, 2,3 - pcpu. \nWith ^0 mask, request is not to have 0 as pcpu.\nBut it seems, Nova first masks *all* cpus and then tries \nto fit.","commit_id":"583e85622bf9d7e2fdf2a8cf5157bbd1ec5f8b2b"}],"nova/virt/hardware.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4f1275b76c856ec2f228349f14f6d0a1e7fd5805","unresolved":false,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    if numa_topology:"},{"line_number":618,"context_line":"        min_requested_threads \u003d None"},{"line_number":619,"context_line":"        cell_topologies \u003d [cell.cpu_topology for cell in numa_topology.cells"},{"line_number":620,"context_line":"                           if (\u0027cpu_topology\u0027 in cell and cell.cpu_topology)]"},{"line_number":621,"context_line":"        if cell_topologies:"},{"line_number":622,"context_line":"            min_requested_threads \u003d min("},{"line_number":623,"context_line":"                    topo.threads for topo in cell_topologies)"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        if min_requested_threads:"},{"line_number":626,"context_line":"            if preferred.threads:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_2418a91c","line":623,"range":{"start_line":619,"start_character":0,"end_line":623,"end_character":61},"updated":"2020-10-05 10:56:04.000000000","message":"Here","commit_id":"104665ea83aae12dfb3c23babbd620c9103d290c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"870684080b226f260cccb60c54dd9332fabf2a89","unresolved":false,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    if numa_topology:"},{"line_number":618,"context_line":"        min_requested_threads \u003d None"},{"line_number":619,"context_line":"        cell_topologies \u003d [cell.cpu_topology for cell in numa_topology.cells"},{"line_number":620,"context_line":"                           if (\u0027cpu_topology\u0027 in cell and cell.cpu_topology)]"},{"line_number":621,"context_line":"        if cell_topologies:"},{"line_number":622,"context_line":"            min_requested_threads \u003d min("},{"line_number":623,"context_line":"                    topo.threads for topo in cell_topologies)"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        if min_requested_threads:"},{"line_number":626,"context_line":"            if preferred.threads:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_a43799fe","line":623,"range":{"start_line":619,"start_character":0,"end_line":623,"end_character":61},"in_reply_to":"9f560f44_2418a91c","updated":"2020-10-05 11:27:55.000000000","message":"oh is this not the host numa cell rather than the instance_cell.  I guess numa_toplogy here is the instance one so ya your right.","commit_id":"104665ea83aae12dfb3c23babbd620c9103d290c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9fd7c29e6514aa2d2a36dcec1901fd42bf6f24e5","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"    LOG.debug(\u0027Selected cores for pinning: %s, in cell %s\u0027, pinning,"},{"line_number":1014,"context_line":"                                                            host_cell.id)"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"    topology \u003d objects.VirtCPUTopology("},{"line_number":1017,"context_line":"        sockets\u003d1,"},{"line_number":1018,"context_line":"        cores\u003dlen(instance_cell) // threads_no,"},{"line_number":1019,"context_line":"        threads\u003dthreads_no)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_0d6e78fd","line":1016,"range":{"start_line":1016,"start_character":23,"end_line":1016,"end_character":38},"updated":"2020-10-02 18:11:16.000000000","message":"what is more concerning is why are we doing this at the instance cell level.\n\nwe do not support different cpu topologies per numa node.\n\nso this shoudl only be done once instance wide and the cpu toplogy shoudl not be in the cell.","commit_id":"104665ea83aae12dfb3c23babbd620c9103d290c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4f1275b76c856ec2f228349f14f6d0a1e7fd5805","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"    LOG.debug(\u0027Selected cores for pinning: %s, in cell %s\u0027, pinning,"},{"line_number":1014,"context_line":"                                                            host_cell.id)"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"    topology \u003d objects.VirtCPUTopology("},{"line_number":1017,"context_line":"        sockets\u003d1,"},{"line_number":1018,"context_line":"        cores\u003dlen(instance_cell) // threads_no,"},{"line_number":1019,"context_line":"        threads\u003dthreads_no)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_0413e502","line":1016,"range":{"start_line":1016,"start_character":23,"end_line":1016,"end_character":38},"in_reply_to":"9f560f44_0d6e78fd","updated":"2020-10-05 10:56:04.000000000","message":"I investigated this. It seems we\u0027re using this as a way to pass back a minimum thread count which we used above to build the actual CPU topology. So you\u0027re correct in stating that this doesn\u0027t really matter.","commit_id":"104665ea83aae12dfb3c23babbd620c9103d290c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9fd7c29e6514aa2d2a36dcec1901fd42bf6f24e5","unresolved":false,"context_lines":[{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"    topology \u003d objects.VirtCPUTopology("},{"line_number":1017,"context_line":"        sockets\u003d1,"},{"line_number":1018,"context_line":"        cores\u003dlen(instance_cell) // threads_no,"},{"line_number":1019,"context_line":"        threads\u003dthreads_no)"},{"line_number":1020,"context_line":"    instance_cell.pin_vcpus(*pinning)"},{"line_number":1021,"context_line":"    instance_cell.cpu_topology \u003d topology"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_8d628814","line":1018,"range":{"start_line":1018,"start_character":13,"end_line":1018,"end_character":32},"updated":"2020-10-02 18:11:16.000000000","message":"its a little non obvious but i belive thgis is the same as flavor.vcpus but we dont have the flavour currently.\n\nassuming that is correct then instance_cell is the valid argument to use not pinning\n+1","commit_id":"104665ea83aae12dfb3c23babbd620c9103d290c"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"ea763412ce4d7c3c780f6010616fb92798c1b6fb","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"                                                            host_cell.id)"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"    topology \u003d objects.VirtCPUTopology(sockets\u003d1,"},{"line_number":1017,"context_line":"                                       cores\u003dlen(pinning) // threads_no,"},{"line_number":1018,"context_line":"                                       threads\u003dthreads_no)"},{"line_number":1019,"context_line":"    instance_cell.pin_vcpus(*pinning)"},{"line_number":1020,"context_line":"    instance_cell.cpu_topology \u003d topology"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_d84eb237","side":"PARENT","line":1017,"range":{"start_line":1017,"start_character":49,"end_line":1017,"end_character":56},"updated":"2020-10-08 14:02:50.000000000","message":"pinning is a list of tuples ((guest core, host core), ... ), so only containing the pinned CPUs in a mixed policy VM...","commit_id":"0b3d98f410edd88b92ae2896a8825250db1521a1"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"ea763412ce4d7c3c780f6010616fb92798c1b6fb","unresolved":false,"context_lines":[{"line_number":1019,"context_line":"    # \u0027min_threads\u0027 field"},{"line_number":1020,"context_line":"    topology \u003d objects.VirtCPUTopology("},{"line_number":1021,"context_line":"        sockets\u003d1,"},{"line_number":1022,"context_line":"        cores\u003dlen(instance_cell) // threads_no,"},{"line_number":1023,"context_line":"        threads\u003dthreads_no)"},{"line_number":1024,"context_line":"    instance_cell.pin_vcpus(*pinning)"},{"line_number":1025,"context_line":"    instance_cell.cpu_topology \u003d topology"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_786e8696","line":1022,"range":{"start_line":1022,"start_character":18,"end_line":1022,"end_character":31},"updated":"2020-10-08 14:02:50.000000000","message":"... whereas instance_cell is an InstanceNUMACell which re-implements __len__ as returning the total number of CPUs.","commit_id":"24abe0f57cd4d38dfdca0fbe15ebcb9d4ec510a0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3db13f633faa294bb40cd9a6ab4ac09c864921a6","unresolved":true,"context_lines":[{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"    # TODO(stephenfin): we\u0027re using this attribute essentially as a container"},{"line_number":1017,"context_line":"    # for the thread count used in \u0027_get_desirable_cpu_topologies\u0027; we should"},{"line_number":1018,"context_line":"    # drop it and either use a non-persistent attrbiute or add a new"},{"line_number":1019,"context_line":"    # \u0027min_threads\u0027 field"},{"line_number":1020,"context_line":"    topology \u003d objects.VirtCPUTopology("},{"line_number":1021,"context_line":"        sockets\u003d1,"}],"source_content_type":"text/x-python","patch_set":4,"id":"06b52213_6566de31","line":1018,"range":{"start_line":1018,"start_character":46,"end_line":1018,"end_character":55},"updated":"2021-02-04 13:38:43.000000000","message":"nit: attribute","commit_id":"583e85622bf9d7e2fdf2a8cf5157bbd1ec5f8b2b"}]}
