)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2432b90106f85b1bee45c5b38a8e9f4035b8eea6","unresolved":true,"context_lines":[{"line_number":758,"context_line":"        socket values. get_capabilities()\u0027s implementation will reuse these"},{"line_number":759,"context_line":"        intial socket value, and avoid clobbering them with 0 for offline CPUs."},{"line_number":760,"context_line":"        \"\"\""},{"line_number":761,"context_line":"        all_cpus \u003d self._host.get_available_cpus()"},{"line_number":762,"context_line":"        self.cpu_api.power_up(all_cpus)"},{"line_number":763,"context_line":"        self._host.get_capabilities()"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"    def init_host(self, host):"}],"source_content_type":"text/x-python","patch_set":3,"id":"875ac90d_7f569dc3","line":762,"range":{"start_line":761,"start_character":8,"end_line":762,"end_character":39},"updated":"2024-08-13 18:14:49.000000000","message":"this is still worng.\nyou should not be enable cores outside fo the cpu dedicated set\n\nso replace this with \n\n\n```suggestion\n        managed_cpus \u003d hardware.get_cpu_dedicated_set()\n        self.cpu_api.power_up(managed_cpus)\n```","commit_id":"cbdaf47968a4aa242b6333e127bab181c24b9556"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"afb93b3786ee29dba31b5b264667e17fd47c9a70","unresolved":true,"context_lines":[{"line_number":758,"context_line":"        socket values. get_capabilities()\u0027s implementation will reuse these"},{"line_number":759,"context_line":"        intial socket value, and avoid clobbering them with 0 for offline CPUs."},{"line_number":760,"context_line":"        \"\"\""},{"line_number":761,"context_line":"        all_cpus \u003d self._host.get_available_cpus()"},{"line_number":762,"context_line":"        self.cpu_api.power_up(all_cpus)"},{"line_number":763,"context_line":"        self._host.get_capabilities()"},{"line_number":764,"context_line":""},{"line_number":765,"context_line":"    def init_host(self, host):"}],"source_content_type":"text/x-python","patch_set":3,"id":"6108d99e_d0c6b099","line":762,"range":{"start_line":761,"start_character":8,"end_line":762,"end_character":39},"in_reply_to":"875ac90d_7f569dc3","updated":"2024-08-15 07:41:49.000000000","message":"good catch. I agree that nova should only manage cpus from the dedicated set.","commit_id":"cbdaf47968a4aa242b6333e127bab181c24b9556"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2432b90106f85b1bee45c5b38a8e9f4035b8eea6","unresolved":true,"context_lines":[{"line_number":769,"context_line":""},{"line_number":770,"context_line":"        self._update_host_specific_capabilities()"},{"line_number":771,"context_line":""},{"line_number":772,"context_line":"        self._check_cpu_set_configuration()"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"        self._do_quality_warnings()"},{"line_number":775,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"20b283b8_0a05e627","line":772,"updated":"2024-08-13 18:14:49.000000000","message":"we should move this check about _init_host_toplogy i think.\n\nwe need to ensure the cpu_*_set dont over lap ectra before enabling cores.","commit_id":"cbdaf47968a4aa242b6333e127bab181c24b9556"}],"nova/virt/libvirt/host.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"93d35af9e1b792ed49077ba0fc0da3bfa22578f6","unresolved":true,"context_lines":[{"line_number":779,"context_line":"        # big and it can cause subunit parsing to fail (see bug 1813147)."},{"line_number":780,"context_line":"        LOG.info(\"Libvirt host capabilities %s\", xmlstr)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"    def get_capabilities(self):"},{"line_number":783,"context_line":"        \"\"\"Returns the host capabilities information"},{"line_number":784,"context_line":""},{"line_number":785,"context_line":"        Returns an instance of config.LibvirtConfigCaps representing"}],"source_content_type":"text/x-python","patch_set":1,"id":"496d7e3b_6ef8d8a7","line":782,"updated":"2024-08-13 16:04:04.000000000","message":"If this is called before the cpu offlineing logic then this caching could work.\n\nStill you need at least on more change: If the strategy is cpu_state, then we need the following sequence at nova-compute startup:\n* online all pcpus\n* call get_capabilities\n* offline unused pcpus\n\nThis is needed as during a nova-compute restart we cannot assume that pcpus will be onlined automatically. A hypervisor restart probably online them, but a simple nova-compute restart will not online them.","commit_id":"6c68757753b6fd4622f9e5948bd3fc16014de361"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bab8636f5ede8158e6cce109542e86f8da1f9e6f","unresolved":true,"context_lines":[{"line_number":820,"context_line":"                for cpu in cell.cpus:"},{"line_number":821,"context_line":"                    cpu.socket_id \u003d _find_cpu_socket(self._caps.host, cpu.id)"},{"line_number":822,"context_line":""},{"line_number":823,"context_line":"            self._caps \u003d caps_from_libvirt"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"        # NOTE(mriedem): Don\u0027t attempt to get baseline CPU features"},{"line_number":826,"context_line":"        # if libvirt can\u0027t determine the host cpu model."}],"source_content_type":"text/x-python","patch_set":1,"id":"5894c284_bf465d07","line":823,"updated":"2024-08-13 16:05:52.000000000","message":"this wont work because we cant assume that\n\nif the nova compute agent is restart seperatlly form a host reboot we can have already turned off cores.\n\nso we need to trun on the cores, gather the info and turn them off. then we shoud lalso decorate this with funciton with functools.lru_cache  so that we only ever call this once and return the correct data.","commit_id":"6c68757753b6fd4622f9e5948bd3fc16014de361"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ab15d52809b5acb49b45f5dde93ce9ad478dd889","unresolved":true,"context_lines":[{"line_number":794,"context_line":""},{"line_number":795,"context_line":"        xmlstr \u003d self.get_connection().getCapabilities()"},{"line_number":796,"context_line":"        self._log_host_capabilities(xmlstr)"},{"line_number":797,"context_line":"        caps_from_libvirt \u003d vconfig.LibvirtConfigCaps()"},{"line_number":798,"context_line":"        caps_from_libvirt.parse_str(xmlstr)"},{"line_number":799,"context_line":"        if self._caps is None:"},{"line_number":800,"context_line":"            # NOTE(artom) If this is our first time populating our self._caps"},{"line_number":801,"context_line":"            # object, we assume that we\u0027re being called before any CPUs have"},{"line_number":802,"context_line":"            # been offlined by init_host() in the driver, and we take the"},{"line_number":803,"context_line":"            # information libvirt gives us at face value."},{"line_number":804,"context_line":"            self._caps \u003d caps_from_libvirt"},{"line_number":805,"context_line":"        else:"},{"line_number":806,"context_line":"            # NOTE(artom) If we already have a self._caps object, we need to"},{"line_number":807,"context_line":"            # work around libvirt always reporting offline cores as being on"},{"line_number":808,"context_line":"            # socket 0 by preserving the existing socket value for those cores."},{"line_number":809,"context_line":"            # To make it simpler, we just preserve socket values for all cores,"},{"line_number":810,"context_line":"            # as it\u0027s pretty unlikely that they\u0027ll hop between sockets with the"},{"line_number":811,"context_line":"            # system running."},{"line_number":812,"context_line":""},{"line_number":813,"context_line":"            def _find_cpu_socket(host_caps, cpu_id):"},{"line_number":814,"context_line":"                for cell in host_caps.topology.cells:"},{"line_number":815,"context_line":"                    for cpu in cell.cpus:"},{"line_number":816,"context_line":"                        if cpu.id \u003d\u003d cpu_id:"},{"line_number":817,"context_line":"                            return cpu.socket_id"},{"line_number":818,"context_line":""},{"line_number":819,"context_line":"            for cell in caps_from_libvirt.host.topology.cells:"},{"line_number":820,"context_line":"                for cpu in cell.cpus:"},{"line_number":821,"context_line":"                    cpu.socket_id \u003d _find_cpu_socket(self._caps.host, cpu.id)"},{"line_number":822,"context_line":""},{"line_number":823,"context_line":"            self._caps \u003d caps_from_libvirt"},{"line_number":824,"context_line":""},{"line_number":825,"context_line":"        # NOTE(mriedem): Don\u0027t attempt to get baseline CPU features"},{"line_number":826,"context_line":"        # if libvirt can\u0027t determine the host cpu model."},{"line_number":827,"context_line":"        if ("}],"source_content_type":"text/x-python","patch_set":3,"id":"1b4a14bc_655e05d9","line":824,"range":{"start_line":797,"start_character":6,"end_line":824,"end_character":1},"updated":"2024-08-13 18:16:32.000000000","message":"we dont need any of this.\n\nthe first time will set \n\n self._caps\n and then we wont get here becasue of the if on 792 again.","commit_id":"cbdaf47968a4aa242b6333e127bab181c24b9556"}]}
