)]}'
{"doc/source/admin/cpu-models.rst":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ca13493698e4c44f69079db14ca6e60a719b20c1","unresolved":true,"context_lines":[{"line_number":52,"context_line":"With regard to enabling and facilitating live migration between"},{"line_number":53,"context_line":"compute nodes, you should assess whether ``host-model`` is suitable"},{"line_number":54,"context_line":"for your compute architecture. In general, using ``host-model`` is a"},{"line_number":55,"context_line":"safe choice if your compute node CPUs are largely identical. However,"},{"line_number":56,"context_line":"if your compute nodes span multiple processor generations, you may be"},{"line_number":57,"context_line":"better advised to select a ``custom`` CPU model."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3c276fe5_f14b3a5c","line":55,"range":{"start_line":55,"start_character":38,"end_line":55,"end_character":59},"updated":"2021-03-18 13:09:39.000000000","message":"One of the benefits of \u0027host-model\u0027 is that it doesn\u0027t *need* to be identical, and libvirt will do the right thing to calculate live migration compatibility.\n\nWe should also work in the below important points about \u0027host-model\u0027.  They answer the common question of \"What exactly are the advantages of \u0027host-model\u0027?\"  I\u0027ve mentioned these elsewhere[1][2] in the past, but having them written down is useful.  \n\n- It provides maximum possible CPU features from the host to the guest\n- It auto-adds critical guest CPU flags — e.g. ``spec-ctrl`` and others for mitigation from certain security flaws — *provided* the CPU microcode, kernel, QEMU, and libvirt are all updated\n- It computes live migration compatibility, with the caveat of live migration in both directions is not possible.  (See below.)\n\n\n`host-model` and live migration\n-------------------------------\n\nWhen using libvirt\u0027s \u0027host-model\u0027, live migration in both directions is not always guaranteed, because of the following:\n\nDuring live migration, the source CPU model definition is transferred to the destination host as-is.  This results in the migrated guest on the destination seeing exactly the same CPU model as on source — *even if* the destination compute host is capable of providing more CPU features.  However, shutting down and restarting the guest on the may present different hardware to the guest, as per the new capabilities of the destination compute.\n\n\n[1] https://kashyapc.fedorapeople.org/Effective-Virtual-CPU-Configuration-in-Nova-Berlin2018.pdf\n[2] https://kashyapc.fedorapeople.org/Secure-CPU-config-for-KVM-based-guests-RHT_TechDay_Brussels_2020.pdf","commit_id":"c9895fd4d46d07b8b58f70ae0af90c7b398bbcda"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fd564e36d5b81f1a7bd3770eddc28dafacc18ece","unresolved":false,"context_lines":[{"line_number":52,"context_line":"With regard to enabling and facilitating live migration between"},{"line_number":53,"context_line":"compute nodes, you should assess whether ``host-model`` is suitable"},{"line_number":54,"context_line":"for your compute architecture. In general, using ``host-model`` is a"},{"line_number":55,"context_line":"safe choice if your compute node CPUs are largely identical. However,"},{"line_number":56,"context_line":"if your compute nodes span multiple processor generations, you may be"},{"line_number":57,"context_line":"better advised to select a ``custom`` CPU model."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"12febaf4_0b10236b","line":55,"range":{"start_line":55,"start_character":38,"end_line":55,"end_character":59},"in_reply_to":"3c276fe5_f14b3a5c","updated":"2021-03-23 11:14:10.000000000","message":"Done","commit_id":"c9895fd4d46d07b8b58f70ae0af90c7b398bbcda"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"ca13493698e4c44f69079db14ca6e60a719b20c1","unresolved":true,"context_lines":[{"line_number":72,"context_line":"In ``host-passthrough`` mode, the guest can only be live-migrated to a"},{"line_number":73,"context_line":"target host that matches the source host extremely closely. This"},{"line_number":74,"context_line":"definitely includes the physical CPU model and running microcode, and"},{"line_number":75,"context_line":"may even include the running kernel. Use this mode only if:"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* Your compute nodes have a very large degree of homogeneity"},{"line_number":78,"context_line":"  (i.e. substantially all of your compute nodes use the exact same CPU"}],"source_content_type":"text/x-rst","patch_set":1,"id":"45292718_fc5b1b87","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":35},"updated":"2021-03-18 13:09:39.000000000","message":"I suggest to be more explicit about live migration with \u0027host-passthrough\u0027, as there can be mysterious failures in this scenario:\n\nFor live migration with \u0027host-passthrough\u0027 to work, along with *identical* physical CPUs on source and destination hosts, you also must have along with identical kernel _and_ CPU microcode versions.\n\n(The reason for even matching CPU microcode version is that hardware performance counters are exposed to an instance, it is likely that they may vary between different CPU models.  There may be other reasons due to security fixes for some hardware security flaws being included in CPU microcode.)\n\nThe below two bullet points convey the point sufficient enough to me.  So I don\u0027t insist.","commit_id":"c9895fd4d46d07b8b58f70ae0af90c7b398bbcda"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fd564e36d5b81f1a7bd3770eddc28dafacc18ece","unresolved":false,"context_lines":[{"line_number":72,"context_line":"In ``host-passthrough`` mode, the guest can only be live-migrated to a"},{"line_number":73,"context_line":"target host that matches the source host extremely closely. This"},{"line_number":74,"context_line":"definitely includes the physical CPU model and running microcode, and"},{"line_number":75,"context_line":"may even include the running kernel. Use this mode only if:"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* Your compute nodes have a very large degree of homogeneity"},{"line_number":78,"context_line":"  (i.e. substantially all of your compute nodes use the exact same CPU"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8caca5e1_99fc6201","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":35},"in_reply_to":"45292718_fc5b1b87","updated":"2021-03-23 11:14:10.000000000","message":"Done","commit_id":"c9895fd4d46d07b8b58f70ae0af90c7b398bbcda"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6d2ee1aca5e948823877201a0f6a053ebd893462","unresolved":true,"context_lines":[{"line_number":57,"context_line":"better advised to select a ``custom`` CPU model."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The ``host-model`` CPU model is the default for the KVM \u0026 QEMU hypervisors"},{"line_number":60,"context_line":"(:oslo.config:option:`libvirt.virt_type`\\ \u003d``kvm``/``qemu``)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Host passthrough"},{"line_number":63,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e465e628_b909eed4","line":60,"range":{"start_line":60,"start_character":43,"end_line":60,"end_character":50},"updated":"2021-03-30 14:46:28.000000000","message":"it seems this is not rendered properly. http://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_d4d/781438/2/check/openstack-tox-docs/d4d9f30/docs/admin/cpu-models.html#cpu-modes","commit_id":"ee1443bb3f7ac91ad468455296f0aff5459f4df4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6d2ee1aca5e948823877201a0f6a053ebd893462","unresolved":true,"context_lines":[{"line_number":117,"context_line":"specify a CPU model. Instead, the hypervisor chooses the default model."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"The ``none`` CPU model is the default for all non-KVM.QEMU hypervisors."},{"line_number":120,"context_line":"(:oslo.config:option:`libvirt.virt_type`\\ !\u003d``kvm``/``qemu``)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"CPU feature flags"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba8379b1_fe52430f","line":120,"range":{"start_line":120,"start_character":45,"end_line":120,"end_character":51},"updated":"2021-03-30 14:46:28.000000000","message":"ditto","commit_id":"ee1443bb3f7ac91ad468455296f0aff5459f4df4"}]}
