)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4d1944e1c9f30889bbd78d5a967d87c6e0a60e2f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Unlike x86, AArch64 doesn\u0027t have a default model."},{"line_number":10,"context_line":"Usually when using libvirt driver, set cpu mode to custom, nova"},{"line_number":11,"context_line":"will call libvirt to return the default models. But for aarch64,"},{"line_number":12,"context_line":"the support CPU models varies according to machine type."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"AArch64 use \"virt\" as the default machine type. In Qemu it support"},{"line_number":15,"context_line":"several models, and we should choose \"max\" as the by default one."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"1fa4df85_c8b3abe8","line":12,"range":{"start_line":11,"start_character":48,"end_line":12,"end_character":56},"updated":"2020-03-19 15:16:22.000000000","message":"Looks like this requires the \u0027getModels\u0027 function, which is only implemented by the ppc64 [1] and x86 [2] architectures support this. These functions are called by \u0027virCPUGetModels\u0027, which is called by \u0027qemuConnectGetCPUModelNames\u0027, which is the implementation of the QEMU backend\u0027s \u0027connectGetCPUModelNames\u0027 function. This is important later\n\n[1] https://github.com/libvirt/libvirt/blob/v6.1.0/src/cpu/cpu_ppc64.c#L821\n[2] https://github.com/libvirt/libvirt/blob/v6.1.0/src/cpu/cpu_x86.c#L3433","commit_id":"726b2e40f19d4727a661919c003eef182ef522ad"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f8c9854257c55be7c61f3bb7fc37766dac799220","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Kevin Zhao \u003ckevin.zhao@linaro.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-03-24 22:46:09 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add default cpu model for aarch64"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Libvirt \u0027virCPUGetModels\u0027 function, which is only implemented by the"},{"line_number":10,"context_line":"ppc64 [1] and x86 [2] architectures support this,  which will call"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"df33271e_a2b837c8","line":7,"range":{"start_line":7,"start_character":26,"end_line":7,"end_character":33},"updated":"2020-03-25 18:04:47.000000000","message":"Nit: s/aarch64/AArch64/.  And: s/cpu/CPU/\n\n(Here, and elsewhere.)","commit_id":"4ed21d205632c1cc7d1c6c11f3b968c8dbabb7fd"}],"nova/virt/libvirt/blockinfo.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4a6d23366391b3e68c297661533d5e931762b880","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                        obj_fields.Architecture.S390X,"},{"line_number":280,"context_line":"                        obj_fields.Architecture.AARCH64):"},{"line_number":281,"context_line":"                    return \"scsi\""},{"line_number":282,"context_line":"                else:"},{"line_number":283,"context_line":"                    return \"ide\""},{"line_number":284,"context_line":"        elif device_type \u003d\u003d \"disk\":"},{"line_number":285,"context_line":"            return \"virtio\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_ffdb114c","line":282,"updated":"2020-03-13 16:00:02.000000000","message":"Why is all of this moved? It would help to have a code comment explaining why it needs to be in a specific different place.","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"69afe2592f7e7743a0ae6498a962dbe267b1c245","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                        obj_fields.Architecture.S390X,"},{"line_number":280,"context_line":"                        obj_fields.Architecture.AARCH64):"},{"line_number":281,"context_line":"                    return \"scsi\""},{"line_number":282,"context_line":"                else:"},{"line_number":283,"context_line":"                    return \"ide\""},{"line_number":284,"context_line":"        elif device_type \u003d\u003d \"disk\":"},{"line_number":285,"context_line":"            return \"virtio\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_2ed5efb7","line":282,"in_reply_to":"1fa4df85_ffdb114c","updated":"2020-03-16 03:38:59.000000000","message":"Sorry this part is for fix the UT on arm64 platform.\nWill submit another patch to cover this and remove it in the this patchset.","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5fa1a0efa32434e04a083f0b17af3d0fcc5d5fda","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                        obj_fields.Architecture.S390X,"},{"line_number":280,"context_line":"                        obj_fields.Architecture.AARCH64):"},{"line_number":281,"context_line":"                    return \"scsi\""},{"line_number":282,"context_line":"                else:"},{"line_number":283,"context_line":"                    return \"ide\""},{"line_number":284,"context_line":"        elif device_type \u003d\u003d \"disk\":"},{"line_number":285,"context_line":"            return \"virtio\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_a25fc20c","line":282,"in_reply_to":"1fa4df85_ffdb114c","updated":"2020-03-26 12:32:47.000000000","message":"this will change behavior i think so im not sure that htis is correct to move.\n\npower ppc for example will chagne form scsi to sata if they were using q35","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4a6d23366391b3e68c297661533d5e931762b880","unresolved":false,"context_lines":[{"line_number":741,"context_line":"            cpu.model \u003d self._get_cpu_model_mapping(model)"},{"line_number":742,"context_line":"            if not cpu.model:"},{"line_number":743,"context_line":"                cpu_info \u003d self._get_cpu_info()"},{"line_number":744,"context_line":"                if cpu_info[\u0027arch\u0027] !\u003d fields.arch.AARCH64:"},{"line_number":745,"context_line":"                    msg \u003d (_(\"Configured CPU model: %(model)s is not correct, \""},{"line_number":746,"context_line":"                             \"or your host CPU arch does not support this \""},{"line_number":747,"context_line":"                             \"model. Please correct your config and try \""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_5c1ef370","line":744,"updated":"2020-03-13 16:00:02.000000000","message":"Why is aarch64 excluded from this logic? I think it would be good to add a code comment explaining why.","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"69afe2592f7e7743a0ae6498a962dbe267b1c245","unresolved":false,"context_lines":[{"line_number":741,"context_line":"            cpu.model \u003d self._get_cpu_model_mapping(model)"},{"line_number":742,"context_line":"            if not cpu.model:"},{"line_number":743,"context_line":"                cpu_info \u003d self._get_cpu_info()"},{"line_number":744,"context_line":"                if cpu_info[\u0027arch\u0027] !\u003d fields.arch.AARCH64:"},{"line_number":745,"context_line":"                    msg \u003d (_(\"Configured CPU model: %(model)s is not correct, \""},{"line_number":746,"context_line":"                             \"or your host CPU arch does not support this \""},{"line_number":747,"context_line":"                             \"model. Please correct your config and try \""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_cee3fba3","line":744,"in_reply_to":"1fa4df85_5c1ef370","updated":"2020-03-16 03:38:59.000000000","message":"Done","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"0aa981af1912c1873ba8d0c7fc0d1d77f1984ef5","unresolved":false,"context_lines":[{"line_number":4186,"context_line":"                    mode \u003d \"host-model\""},{"line_number":4187,"context_line":"            if mode \u003d\u003d \"none\":"},{"line_number":4188,"context_line":"                return vconfig.LibvirtConfigGuestCPU()"},{"line_number":4189,"context_line":"            # Aarch64 platform the return of get_cpu"},{"line_number":4190,"context_line":"            if mode \u003d\u003d \"custom\" and CONF.libvirt.virt_type \u003d\u003d \"qemu\":"},{"line_number":4191,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4192,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_9fc53d5e","line":4189,"range":{"start_line":4189,"start_character":14,"end_line":4189,"end_character":52},"updated":"2020-03-13 16:04:08.000000000","message":"Although the code is clear enough, please expand the comment a to note that AArch64 will be using the default model.\n\nAlso, please add a note that: Unlike x86, AArch64 doesn\u0027t have a default model (sensibly so[*], as the CPU model depends on the machine type.\n\nE.g. for AArc64, we won\u0027t get the available CPU models if you don\u0027t also specify the machine type:\n\n    $\u003e qemu-system-aarch64 -cpu help\n    qemu-system-aarch64: No machine specified, and there is no default\n    Use -machine help to list supported machines\n\nNow, with the machine type \u0027virt\u0027 (recommended for AArch64) specified, \n_now_ you can get help for the available CPU models:\n\n    $\u003e qemu-system-aarch64 -machine virt -cpu help | head -15\n    Available CPUs:\n      arm1026\n      arm1136\n      arm1136-r2\n      arm1176\n      arm11mpcore\n      arm926\n      arm946\n      cortex-a15\n      cortex-a53\n      cortex-a57\n      cortex-a7\n      cortex-a72\n      cortex-a8\n      cortex-a9\n\n(Also refer to: https://opendev.org/openstack/nova/commit/e155baefb0)\n\n\n[*] See the problems caused by \u0027qemu64\u0027 / \u0027qemu32\u0027 on x86 -- they\u0027re vulnerable, miss critical flags for performance / TLS, etc.","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4a6d23366391b3e68c297661533d5e931762b880","unresolved":false,"context_lines":[{"line_number":4186,"context_line":"                    mode \u003d \"host-model\""},{"line_number":4187,"context_line":"            if mode \u003d\u003d \"none\":"},{"line_number":4188,"context_line":"                return vconfig.LibvirtConfigGuestCPU()"},{"line_number":4189,"context_line":"            # Aarch64 platform the return of get_cpu"},{"line_number":4190,"context_line":"            if mode \u003d\u003d \"custom\" and CONF.libvirt.virt_type \u003d\u003d \"qemu\":"},{"line_number":4191,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4192,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_9f50ddd6","line":4189,"updated":"2020-03-13 16:00:02.000000000","message":"So this code is replacing the \u0027models\u0027 variable from L4162 that got the cpu models using the _get_cpu_model_mapping method. Why? It would help to add a code comment here explaining why it needs to be done differently for aarch64 and explain a summary of what this is doing. If the caps.host.cpu.arch is aarch64, it will use all of the CONF.libvirt.cpu_models, else it will get_cpu_model_from_arch from caps.host.cpu.arch and use only that? I don\u0027t understand what\u0027s happening here.","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"69afe2592f7e7743a0ae6498a962dbe267b1c245","unresolved":false,"context_lines":[{"line_number":4186,"context_line":"                    mode \u003d \"host-model\""},{"line_number":4187,"context_line":"            if mode \u003d\u003d \"none\":"},{"line_number":4188,"context_line":"                return vconfig.LibvirtConfigGuestCPU()"},{"line_number":4189,"context_line":"            # Aarch64 platform the return of get_cpu"},{"line_number":4190,"context_line":"            if mode \u003d\u003d \"custom\" and CONF.libvirt.virt_type \u003d\u003d \"qemu\":"},{"line_number":4191,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4192,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_eedef7d8","line":4189,"range":{"start_line":4189,"start_character":14,"end_line":4189,"end_character":52},"in_reply_to":"1fa4df85_9fc53d5e","updated":"2020-03-16 03:38:59.000000000","message":"Thanks for kindly comments.\nI will already add the note here and write a note in releasenote","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"0aa981af1912c1873ba8d0c7fc0d1d77f1984ef5","unresolved":false,"context_lines":[{"line_number":4190,"context_line":"            if mode \u003d\u003d \"custom\" and CONF.libvirt.virt_type \u003d\u003d \"qemu\":"},{"line_number":4191,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4192,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4193,"context_line":"                if not models:"},{"line_number":4194,"context_line":"                    models \u003d \\"},{"line_number":4195,"context_line":"                        [libvirt_utils.get_cpu_model_from_arch("},{"line_number":4196,"context_line":"                            caps.host.cpu.arch)]"},{"line_number":4197,"context_line":""},{"line_number":4198,"context_line":"        else:"},{"line_number":4199,"context_line":"            if mode is None or mode \u003d\u003d \"none\":"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_1f886d1d","line":4196,"range":{"start_line":4193,"start_character":0,"end_line":4196,"end_character":48},"updated":"2020-03-13 16:04:08.000000000","message":"Okay, if no explicit CPU model for AArch64 is specified, then you\u0027re picking the \u0027cortex-a57\u0027; I\u0027d just like to understand the choice.","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"69afe2592f7e7743a0ae6498a962dbe267b1c245","unresolved":false,"context_lines":[{"line_number":4190,"context_line":"            if mode \u003d\u003d \"custom\" and CONF.libvirt.virt_type \u003d\u003d \"qemu\":"},{"line_number":4191,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4192,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4193,"context_line":"                if not models:"},{"line_number":4194,"context_line":"                    models \u003d \\"},{"line_number":4195,"context_line":"                        [libvirt_utils.get_cpu_model_from_arch("},{"line_number":4196,"context_line":"                            caps.host.cpu.arch)]"},{"line_number":4197,"context_line":""},{"line_number":4198,"context_line":"        else:"},{"line_number":4199,"context_line":"            if mode is None or mode \u003d\u003d \"none\":"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_8eef4386","line":4196,"range":{"start_line":4193,"start_character":0,"end_line":4196,"end_character":48},"in_reply_to":"1fa4df85_1f886d1d","updated":"2020-03-16 03:38:59.000000000","message":"Change to max according to the valuable advice:-)","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4a6d23366391b3e68c297661533d5e931762b880","unresolved":false,"context_lines":[{"line_number":10433,"context_line":"                if not models:"},{"line_number":10434,"context_line":"                    models.append(self,"},{"line_number":10435,"context_line":"                                  libvirt_utils.get_cpu_model_from_arch("},{"line_number":10436,"context_line":"                                      caps.host.cpu.arch))"},{"line_number":10437,"context_line":"            for model in models:"},{"line_number":10438,"context_line":"                caps.host.cpu.model \u003d model"},{"line_number":10439,"context_line":"                caps.host.cpu.features \u003d set()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_7f6c019c","line":10436,"updated":"2020-03-13 16:00:02.000000000","message":"This code is doing a similar thing again as on L4191, could we have code comment explaining what\u0027s happening? And why is one using fields.Architecture.AARCH64 and this one is using fields.arch.AARCH64? Should they not be the same? And if they are the same, can they go in a helper method to call at both sites?","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"69afe2592f7e7743a0ae6498a962dbe267b1c245","unresolved":false,"context_lines":[{"line_number":10433,"context_line":"                if not models:"},{"line_number":10434,"context_line":"                    models.append(self,"},{"line_number":10435,"context_line":"                                  libvirt_utils.get_cpu_model_from_arch("},{"line_number":10436,"context_line":"                                      caps.host.cpu.arch))"},{"line_number":10437,"context_line":"            for model in models:"},{"line_number":10438,"context_line":"                caps.host.cpu.model \u003d model"},{"line_number":10439,"context_line":"                caps.host.cpu.features \u003d set()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_4ee94b7e","line":10436,"in_reply_to":"1fa4df85_7f6c019c","updated":"2020-03-16 03:38:59.000000000","message":"make a mistake here.\nAlready use fields.Architecture.AARCH64","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4d1944e1c9f30889bbd78d5a967d87c6e0a60e2f","unresolved":false,"context_lines":[{"line_number":744,"context_line":"                # NOTE(kevinz): In AARCH64 the _get_cpu_model_mapping will not"},{"line_number":745,"context_line":"                # return anything, it is because that in Qemu user should"},{"line_number":746,"context_line":"                # specify the machine type in order to get the model list."},{"line_number":747,"context_line":"                if cpu_info[\u0027arch\u0027] !\u003d fields.Architecture.AARCH64:"},{"line_number":748,"context_line":"                    msg \u003d (_(\"Configured CPU model: %(model)s is not correct, \""},{"line_number":749,"context_line":"                             \"or your host CPU arch does not support this \""},{"line_number":750,"context_line":"                             \"model. Please correct your config and try \""}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_0868e31a","line":747,"range":{"start_line":747,"start_character":16,"end_line":747,"end_character":67},"updated":"2020-03-19 15:16:22.000000000","message":"Rather than special casing this, could we change the behavior of the \u0027_get_cpu_model_mapping\u0027 to check for the underlying host type and raise the below exception only if we\u0027re on x86 or PPC64 and can\u0027t find a match? I don\u0027t see any reason to even check if we\u0027re not on one of these architectures","commit_id":"726b2e40f19d4727a661919c003eef182ef522ad"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"64f5858dbdbc80fce90a6e4636d572852694ff8f","unresolved":false,"context_lines":[{"line_number":744,"context_line":"                # NOTE(kevinz): In AARCH64 the _get_cpu_model_mapping will not"},{"line_number":745,"context_line":"                # return anything, it is because that in Qemu user should"},{"line_number":746,"context_line":"                # specify the machine type in order to get the model list."},{"line_number":747,"context_line":"                if cpu_info[\u0027arch\u0027] !\u003d fields.Architecture.AARCH64:"},{"line_number":748,"context_line":"                    msg \u003d (_(\"Configured CPU model: %(model)s is not correct, \""},{"line_number":749,"context_line":"                             \"or your host CPU arch does not support this \""},{"line_number":750,"context_line":"                             \"model. Please correct your config and try \""}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_cbaf1b28","line":747,"range":{"start_line":747,"start_character":16,"end_line":747,"end_character":67},"in_reply_to":"1fa4df85_0868e31a","updated":"2020-03-20 11:13:24.000000000","message":"Done","commit_id":"726b2e40f19d4727a661919c003eef182ef522ad"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4d1944e1c9f30889bbd78d5a967d87c6e0a60e2f","unresolved":false,"context_lines":[{"line_number":4212,"context_line":""},{"line_number":4213,"context_line":"        cpu \u003d vconfig.LibvirtConfigGuestCPU()"},{"line_number":4214,"context_line":"        cpu.mode \u003d mode"},{"line_number":4215,"context_line":"        cpu.model \u003d models[0] if models else None"},{"line_number":4216,"context_line":""},{"line_number":4217,"context_line":"        # compare flavor trait and cpu models, select the first mathched model"},{"line_number":4218,"context_line":"        if flavor and mode \u003d\u003d \"custom\":"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_6825d7c1","line":4215,"range":{"start_line":4215,"start_character":8,"end_line":4215,"end_character":49},"updated":"2020-03-19 15:16:22.000000000","message":"This suggests we can leave cpu.model unset. What happens on AArch64 if that\u0027s the case?","commit_id":"726b2e40f19d4727a661919c003eef182ef522ad"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"64f5858dbdbc80fce90a6e4636d572852694ff8f","unresolved":false,"context_lines":[{"line_number":4212,"context_line":""},{"line_number":4213,"context_line":"        cpu \u003d vconfig.LibvirtConfigGuestCPU()"},{"line_number":4214,"context_line":"        cpu.mode \u003d mode"},{"line_number":4215,"context_line":"        cpu.model \u003d models[0] if models else None"},{"line_number":4216,"context_line":""},{"line_number":4217,"context_line":"        # compare flavor trait and cpu models, select the first mathched model"},{"line_number":4218,"context_line":"        if flavor and mode \u003d\u003d \"custom\":"}],"source_content_type":"text/x-python","patch_set":10,"id":"1fa4df85_abb2df92","line":4215,"range":{"start_line":4215,"start_character":8,"end_line":4215,"end_character":49},"in_reply_to":"1fa4df85_6825d7c1","updated":"2020-03-20 11:13:24.000000000","message":"In AArch64, the instance can be created, but can not be launched in Qemu.\nMeans we get console log from an instance return nothing","commit_id":"726b2e40f19d4727a661919c003eef182ef522ad"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a02ce54e2a656f5da1acc13be8d404175c539248","unresolved":false,"context_lines":[{"line_number":4152,"context_line":"        \"\"\""},{"line_number":4153,"context_line":"        cpu_info \u003d self._get_cpu_info()"},{"line_number":4154,"context_line":"        model_get \u003d None"},{"line_number":4155,"context_line":"        if cpu_info[\u0027arch\u0027] in (fields.Architecture.I686,"},{"line_number":4156,"context_line":"                                fields.Architecture.X86_64,"},{"line_number":4157,"context_line":"                                fields.Architecture.PPC64,"},{"line_number":4158,"context_line":"                                fields.Architecture.PPC64LE,"},{"line_number":4159,"context_line":"                                fields.Architecture.PPC):"},{"line_number":4160,"context_line":"            if not self.cpu_models_mapping:"},{"line_number":4161,"context_line":"                cpu_models \u003d self._host.get_cpu_model_names()"},{"line_number":4162,"context_line":"                for cpu_model in cpu_models:"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_81d0dacb","line":4159,"range":{"start_line":4155,"start_character":0,"end_line":4159,"end_character":57},"updated":"2020-03-20 15:51:57.000000000","message":"nit: could we use \u0027not in\u0027 and an early return to avoid needing to indent things below needlessly","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a02ce54e2a656f5da1acc13be8d404175c539248","unresolved":false,"context_lines":[{"line_number":4161,"context_line":"                cpu_models \u003d self._host.get_cpu_model_names()"},{"line_number":4162,"context_line":"                for cpu_model in cpu_models:"},{"line_number":4163,"context_line":"                    self.cpu_models_mapping[cpu_model.lower()] \u003d cpu_model"},{"line_number":4164,"context_line":"            model_get \u003d self.cpu_models_mapping.get(model.lower(), None)"},{"line_number":4165,"context_line":"            if not model_get:"},{"line_number":4166,"context_line":"                msg \u003d (_(\"Configured CPU model: %(model)s is not correct, \""},{"line_number":4167,"context_line":"                         \"or your host CPU arch does not support this \""},{"line_number":4168,"context_line":"                         \"model. Please correct your config and try \""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_01768a07","line":4165,"range":{"start_line":4164,"start_character":0,"end_line":4165,"end_character":29},"updated":"2020-03-20 15:51:57.000000000","message":"nit: how about\n\n  if model.lower() not in self.cpu_models_mapping:\n      msg \u003d (_(...\n      raise exception...\n\n  return self.cpu_models_mapping.get(model.lower())","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a02ce54e2a656f5da1acc13be8d404175c539248","unresolved":false,"context_lines":[{"line_number":4201,"context_line":"                return vconfig.LibvirtConfigGuestCPU()"},{"line_number":4202,"context_line":"            # Aarch64 platform the return of _get_cpu_model_mapping will not"},{"line_number":4203,"context_line":"            # return the default CPU model."},{"line_number":4204,"context_line":"            if mode \u003d\u003d \"custom\" and CONF.libvirt.virt_type \u003d\u003d \"qemu\":"},{"line_number":4205,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4206,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4207,"context_line":"                    if not models:"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_a4cb6c70","line":4204,"range":{"start_line":4204,"start_character":36,"end_line":4204,"end_character":69},"updated":"2020-03-20 15:51:57.000000000","message":"The release notes suggest this should also be configured for the KVM backend [1]. Am I misunderstanding something?\n\n[1] https://review.opendev.org/#/c/709494/13/releasenotes/notes/bug-1864588-737c29560effd16e.yaml@13","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"86422ee314aef2e527c3197a81a520f7a89cb17d","unresolved":false,"context_lines":[{"line_number":4201,"context_line":"                return vconfig.LibvirtConfigGuestCPU()"},{"line_number":4202,"context_line":"            # Aarch64 platform the return of _get_cpu_model_mapping will not"},{"line_number":4203,"context_line":"            # return the default CPU model."},{"line_number":4204,"context_line":"            if mode \u003d\u003d \"custom\" and CONF.libvirt.virt_type \u003d\u003d \"qemu\":"},{"line_number":4205,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4206,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4207,"context_line":"                    if not models:"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_d8276364","line":4204,"range":{"start_line":4204,"start_character":36,"end_line":4204,"end_character":69},"in_reply_to":"df33271e_a4cb6c70","updated":"2020-03-23 08:32:06.000000000","message":"Yes right, I\u0027ve changed, thx","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a02ce54e2a656f5da1acc13be8d404175c539248","unresolved":false,"context_lines":[{"line_number":4205,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4206,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4207,"context_line":"                    if not models:"},{"line_number":4208,"context_line":"                        models \u003d \\"},{"line_number":4209,"context_line":"                            [libvirt_utils.get_cpu_model_from_arch("},{"line_number":4210,"context_line":"                                caps.host.cpu.arch)]"},{"line_number":4211,"context_line":""},{"line_number":4212,"context_line":"        else:"},{"line_number":4213,"context_line":"            if mode is None or mode \u003d\u003d \"none\":"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_c4a15098","line":4210,"range":{"start_line":4208,"start_character":0,"end_line":4210,"end_character":52},"updated":"2020-03-20 15:51:57.000000000","message":"Personally, I\u0027d rather we explicitly set model to \u0027max\u0027 in this function rather than calling this function. As you\u0027ve noted, it\u0027s not possible to choose a model unless a mode is provided and this function was previously only used if mode wasn\u0027t provided. Any reason we can\u0027t do that?","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"add0c4ed5a8201829537fa2f5d19cb3666ecca29","unresolved":false,"context_lines":[{"line_number":4205,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4206,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4207,"context_line":"                    if not models:"},{"line_number":4208,"context_line":"                        models \u003d \\"},{"line_number":4209,"context_line":"                            [libvirt_utils.get_cpu_model_from_arch("},{"line_number":4210,"context_line":"                                caps.host.cpu.arch)]"},{"line_number":4211,"context_line":""},{"line_number":4212,"context_line":"        else:"},{"line_number":4213,"context_line":"            if mode is None or mode \u003d\u003d \"none\":"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_3e763708","line":4210,"range":{"start_line":4208,"start_character":0,"end_line":4210,"end_character":52},"in_reply_to":"df33271e_18cf0b80","updated":"2020-03-23 10:59:25.000000000","message":"I think you missed my point. Instead of calling \u0027get_cpu_model_from_arch\u0027, can we do this:\n\n  if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:\n      if not models:\n          models \u003d [\u0027max\u0027]\n\nWhat I was trying to say, is that I only see one more user of \u0027get_cpu_model_from_arch\u0027 - line 10422 below [1] - and that won\u0027t ever get triggered for Aarch64 since CPU mode \u003d none is not supported. Could we just be explicit here?\n\n[1] https://review.opendev.org/#/c/709494/13/nova/virt/libvirt/driver.py@10422","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"db2e20ad1a119b9c689711f345afdad2f2b0d127","unresolved":false,"context_lines":[{"line_number":4205,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4206,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4207,"context_line":"                    if not models:"},{"line_number":4208,"context_line":"                        models \u003d \\"},{"line_number":4209,"context_line":"                            [libvirt_utils.get_cpu_model_from_arch("},{"line_number":4210,"context_line":"                                caps.host.cpu.arch)]"},{"line_number":4211,"context_line":""},{"line_number":4212,"context_line":"        else:"},{"line_number":4213,"context_line":"            if mode is None or mode \u003d\u003d \"none\":"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_89362bb4","line":4210,"range":{"start_line":4208,"start_character":0,"end_line":4210,"end_character":52},"in_reply_to":"df33271e_3e763708","updated":"2020-03-23 12:30:03.000000000","message":"Yes, I understand. Thanks!","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"86422ee314aef2e527c3197a81a520f7a89cb17d","unresolved":false,"context_lines":[{"line_number":4205,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4206,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4207,"context_line":"                    if not models:"},{"line_number":4208,"context_line":"                        models \u003d \\"},{"line_number":4209,"context_line":"                            [libvirt_utils.get_cpu_model_from_arch("},{"line_number":4210,"context_line":"                                caps.host.cpu.arch)]"},{"line_number":4211,"context_line":""},{"line_number":4212,"context_line":"        else:"},{"line_number":4213,"context_line":"            if mode is None or mode \u003d\u003d \"none\":"}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_18cf0b80","line":4210,"range":{"start_line":4208,"start_character":0,"end_line":4210,"end_character":52},"in_reply_to":"df33271e_c4a15098","updated":"2020-03-23 08:32:06.000000000","message":"Here the behavior in x86 and aarch64 is different.\nIn Aarch64, we do not support CPU mode \u003d none. Instead, aarch64 use cpu models only in mode \"custom\". So I think we\u0027d better to keep this function here.","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"add0c4ed5a8201829537fa2f5d19cb3666ecca29","unresolved":false,"context_lines":[{"line_number":4156,"context_line":"                                    fields.Architecture.PPC64,"},{"line_number":4157,"context_line":"                                    fields.Architecture.PPC64LE,"},{"line_number":4158,"context_line":"                                    fields.Architecture.PPC):"},{"line_number":4159,"context_line":"            return None"},{"line_number":4160,"context_line":""},{"line_number":4161,"context_line":"        if not self.cpu_models_mapping:"},{"line_number":4162,"context_line":"            cpu_models \u003d self._host.get_cpu_model_names()"}],"source_content_type":"text/x-python","patch_set":15,"id":"df33271e_3e2117fd","line":4159,"updated":"2020-03-23 10:59:25.000000000","message":"Do we want to return None, or do we just return what the user provided us? I ask because you\u0027re effectively doing the latter on line 10433 below [1].\n\nIf you update this, don\u0027t forget to update the docstring\n\n[1] https://review.opendev.org/#/c/709494/15/nova/virt/libvirt/driver.py@10433","commit_id":"cce094eded37995ca7bd5757a785e97c9c7c8d44"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"db2e20ad1a119b9c689711f345afdad2f2b0d127","unresolved":false,"context_lines":[{"line_number":4156,"context_line":"                                    fields.Architecture.PPC64,"},{"line_number":4157,"context_line":"                                    fields.Architecture.PPC64LE,"},{"line_number":4158,"context_line":"                                    fields.Architecture.PPC):"},{"line_number":4159,"context_line":"            return None"},{"line_number":4160,"context_line":""},{"line_number":4161,"context_line":"        if not self.cpu_models_mapping:"},{"line_number":4162,"context_line":"            cpu_models \u003d self._host.get_cpu_model_names()"}],"source_content_type":"text/x-python","patch_set":15,"id":"df33271e_c93af3e5","line":4159,"in_reply_to":"df33271e_3e2117fd","updated":"2020-03-23 12:30:03.000000000","message":"Done","commit_id":"cce094eded37995ca7bd5757a785e97c9c7c8d44"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"add0c4ed5a8201829537fa2f5d19cb3666ecca29","unresolved":false,"context_lines":[{"line_number":10430,"context_line":""},{"line_number":10431,"context_line":"            # Aarch64 platform doesn\u0027t return the default CPU models"},{"line_number":10432,"context_line":"            if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":10433,"context_line":"                models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":10434,"context_line":"                if not models:"},{"line_number":10435,"context_line":"                    models.append(self,"},{"line_number":10436,"context_line":"                                  libvirt_utils.get_cpu_model_from_arch("}],"source_content_type":"text/x-python","patch_set":15,"id":"df33271e_5e185bd2","line":10433,"range":{"start_line":10433,"start_character":0,"end_line":10433,"end_character":69},"updated":"2020-03-23 10:59:25.000000000","message":"Is this necessary? You\u0027ve already built this list two lines above, although you did call \u0027_get_cpu_model_mapping\u0027 on that (which I think is correct)","commit_id":"cce094eded37995ca7bd5757a785e97c9c7c8d44"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"db2e20ad1a119b9c689711f345afdad2f2b0d127","unresolved":false,"context_lines":[{"line_number":10430,"context_line":""},{"line_number":10431,"context_line":"            # Aarch64 platform doesn\u0027t return the default CPU models"},{"line_number":10432,"context_line":"            if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":10433,"context_line":"                models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":10434,"context_line":"                if not models:"},{"line_number":10435,"context_line":"                    models.append(self,"},{"line_number":10436,"context_line":"                                  libvirt_utils.get_cpu_model_from_arch("}],"source_content_type":"text/x-python","patch_set":15,"id":"df33271e_e96ff78f","line":10433,"range":{"start_line":10433,"start_character":0,"end_line":10433,"end_character":69},"in_reply_to":"df33271e_5e185bd2","updated":"2020-03-23 12:30:03.000000000","message":"Aha, you are right, we can remove here","commit_id":"cce094eded37995ca7bd5757a785e97c9c7c8d44"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2fddb07f30a870e6e81a18cfcb81e11a724aa3eb","unresolved":false,"context_lines":[{"line_number":10429,"context_line":"            # Aarch64 platform doesn\u0027t return the default CPU models"},{"line_number":10430,"context_line":"            if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":10431,"context_line":"                if not models:"},{"line_number":10432,"context_line":"                    models.append(self,"},{"line_number":10433,"context_line":"                                  libvirt_utils.get_cpu_model_from_arch("},{"line_number":10434,"context_line":"                                      caps.host.cpu.arch))"},{"line_number":10435,"context_line":"            # For custom mode, iterate through cpu models"},{"line_number":10436,"context_line":"            for model in models:"},{"line_number":10437,"context_line":"                caps.host.cpu.model \u003d model"}],"source_content_type":"text/x-python","patch_set":16,"id":"df33271e_44636add","line":10434,"range":{"start_line":10432,"start_character":20,"end_line":10434,"end_character":58},"updated":"2020-03-23 12:40:50.000000000","message":"you need to update this too:\n\n  models \u003d [\u0027max\u0027]\n\nright?","commit_id":"306605549eec6688a4fbd4a900ed065dfe68154a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5e233dc510f350ee7d86a14e4f08347a865217cc","unresolved":false,"context_lines":[{"line_number":4205,"context_line":"            # return the default CPU model."},{"line_number":4206,"context_line":"            if mode \u003d\u003d \"custom\":"},{"line_number":4207,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4208,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4209,"context_line":"                    if not models:"},{"line_number":4210,"context_line":"                        models \u003d [\u0027max\u0027]"},{"line_number":4211,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"df33271e_1caec82d","line":4208,"range":{"start_line":4208,"start_character":0,"end_line":4208,"end_character":73},"updated":"2020-03-24 12:30:36.000000000","message":"you don\u0027t need this because it\u0027s already set on line 4177 (top of this function)","commit_id":"f60d923f7a29acd0a106190ad4a6e7bc718bffaa"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"6cd59daa40ea4e614dccec6192fe29e0737dcb6b","unresolved":false,"context_lines":[{"line_number":4205,"context_line":"            # return the default CPU model."},{"line_number":4206,"context_line":"            if mode \u003d\u003d \"custom\":"},{"line_number":4207,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4208,"context_line":"                    models \u003d [model for model in CONF.libvirt.cpu_models]"},{"line_number":4209,"context_line":"                    if not models:"},{"line_number":4210,"context_line":"                        models \u003d [\u0027max\u0027]"},{"line_number":4211,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"df33271e_3f129e59","line":4208,"range":{"start_line":4208,"start_character":0,"end_line":4208,"end_character":73},"in_reply_to":"df33271e_1caec82d","updated":"2020-03-24 12:38:52.000000000","message":"Aha, yes, exactly!\nThanks a lot","commit_id":"f60d923f7a29acd0a106190ad4a6e7bc718bffaa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a2ccd5ba3f0c9c7b43e0c248324ee17b591df97b","unresolved":false,"context_lines":[{"line_number":4147,"context_line":"        name."},{"line_number":4148,"context_line":""},{"line_number":4149,"context_line":"        :param model: Case-insensitive CPU model name."},{"line_number":4150,"context_line":"        :return: Case-sensitive CPU model name, or None(Only when configured"},{"line_number":4151,"context_line":"                 CPU model name not correct)"},{"line_number":4152,"context_line":"        \"\"\""},{"line_number":4153,"context_line":"        cpu_info \u003d self._get_cpu_info()"},{"line_number":4154,"context_line":"        if cpu_info[\u0027arch\u0027] not in (fields.Architecture.I686,"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_bac23ce8","line":4151,"range":{"start_line":4150,"start_character":51,"end_line":4151,"end_character":44},"updated":"2020-03-24 14:15:40.000000000","message":"This is no longer true. It will validate and return the case-sensitive CPU model name if on a supported platform, otherwise it will just return what was provided.\n\nWe should also add a \u0027:raises:\u0027 declaration to note the new exception this can raise","commit_id":"35c8d88a79dbf8b3f4d8fa06bc183e6ffe2285a4"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"aeb94f2fdd7ccb1ef9b4bd8488e5b971796c9f19","unresolved":false,"context_lines":[{"line_number":4147,"context_line":"        name."},{"line_number":4148,"context_line":""},{"line_number":4149,"context_line":"        :param model: Case-insensitive CPU model name."},{"line_number":4150,"context_line":"        :return: Case-sensitive CPU model name, or None(Only when configured"},{"line_number":4151,"context_line":"                 CPU model name not correct)"},{"line_number":4152,"context_line":"        \"\"\""},{"line_number":4153,"context_line":"        cpu_info \u003d self._get_cpu_info()"},{"line_number":4154,"context_line":"        if cpu_info[\u0027arch\u0027] not in (fields.Architecture.I686,"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_d5dc331a","line":4151,"range":{"start_line":4150,"start_character":51,"end_line":4151,"end_character":44},"in_reply_to":"df33271e_bac23ce8","updated":"2020-03-24 14:46:39.000000000","message":"Done","commit_id":"35c8d88a79dbf8b3f4d8fa06bc183e6ffe2285a4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a2ccd5ba3f0c9c7b43e0c248324ee17b591df97b","unresolved":false,"context_lines":[{"line_number":4170,"context_line":"                     \"again.\") % {\u0027model\u0027: model})"},{"line_number":4171,"context_line":"            raise exception.InvalidCPUInfo(msg)"},{"line_number":4172,"context_line":""},{"line_number":4173,"context_line":"        return self.cpu_models_mapping.get(model.lower(), None)"},{"line_number":4174,"context_line":""},{"line_number":4175,"context_line":"    def _get_guest_cpu_model_config(self, flavor\u003dNone):"},{"line_number":4176,"context_line":"        mode \u003d CONF.libvirt.cpu_mode"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_9aabf81b","line":4173,"range":{"start_line":4173,"start_character":56,"end_line":4173,"end_character":62},"updated":"2020-03-24 14:15:40.000000000","message":"nit: this could be dropped now. In fact, you could switch from \u0027.get()\u0027 to \u0027[]\u0027 since it\u0027s guaranteed to be here from line 4166 above","commit_id":"35c8d88a79dbf8b3f4d8fa06bc183e6ffe2285a4"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"aeb94f2fdd7ccb1ef9b4bd8488e5b971796c9f19","unresolved":false,"context_lines":[{"line_number":4170,"context_line":"                     \"again.\") % {\u0027model\u0027: model})"},{"line_number":4171,"context_line":"            raise exception.InvalidCPUInfo(msg)"},{"line_number":4172,"context_line":""},{"line_number":4173,"context_line":"        return self.cpu_models_mapping.get(model.lower(), None)"},{"line_number":4174,"context_line":""},{"line_number":4175,"context_line":"    def _get_guest_cpu_model_config(self, flavor\u003dNone):"},{"line_number":4176,"context_line":"        mode \u003d CONF.libvirt.cpu_mode"}],"source_content_type":"text/x-python","patch_set":18,"id":"df33271e_75c28735","line":4173,"range":{"start_line":4173,"start_character":56,"end_line":4173,"end_character":62},"in_reply_to":"df33271e_9aabf81b","updated":"2020-03-24 14:46:39.000000000","message":"Done","commit_id":"35c8d88a79dbf8b3f4d8fa06bc183e6ffe2285a4"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f8c9854257c55be7c61f3bb7fc37766dac799220","unresolved":false,"context_lines":[{"line_number":4150,"context_line":"        :return: It will validate and return the case-sensitive CPU model name"},{"line_number":4151,"context_line":"                 if on a supported platform, otherwise it will just return"},{"line_number":4152,"context_line":"                 what was provided"},{"line_number":4153,"context_line":"        :raises: exception.InvalidCPUInfo if the CPU models is not supported"},{"line_number":4154,"context_line":"                 on a supported platform."},{"line_number":4155,"context_line":"        \"\"\""},{"line_number":4156,"context_line":"        cpu_info \u003d self._get_cpu_info()"},{"line_number":4157,"context_line":"        if cpu_info[\u0027arch\u0027] not in (fields.Architecture.I686,"}],"source_content_type":"text/x-python","patch_set":20,"id":"df33271e_c2873b0f","line":4154,"range":{"start_line":4153,"start_character":42,"end_line":4154,"end_character":41},"updated":"2020-03-25 18:04:47.000000000","message":"Nit: Reads a little awkwardly; how about:\n\n\"... if the CPU model is not supported\"","commit_id":"4ed21d205632c1cc7d1c6c11f3b968c8dbabb7fd"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f8c9854257c55be7c61f3bb7fc37766dac799220","unresolved":false,"context_lines":[{"line_number":4167,"context_line":"                self.cpu_models_mapping[cpu_model.lower()] \u003d cpu_model"},{"line_number":4168,"context_line":""},{"line_number":4169,"context_line":"        if model.lower() not in self.cpu_models_mapping:"},{"line_number":4170,"context_line":"            msg \u003d (_(\"Configured CPU model: %(model)s is not correct, \""},{"line_number":4171,"context_line":"                     \"or your host CPU arch does not support this \""},{"line_number":4172,"context_line":"                     \"model. Please correct your config and try \""},{"line_number":4173,"context_line":"                     \"again.\") % {\u0027model\u0027: model})"},{"line_number":4174,"context_line":"            raise exception.InvalidCPUInfo(msg)"},{"line_number":4175,"context_line":""},{"line_number":4176,"context_line":"        return self.cpu_models_mapping.get(model.lower())"},{"line_number":4177,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"df33271e_82bff3ce","line":4174,"range":{"start_line":4170,"start_character":0,"end_line":4174,"end_character":46},"updated":"2020-03-25 18:04:47.000000000","message":"Looks sensible; the handling.","commit_id":"4ed21d205632c1cc7d1c6c11f3b968c8dbabb7fd"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f8c9854257c55be7c61f3bb7fc37766dac799220","unresolved":false,"context_lines":[{"line_number":4204,"context_line":"                    mode \u003d \"host-model\""},{"line_number":4205,"context_line":"            if mode \u003d\u003d \"none\":"},{"line_number":4206,"context_line":"                return vconfig.LibvirtConfigGuestCPU()"},{"line_number":4207,"context_line":"            # Aarch64 platform the return of _get_cpu_model_mapping will not"},{"line_number":4208,"context_line":"            # return the default CPU model."},{"line_number":4209,"context_line":"            if mode \u003d\u003d \"custom\":"},{"line_number":4210,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"}],"source_content_type":"text/x-python","patch_set":20,"id":"df33271e_22954741","line":4207,"range":{"start_line":4207,"start_character":14,"end_line":4207,"end_character":22},"updated":"2020-03-25 18:04:47.000000000","message":"Nit: s/Aarch64/AArch64/","commit_id":"4ed21d205632c1cc7d1c6c11f3b968c8dbabb7fd"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f8c9854257c55be7c61f3bb7fc37766dac799220","unresolved":false,"context_lines":[{"line_number":4204,"context_line":"                    mode \u003d \"host-model\""},{"line_number":4205,"context_line":"            if mode \u003d\u003d \"none\":"},{"line_number":4206,"context_line":"                return vconfig.LibvirtConfigGuestCPU()"},{"line_number":4207,"context_line":"            # Aarch64 platform the return of _get_cpu_model_mapping will not"},{"line_number":4208,"context_line":"            # return the default CPU model."},{"line_number":4209,"context_line":"            if mode \u003d\u003d \"custom\":"},{"line_number":4210,"context_line":"                if caps.host.cpu.arch \u003d\u003d fields.Architecture.AARCH64:"},{"line_number":4211,"context_line":"                    if not models:"},{"line_number":4212,"context_line":"                        models \u003d [\u0027max\u0027]"},{"line_number":4213,"context_line":""},{"line_number":4214,"context_line":"        else:"},{"line_number":4215,"context_line":"            if mode is None or mode \u003d\u003d \"none\":"}],"source_content_type":"text/x-python","patch_set":20,"id":"df33271e_82a413bb","line":4212,"range":{"start_line":4207,"start_character":0,"end_line":4212,"end_character":40},"updated":"2020-03-25 18:04:47.000000000","message":"Indeed, it needs to be explicitly taken into account; as there\u0027s no \"default CPU model\" per se for AArch64 (with good reasons; noted elsewhere).","commit_id":"4ed21d205632c1cc7d1c6c11f3b968c8dbabb7fd"}],"nova/virt/libvirt/utils.py":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"0aa981af1912c1873ba8d0c7fc0d1d77f1984ef5","unresolved":false,"context_lines":[{"line_number":537,"context_line":"    elif arch \u003d\u003d obj_fields.Architecture.PPC64LE:"},{"line_number":538,"context_line":"        mode \u003d \u0027POWER8\u0027"},{"line_number":539,"context_line":"    elif arch \u003d\u003d obj_fields.Architecture.AARCH64:"},{"line_number":540,"context_line":"        mode \u003d \u0027cortex-a57\u0027"},{"line_number":541,"context_line":"    return mode"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_1f262db9","line":540,"range":{"start_line":540,"start_character":16,"end_line":540,"end_character":26},"updated":"2020-03-13 16:04:08.000000000","message":"Can you tell a little more on the choice of \u0027cortex-a57\u0027?","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"0aa981af1912c1873ba8d0c7fc0d1d77f1984ef5","unresolved":false,"context_lines":[{"line_number":538,"context_line":"        mode \u003d \u0027POWER8\u0027"},{"line_number":539,"context_line":"    elif arch \u003d\u003d obj_fields.Architecture.AARCH64:"},{"line_number":540,"context_line":"        mode \u003d \u0027cortex-a57\u0027"},{"line_number":541,"context_line":"    return mode"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"def get_machine_type(image_meta):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_ff079117","line":541,"range":{"start_line":541,"start_character":11,"end_line":541,"end_character":15},"updated":"2020-03-13 16:04:08.000000000","message":"Not the fault of this patch, but confusingly enough, the actual _content_ we\u0027re returning is CPU _model_, but we\u0027re calling it \"mode\".\n\nWe should consider fixing it—but as a separate patch, please.\n\n(Because Nova\u0027s libvirt driver has a concept of CPU _mode_, which is separate from _model_.)","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"69afe2592f7e7743a0ae6498a962dbe267b1c245","unresolved":false,"context_lines":[{"line_number":538,"context_line":"        mode \u003d \u0027POWER8\u0027"},{"line_number":539,"context_line":"    elif arch \u003d\u003d obj_fields.Architecture.AARCH64:"},{"line_number":540,"context_line":"        mode \u003d \u0027cortex-a57\u0027"},{"line_number":541,"context_line":"    return mode"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"def get_machine_type(image_meta):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_6eec478f","line":541,"range":{"start_line":541,"start_character":11,"end_line":541,"end_character":15},"in_reply_to":"1fa4df85_ff079117","updated":"2020-03-16 03:38:59.000000000","message":"will do it separately, thanks","commit_id":"4c00f06d71341997d2d0d541d42d538f6eefbea8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a02ce54e2a656f5da1acc13be8d404175c539248","unresolved":false,"context_lines":[{"line_number":538,"context_line":"    elif arch \u003d\u003d obj_fields.Architecture.PPC64LE:"},{"line_number":539,"context_line":"        mode \u003d \u0027POWER8\u0027"},{"line_number":540,"context_line":"    elif arch \u003d\u003d obj_fields.Architecture.AARCH64:"},{"line_number":541,"context_line":"        mode \u003d \u0027max\u0027"},{"line_number":542,"context_line":"    return mode"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"df33271e_41eff286","line":541,"updated":"2020-03-20 15:51:57.000000000","message":"a comment stating what this entails and why it\u0027s chosen would be helpful","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f8c9854257c55be7c61f3bb7fc37766dac799220","unresolved":false,"context_lines":[{"line_number":540,"context_line":"    # NOTE(kevinz): In aarch64, cpu model \u0027max\u0027 will offer the capabilities"},{"line_number":541,"context_line":"    # that all the stuff it can currently emulate, both for \"TCG\" and \"KVM\""},{"line_number":542,"context_line":"    elif arch \u003d\u003d obj_fields.Architecture.AARCH64:"},{"line_number":543,"context_line":"        mode \u003d \u0027max\u0027"},{"line_number":544,"context_line":"    return mode"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"df33271e_021da30e","line":543,"range":{"start_line":543,"start_character":16,"end_line":543,"end_character":19},"updated":"2020-03-25 18:04:47.000000000","message":"Thanks for updating; this looks good.","commit_id":"4ed21d205632c1cc7d1c6c11f3b968c8dbabb7fd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5fa1a0efa32434e04a083f0b17af3d0fcc5d5fda","unresolved":false,"context_lines":[{"line_number":538,"context_line":"    elif arch \u003d\u003d obj_fields.Architecture.PPC64LE:"},{"line_number":539,"context_line":"        mode \u003d \u0027POWER8\u0027"},{"line_number":540,"context_line":"    # NOTE(kevinz): In aarch64, cpu model \u0027max\u0027 will offer the capabilities"},{"line_number":541,"context_line":"    # that all the stuff it can currently emulate, both for \"TCG\" and \"KVM\""},{"line_number":542,"context_line":"    elif arch \u003d\u003d obj_fields.Architecture.AARCH64:"},{"line_number":543,"context_line":"        mode \u003d \u0027max\u0027"},{"line_number":544,"context_line":"    return mode"}],"source_content_type":"text/x-python","patch_set":21,"id":"df33271e_bcdccf74","line":541,"range":{"start_line":541,"start_character":70,"end_line":541,"end_character":75},"updated":"2020-03-26 12:32:47.000000000","message":"based on irc discussion with kashyap he has confimed that for kvm \u0027max\u0027 is always the same as \u0027host\u0027\n\n\u0027host\u0027 exposes all the cpu flage form the host cpu that can be consumed by a vm.\n\nmy original concern was that max in KVM would result in cpu feature that qemu can emulated but are not present on the host beign exposed as well.\n\nqemu has done this in the past on x86 allowing instruucton like avx to be emulated using sse4. this is not want we want.\nsuch emulation causes both performacne gains where the applicaiton that need avx would not fall back to sse its self and performcne losses where the app world. \n\nthe other concern with max is during a ruling upgrade or update it would prevent live mgiration form a new host to an old host as the new host will have more feature then the old and therefor the live migration should fail or the vm will crash if it every tried to use the instuction that is not supported on the old host.\n\n\nthis si basicaly unaviodable as in kvm mode we are froced to expose the host cpus in any case so this really only affects qemu with the tcg backend. givent that i think this makes sense as a default.","commit_id":"5d4f82a15c7bccc89f78a5a1f00a25cfafdbdde0"}],"releasenotes/notes/bug-1864588-737c29560effd16e.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a02ce54e2a656f5da1acc13be8d404175c539248","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    for AArc64, we won\u0027t get the available CPU models if you don\u0027t also"},{"line_number":5,"context_line":"    specify the machine type. with the machine type \u0027virt\u0027 (recommended"},{"line_number":6,"context_line":"    for AArch64) specified, you can get help for the available CPU models."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"df33271e_61ee7689","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":5},"updated":"2020-03-20 15:51:57.000000000","message":"F","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a02ce54e2a656f5da1acc13be8d404175c539248","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    for AArc64, we won\u0027t get the available CPU models if you don\u0027t also"},{"line_number":5,"context_line":"    specify the machine type. with the machine type \u0027virt\u0027 (recommended"},{"line_number":6,"context_line":"    for AArch64) specified, you can get help for the available CPU models."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"df33271e_a1ffde32","line":4,"range":{"start_line":4,"start_character":57,"end_line":4,"end_character":71},"updated":"2020-03-20 15:51:57.000000000","message":"unless the machine type is also specified.","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"86422ee314aef2e527c3197a81a520f7a89cb17d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    for AArc64, we won\u0027t get the available CPU models if you don\u0027t also"},{"line_number":5,"context_line":"    specify the machine type. with the machine type \u0027virt\u0027 (recommended"},{"line_number":6,"context_line":"    for AArch64) specified, you can get help for the available CPU models."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":13,"id":"df33271e_783297a9","line":4,"range":{"start_line":4,"start_character":57,"end_line":4,"end_character":71},"in_reply_to":"df33271e_a1ffde32","updated":"2020-03-23 08:32:06.000000000","message":"Done","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a02ce54e2a656f5da1acc13be8d404175c539248","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    for AArc64, we won\u0027t get the available CPU models if you don\u0027t also"},{"line_number":5,"context_line":"    specify the machine type. with the machine type \u0027virt\u0027 (recommended"},{"line_number":6,"context_line":"    for AArch64) specified, you can get help for the available CPU models."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    For TCG, the current options are ``cortex-a57``, ``cortex-a53``,"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"df33271e_01fdea39","line":5,"range":{"start_line":5,"start_character":30,"end_line":5,"end_character":31},"updated":"2020-03-20 15:51:57.000000000","message":"W","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":22076,"name":"Kevin Zhao","email":"kevin.zhao@linaro.org","username":"KevinZhao"},"change_message_id":"86422ee314aef2e527c3197a81a520f7a89cb17d","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    for AArc64, we won\u0027t get the available CPU models if you don\u0027t also"},{"line_number":5,"context_line":"    specify the machine type. with the machine type \u0027virt\u0027 (recommended"},{"line_number":6,"context_line":"    for AArch64) specified, you can get help for the available CPU models."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    For TCG, the current options are ``cortex-a57``, ``cortex-a53``,"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"df33271e_982ddb48","line":5,"range":{"start_line":5,"start_character":30,"end_line":5,"end_character":31},"in_reply_to":"df33271e_01fdea39","updated":"2020-03-23 08:32:06.000000000","message":"Done","commit_id":"bd4c504e515b6ee18e6d8f5f346957d249985d3c"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f8c9854257c55be7c61f3bb7fc37766dac799220","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    For AArc64, we won\u0027t get the available CPU models unless the machine"},{"line_number":5,"context_line":"    type is also specified. With the machine type \u0027virt\u0027 (recommended"},{"line_number":6,"context_line":"    for AArch64) specified, you can get help for the available CPU models."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":20,"id":"df33271e_02c76347","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":14},"updated":"2020-03-25 18:04:47.000000000","message":"s/AArc64/AArch64/","commit_id":"4ed21d205632c1cc7d1c6c11f3b968c8dbabb7fd"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"f8c9854257c55be7c61f3bb7fc37766dac799220","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    For AArc64, we won\u0027t get the available CPU models unless the machine"},{"line_number":5,"context_line":"    type is also specified. With the machine type \u0027virt\u0027 (recommended"},{"line_number":6,"context_line":"    for AArch64) specified, you can get help for the available CPU models."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    For TCG, the current options are ``cortex-a57``, ``cortex-a53``,"},{"line_number":9,"context_line":"    ``cortex-a72`` and ``max``. There\u0027s not much difference between the 3"},{"line_number":10,"context_line":"    specified cpu types, they\u0027re all basically v8.0. ``max`` will give"},{"line_number":11,"context_line":"    you the moving-target all the stuff we can currently emulate."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"    For KVM, we essentially have to go with give the guest what the host"},{"line_number":14,"context_line":"    CPU has, which you can express either as ``host`` or as ``max`` CPU"},{"line_number":15,"context_line":"    models, the benefit of the latter (``max``) being that it also works"},{"line_number":16,"context_line":"    with TCG."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    From Qemu team, the maintainer recommends ``max`` whether we choose"},{"line_number":19,"context_line":"    TCG or for KVM."}],"source_content_type":"text/x-yaml","patch_set":20,"id":"df33271e_62490fcf","line":19,"range":{"start_line":4,"start_character":0,"end_line":19,"end_character":19},"updated":"2020-03-25 18:04:47.000000000","message":"There\u0027s a lot of needless info for a release note here; much of it seems to be from one of the earlier review comments; and it will only confuse people. :-)\n\nI\u0027d suggest to rephrase the above to the simple statement:\n\nFor AArch64, we now set the ``max`` as the default CPU model; it does the right thing in context of both QEMU TCG (plain emulation) and for KVM (hardware acceleration).","commit_id":"4ed21d205632c1cc7d1c6c11f3b968c8dbabb7fd"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4f1441dfd3c60aedc3346480fb57687e20c1002f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    For AArc64, we won\u0027t get the available CPU models unless the machine"},{"line_number":5,"context_line":"    type is also specified. With the machine type \u0027virt\u0027 (recommended"},{"line_number":6,"context_line":"    for AArch64) specified, you can get help for the available CPU models."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    For TCG, the current options are ``cortex-a57``, ``cortex-a53``,"},{"line_number":9,"context_line":"    ``cortex-a72`` and ``max``. There\u0027s not much difference between the 3"},{"line_number":10,"context_line":"    specified cpu types, they\u0027re all basically v8.0. ``max`` will give"},{"line_number":11,"context_line":"    you the moving-target all the stuff we can currently emulate."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"    For KVM, we essentially have to go with give the guest what the host"},{"line_number":14,"context_line":"    CPU has, which you can express either as ``host`` or as ``max`` CPU"},{"line_number":15,"context_line":"    models, the benefit of the latter (``max``) being that it also works"},{"line_number":16,"context_line":"    with TCG."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    From Qemu team, the maintainer recommends ``max`` whether we choose"},{"line_number":19,"context_line":"    TCG or for KVM."}],"source_content_type":"text/x-yaml","patch_set":20,"id":"df33271e_a2f03769","line":19,"range":{"start_line":4,"start_character":0,"end_line":19,"end_character":19},"in_reply_to":"df33271e_62490fcf","updated":"2020-03-25 18:09:13.000000000","message":"[...]\n\n \u003e I\u0027d suggest to rephrase the above to the simple statement:\n \u003e \n \u003e For AArch64, we now set the ``max`` as the default CPU model;\n\nSmall edit to the above: \"we now set the\" --\u003e \"Nova now sets\"\n\n[...]","commit_id":"4ed21d205632c1cc7d1c6c11f3b968c8dbabb7fd"}]}
