Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: 9617cddb72649f563eef8114648140b8c5607a71 https://github.com/qemu/qemu/commit/9617cddb72649f563eef8114648140b8c5607a71 Author: James Bottomley <j...@linux.ibm.com> Date: 2021-02-16 (Tue, 16 Feb 2021)
Changed paths: M hw/i386/pc_sysfw.c M include/hw/i386/pc.h M include/sysemu/sev.h M target/i386/sev_i386.h Log Message: ----------- pc: add parser for OVMF reset block OVMF is developing a mechanism for depositing a GUIDed table just below the known location of the reset vector. The table goes backwards in memory so all entries are of the form <data>|len|<GUID> Where <data> is arbtrary size and type, <len> is a uint16_t and describes the entire length of the entry from the beginning of the data to the end of the guid. The foot of the table is of this form and <len> for this case describes the entire size of the table. The table foot GUID is defined by OVMF as 96b582de-1fb2-45f7-baea-a366c55a082d and if the table is present this GUID is just below the reset vector, 48 bytes before the end of the firmware file. Add a parser for the ovmf reset block which takes a copy of the block, if the table foot guid is found, minus the footer and a function for later traversal to return the data area of any specified GUIDs. Signed-off-by: James Bottomley <j...@linux.ibm.com> Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> Message-Id: <20210204193939.16617-2-j...@linux.ibm.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: f522cef9b352ac2f9880c5c8b2ea7b2033bdc9f0 https://github.com/qemu/qemu/commit/f522cef9b352ac2f9880c5c8b2ea7b2033bdc9f0 Author: James Bottomley <j...@linux.ibm.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M qapi/misc-target.json M target/i386/monitor.c Log Message: ----------- sev: update sev-inject-launch-secret to make gpa optional If the gpa isn't specified, it's value is extracted from the OVMF properties table located below the reset vector (and if this doesn't exist, an error is returned). OVMF has defined the GUID for the SEV secret area as 4c2eb361-7d9b-4cc3-8081-127c90d3d294 and the format of the <data> is: <base>|<size> where both are uint32_t. We extract <base> and use it as the gpa for the injection. Note: it is expected that the injected secret will also be GUID described but since qemu can't interpret it, the format is left undefined here. Signed-off-by: James Bottomley <j...@linux.ibm.com> Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> Message-Id: <20210204193939.16617-3-j...@linux.ibm.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 6b98e96f1842a54c0bf074f4dad0928808afe287 https://github.com/qemu/qemu/commit/6b98e96f1842a54c0bf074f4dad0928808afe287 Author: Tom Lendacky <thomas.lenda...@amd.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M target/i386/cpu.c M target/i386/sev-stub.c M target/i386/sev.c M target/i386/sev_i386.h Log Message: ----------- sev/i386: Add initial support for SEV-ES Provide initial support for SEV-ES. This includes creating a function to indicate the guest is an SEV-ES guest (which will return false until all support is in place), performing the proper SEV initialization and ensuring that the guest CPU state is measured as part of the launch. Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Richard Henderson <richard.hender...@linaro.org> Cc: Eduardo Habkost <ehabk...@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> Co-developed-by: Jiri Slaby <jsl...@suse.cz> Signed-off-by: Jiri Slaby <jsl...@suse.cz> Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com> Reviewed-by: Venu Busireddy <venu.busire...@oracle.com> Message-Id: <2e6386cbc1ddeaf701547dd5677adf5ddab2b6bd.1611682609.git.thomas.lenda...@amd.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 9681f8677f26320fff488e56b500a3d7d5cf1a49 https://github.com/qemu/qemu/commit/9681f8677f26320fff488e56b500a3d7d5cf1a49 Author: Tom Lendacky <thomas.lenda...@amd.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M target/i386/sev.c Log Message: ----------- sev/i386: Require in-kernel irqchip support for SEV-ES guests In prep for AP booting, require the use of in-kernel irqchip support. This lessens the Qemu support burden required to boot APs. Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Richard Henderson <richard.hender...@linaro.org> Cc: Eduardo Habkost <ehabk...@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com> Reviewed-by: Venu Busireddy <venu.busire...@oracle.com> Message-Id: <e9aec5941e613456f0757f5a73869cdc5deea105.1611682609.git.thomas.lenda...@amd.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: b2f73a0784b7a5eae2022ccf3293792bd008cc64 https://github.com/qemu/qemu/commit/b2f73a0784b7a5eae2022ccf3293792bd008cc64 Author: Paolo Bonzini <pbonz...@redhat.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M accel/kvm/kvm-all.c M hw/i386/pc_sysfw.c M include/sysemu/sev.h M target/i386/kvm/kvm.c M target/i386/sev-stub.c M target/i386/sev.c Log Message: ----------- sev/i386: Allow AP booting under SEV-ES When SEV-ES is enabled, it is not possible modify the guests register state after it has been initially created, encrypted and measured. Normally, an INIT-SIPI-SIPI request is used to boot the AP. However, the hypervisor cannot emulate this because it cannot update the AP register state. For the very first boot by an AP, the reset vector CS segment value and the EIP value must be programmed before the register has been encrypted and measured. Search the guest firmware for the guest for a specific GUID that tells Qemu the value of the reset vector to use. Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: "Michael S. Tsirkin" <m...@redhat.com> Cc: Marcel Apfelbaum <marcel.apfelb...@gmail.com> Cc: Richard Henderson <richard.hender...@linaro.org> Cc: Eduardo Habkost <ehabk...@redhat.com> Cc: Marcelo Tosatti <mtosa...@redhat.com> Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com> Message-Id: <22db2bfb4d6551aed661a9ae95b4fdbef613ca21.1611682609.git.thomas.lenda...@amd.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 92a5199b29f6519aa5f774f4b96dc41954f641d1 https://github.com/qemu/qemu/commit/92a5199b29f6519aa5f774f4b96dc41954f641d1 Author: Tom Lendacky <thomas.lenda...@amd.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M accel/kvm/kvm-all.c M include/sysemu/cpus.h M include/sysemu/hw_accel.h M include/sysemu/kvm.h M softmmu/cpus.c M softmmu/runstate.c M target/arm/kvm.c M target/i386/kvm/kvm.c M target/mips/kvm.c M target/ppc/kvm.c M target/s390x/kvm.c Log Message: ----------- sev/i386: Don't allow a system reset under an SEV-ES guest An SEV-ES guest does not allow register state to be altered once it has been measured. When an SEV-ES guest issues a reboot command, Qemu will reset the vCPU state and resume the guest. This will cause failures under SEV-ES. Prevent that from occuring by introducing an arch-specific callback that returns a boolean indicating whether vCPUs are resettable. Cc: Peter Maydell <peter.mayd...@linaro.org> Cc: Aurelien Jarno <aurel...@aurel32.net> Cc: Jiaxun Yang <jiaxun.y...@flygoat.com> Cc: Aleksandar Rikalo <aleksandar.rik...@syrmia.com> Cc: David Gibson <da...@gibson.dropbear.id.au> Cc: David Hildenbrand <da...@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com> Reviewed-by: Venu Busireddy <venu.busire...@oracle.com> Message-Id: <1ac39c441b9a3e970e9556e1cc29d0a0814de6fd.1611682609.git.thomas.lenda...@amd.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 23edf8b549c7a8a520d42da19403864245f8977f https://github.com/qemu/qemu/commit/23edf8b549c7a8a520d42da19403864245f8977f Author: Tom Lendacky <thomas.lenda...@amd.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M target/i386/kvm/kvm.c Log Message: ----------- kvm/i386: Use a per-VM check for SMM capability SMM is not currently supported for an SEV-ES guest by KVM. Change the SMM capability check from a KVM-wide check to a per-VM check in order to have a finer-grained SMM capability check. Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Richard Henderson <richard.hender...@linaro.org> Cc: Eduardo Habkost <ehabk...@redhat.com> Suggested-by: Sean Christopherson <sea...@google.com> Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com> Reviewed-by: Venu Busireddy <venu.busire...@oracle.com> Message-Id: <f851903809e9d4e6a22d5dfd738dac8da991e28d.1611682609.git.thomas.lenda...@amd.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 027b524d6a427d7c89f4e8af44c49d96796adab5 https://github.com/qemu/qemu/commit/027b524d6a427d7c89f4e8af44c49d96796adab5 Author: Tom Lendacky <thomas.lenda...@amd.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M target/i386/sev.c Log Message: ----------- sev/i386: Enable an SEV-ES guest based on SEV policy Update the sev_es_enabled() function return value to be based on the SEV policy that has been specified. SEV-ES is enabled if SEV is enabled and the SEV-ES policy bit is set in the policy object. Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Richard Henderson <richard.hender...@linaro.org> Cc: Eduardo Habkost <ehabk...@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> Signed-off-by: Tom Lendacky <thomas.lenda...@amd.com> Reviewed-by: Venu Busireddy <venu.busire...@oracle.com> Message-Id: <c69f81c6029f31fc4c52a9f35f1bd704362476a5.1611682609.git.thomas.lenda...@amd.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: f6a2c6eee77458a1f2cf6632b2d9f2fd97bf595e https://github.com/qemu/qemu/commit/f6a2c6eee77458a1f2cf6632b2d9f2fd97bf595e Author: Christian Schoenebeck <qemu_...@crudebyte.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M tests/qtest/libqos/qgraph.c M tests/qtest/libqos/qgraph.h M tests/qtest/libqos/qgraph_internal.h Log Message: ----------- libqos/qgraph: add qos_node_create_driver_named() So far the qos subsystem of the qtest framework had the limitation that only one instance of the same official QEMU (QMP) driver name could be created for qtests. That's because a) the created qos node names must always be unique, b) the node name must match the official QEMU driver name being instantiated and c) all nodes are in a global space shared by all tests. This patch removes this limitation by introducing a new function qos_node_create_driver_named() which allows test case authors to specify a node name being different from the actual associated QEMU driver name. It fills the new 'qemu_name' field of QOSGraphNode for that purpose. Adjust build_driver_cmd_line() and qos_graph_node_set_availability() to correctly deal with either accessing node name vs. node's qemu_name correctly. Signed-off-by: Christian Schoenebeck <qemu_...@crudebyte.com> Message-Id: <3be962ff38f3396f8040deaa5ffdab525c4e0b16.1611704181.git.qemu_...@crudebyte.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 23820025af6b356cd4061a8b029c1126e1ee915e https://github.com/qemu/qemu/commit/23820025af6b356cd4061a8b029c1126e1ee915e Author: Christian Schoenebeck <qemu_...@crudebyte.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M tests/qtest/libqos/qgraph_internal.h Log Message: ----------- libqos/qgraph_internal: add qos_printf() and qos_printf_literal() These two are macros wrapping regular printf() call. They are intended to be used instead of calling printf() directly in order to avoid breaking TAP output format. TAP output format is enabled by using --tap command line argument. Starting with glib 2.62 it is enabled by default. Unfortunately there is currently no public glib API available to check whether TAP output format is enabled. For that reason qos_printf() simply always prepends a '#' character for now. Signed-off-by: Christian Schoenebeck <qemu_...@crudebyte.com> Reviewed-by: Thomas Huth <th...@redhat.com> Message-Id: <653a5ef61c5e7d160e4d6294e542c57ea324cee4.1611704181.git.qemu_...@crudebyte.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 83ff78e5674ccf01a2092c230c893cb2ef41a1a6 https://github.com/qemu/qemu/commit/83ff78e5674ccf01a2092c230c893cb2ef41a1a6 Author: Christian Schoenebeck <qemu_...@crudebyte.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M tests/qtest/libqos/qgraph.c M tests/qtest/libqos/qgraph.h M tests/qtest/qos-test.c Log Message: ----------- tests/qtest/qos-test: dump qos graph if verbose If qtests were run in verbose mode (i.e. if --verbose CL argument was provided) then dump the generated qos graph (all nodes and edges, along with their current individual availability status) to stdout, which allows to identify problems in the created qos graph e.g. when writing new qos tests. See API doc comment on function qos_dump_graph() for details. Signed-off-by: Christian Schoenebeck <qemu_...@crudebyte.com> Message-Id: <6bffb6e38589fb2c06a2c1b5deed33f3e710fed1.1611704181.git.qemu_...@crudebyte.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 093360dc32cf70d3651496b58dc16b22f4971dcc https://github.com/qemu/qemu/commit/093360dc32cf70d3651496b58dc16b22f4971dcc Author: Christian Schoenebeck <qemu_...@crudebyte.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M tests/qtest/qos-test.c Log Message: ----------- tests/qtest/qos-test: dump environment variables if verbose If qtests are run in verbose mode (i.e. if --verbose CL argument was provided) then print all environment variables to stdout before running the individual tests. It is common nowadays, at least being able to output all config vectors in a build chain, especially if it is required to investigate build- and test-issues on foreign/remote machines, which includes environment variables. In the context of writing new test cases this is also useful for finding out whether there are already some existing options for common questions like is there a preferred location for writing test files to? Is there a maximum size for test data? Is there a deadline for running tests? Use qos_printf() instead of g_test_message() to avoid the latter cluttering the output. Signed-off-by: Christian Schoenebeck <qemu_...@crudebyte.com> Message-Id: <21d77b33c578d80b5bba1068e61fd3562958b3c2.1611704181.git.qemu_...@crudebyte.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: b0019c995e0397092d5db5caa8262b67036c2a89 https://github.com/qemu/qemu/commit/b0019c995e0397092d5db5caa8262b67036c2a89 Author: Christian Schoenebeck <qemu_...@crudebyte.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M tests/qtest/qos-test.c Log Message: ----------- tests/qtest/qos-test: dump QEMU command if verbose If qtests are run in verbose mode (i.e. if --verbose CL argument was provided) then print the assembled qemu command line for each test. Use qos_printf() instead of g_test_message() to avoid the latter cluttering the output. Signed-off-by: Christian Schoenebeck <qemu_...@crudebyte.com> Message-Id: <110bef3595cb841dfa1b86733c174ac9774eb37e.1611704181.git.qemu_...@crudebyte.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 342e3a4f20653c2d419cc0e8fdc0b99dfea32fed https://github.com/qemu/qemu/commit/342e3a4f20653c2d419cc0e8fdc0b99dfea32fed Author: Stefan Weil <s...@weilnetz.de> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M util/cutils.c Log Message: ----------- util/cutils: Skip "." when looking for next directory component When looking for the next directory component, a "." component is now skipped. This fixes the path(s) used for firmware lookup for the prefix == bindir case which is standard for QEMU on Windows and where the internally used bindir value ends with "/.". Signed-off-by: Stefan Weil <s...@weilnetz.de> Message-Id: <20210208205752.2488774-1...@weilnetz.de> Cc: qemu-sta...@nongnu.org Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 118f2aadbc66aaae4e8d52259288e18f2aa4544a https://github.com/qemu/qemu/commit/118f2aadbc66aaae4e8d52259288e18f2aa4544a Author: Hill Ma <maahiuz...@gmail.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M target/i386/hvf/x86_cpuid.c Log Message: ----------- hvf: Guard xgetbv call This prevents illegal instruction on cpus that do not support xgetbv. Buglink: https://bugs.launchpad.net/qemu/+bug/1758819 Reviewed-by: Cameron Esfahani <di...@apple.com> Signed-off-by: Hill Ma <maahiuz...@gmail.com> Message-Id: <X/6OJ7qk0W6bHkHQ@Hills-Mac-Pro.local> Signed-off-by: Roman Bolshakov <r.bolsha...@yadro.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 3b502b0e470867369ba6e0a94e9ba6d91bb176c2 https://github.com/qemu/qemu/commit/3b502b0e470867369ba6e0a94e9ba6d91bb176c2 Author: Vladislav Yaroshchuk <yaroshchuk2...@gmail.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M target/i386/hvf/hvf.c Log Message: ----------- target/i386/hvf: add vmware-cpuid-freq cpu feature For `-accel hvf` cpu_x86_cpuid() is wrapped with hvf_cpu_x86_cpuid() to add paravirtualization cpuid leaf 0x40000010 https://lkml.org/lkml/2008/10/1/246 Leaf 0x40000010, Timing Information: EAX: (Virtual) TSC frequency in kHz. EBX: (Virtual) Bus (local apic timer) frequency in kHz. ECX, EDX: RESERVED (Per above, reserved fields are set to zero). On macOS TSC and APIC Bus frequencies can be readed by sysctl call with names `machdep.tsc.frequency` and `hw.busfrequency` This options is required for Darwin-XNU guest to be synchronized with host Leaf 0x40000000 not exposes HVF leaving hypervisor signature empty Signed-off-by: Vladislav Yaroshchuk <yaroshchuk2...@gmail.com> Message-Id: <20210122150518.3551-1-yaroshchuk2...@gmail.com> Signed-off-by: Roman Bolshakov <r.bolsha...@yadro.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 45f918ccf6c35ee1912a8847873b7ba5b6927b46 https://github.com/qemu/qemu/commit/45f918ccf6c35ee1912a8847873b7ba5b6927b46 Author: Alexander Graf <ag...@csgraf.de> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M target/i386/hvf/hvf-i386.h Log Message: ----------- hvf: x86: Remove unused definitions The hvf i386 has a few struct and cpp definitions that are never used. Remove them. Suggested-by: Roman Bolshakov <r.bolsha...@yadro.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Alexander Graf <ag...@csgraf.de> Message-Id: <20210120224444.71840-3-ag...@csgraf.de> Signed-off-by: Roman Bolshakov <r.bolsha...@yadro.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 027ac0cb516cca4ce8a88dcca2f759c77e0e374b https://github.com/qemu/qemu/commit/027ac0cb516cca4ce8a88dcca2f759c77e0e374b Author: Vladislav Yaroshchuk <yaroshchuk2...@gmail.com> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M target/i386/cpu.h M target/i386/hvf/x86_emu.c Log Message: ----------- target/i386/hvf: add rdmsr 35H MSR_CORE_THREAD_COUNT Some guests (ex. Darwin-XNU) can attemp to read this MSR to retrieve and validate CPU topology comparing it to ACPI MADT content MSR description from Intel Manual: 35H: MSR_CORE_THREAD_COUNT: Configured State of Enabled Processor Core Count and Logical Processor Count Bits 15:0 THREAD_COUNT The number of logical processors that are currently enabled in the physical package Bits 31:16 Core_COUNT The number of processor cores that are currently enabled in the physical package Bits 63:32 Reserved Signed-off-by: Vladislav Yaroshchuk <yaroshchuk2...@gmail.com> Message-Id: <20210113205323.33310-1-yaroshchuk2...@gmail.com> [RB: reordered MSR definition and dropped u suffix from shift offset] Signed-off-by: Roman Bolshakov <r.bolsha...@yadro.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 106f91d59c373b63f227b8827ff18ac9c9068d2f https://github.com/qemu/qemu/commit/106f91d59c373b63f227b8827ff18ac9c9068d2f Author: Alexander Graf <ag...@csgraf.de> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M target/i386/hvf/hvf.c Log Message: ----------- hvf: Fetch cr4 before evaluating CPUID(1) The CPUID function 1 has a bit called OSXSAVE which tells user space the status of the CR4.OSXSAVE bit. Our generic CPUID function injects that bit based on the status of CR4. With Hypervisor.framework, we do not synchronize full CPU state often enough for this function to see the CR4 update before guest user space asks for it. To be on the save side, let's just always synchronize it when we receive a CPUID(1) request. That way we can set the bit with real confidence. Reported-by: Asad Ali <a...@osaro.com> Signed-off-by: Alexander Graf <ag...@csgraf.de> Message-Id: <20210123004129.6364-1-ag...@csgraf.de> [RB: resolved conflict with another CPUID change] Signed-off-by: Roman Bolshakov <r.bolsha...@yadro.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 82e2756897810b6e17e0c352101878b97b1e2688 https://github.com/qemu/qemu/commit/82e2756897810b6e17e0c352101878b97b1e2688 Author: Greg Kurz <gr...@kaod.org> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M util/event_notifier-posix.c Log Message: ----------- event_notifier: Set ->initialized earlier in event_notifier_init() Otherwise the call to event_notifier_set() is a nop, which causes the SLOF firmware on POWER to hang when booting from a virtio-scsi device: virtio_scsi_dataplane_start() virtio_scsi_vring_init() virtio_bus_set_host_notifier() <- assign == true event_notifier_init() <- active == 1 event_notifier_set() <- fails right away if !e->initialized Fixes: e34e47eb28c0 ("event_notifier: handle initialization failure better") Cc: mlevi...@redhat.com Signed-off-by: Greg Kurz <gr...@kaod.org> Message-Id: <20210216120247.1293569-1-gr...@kaod.org> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: 366a85e4bb748794b1ae0ca0ccc2d95f316679a0 https://github.com/qemu/qemu/commit/366a85e4bb748794b1ae0ca0ccc2d95f316679a0 Author: Pavel Dovgalyuk <pavel.dovgal...@ispras.ru> Date: 2021-02-16 (Tue, 16 Feb 2021) Changed paths: M include/sysemu/replay.h M replay/replay-internal.c M replay/replay-time.c M replay/replay.c M stubs/replay-tools.c Log Message: ----------- replay: fix icount request when replaying clock access Record/replay provides REPLAY_CLOCK_LOCKED macro to access the clock when vm_clock_seqlock is locked. This macro is needed because replay internals operate icount. In locked case replay use icount_get_raw_locked for icount request, which prevents excess locking which leads to deadlock. But previously only record code used *_locked function and replay did not. Therefore sometimes clock access lead to deadlocks. This patch fixes clock access for replay too and uses *_locked icount access function. Signed-off-by: Pavel Dovgalyuk <pavel.dovgal...@ispras.ru> Message-Id: <161347990483.1313189.8371838968343494161.stgit@pasha-ThinkPad-X280> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> Commit: f0f75dc174b6c79eb78a161d1c0921f82d7f1bf0 https://github.com/qemu/qemu/commit/f0f75dc174b6c79eb78a161d1c0921f82d7f1bf0 Author: Peter Maydell <peter.mayd...@linaro.org> Date: 2021-02-17 (Wed, 17 Feb 2021) Changed paths: M accel/kvm/kvm-all.c M hw/i386/pc_sysfw.c M include/hw/i386/pc.h M include/sysemu/cpus.h M include/sysemu/hw_accel.h M include/sysemu/kvm.h M include/sysemu/replay.h M include/sysemu/sev.h M qapi/misc-target.json M replay/replay-internal.c M replay/replay-time.c M replay/replay.c M softmmu/cpus.c M softmmu/runstate.c M stubs/replay-tools.c M target/arm/kvm.c M target/i386/cpu.c M target/i386/cpu.h M target/i386/hvf/hvf-i386.h M target/i386/hvf/hvf.c M target/i386/hvf/x86_cpuid.c M target/i386/hvf/x86_emu.c M target/i386/kvm/kvm.c M target/i386/monitor.c M target/i386/sev-stub.c M target/i386/sev.c M target/i386/sev_i386.h M target/mips/kvm.c M target/ppc/kvm.c M target/s390x/kvm.c M tests/qtest/libqos/qgraph.c M tests/qtest/libqos/qgraph.h M tests/qtest/libqos/qgraph_internal.h M tests/qtest/qos-test.c M util/cutils.c M util/event_notifier-posix.c Log Message: ----------- Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging * HVF fixes * Extra qos-test debugging output (Christian) * SEV secret address autodetection (James) * SEV-ES support (Thomas) * Relocatable paths bugfix (Stefan) * RR fix (Pavel) * EventNotifier fix (Greg) # gpg: Signature made Tue 16 Feb 2021 16:15:59 GMT # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonz...@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonz...@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonz...@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * remotes/bonzini-gitlab/tags/for-upstream: (21 commits) replay: fix icount request when replaying clock access event_notifier: Set ->initialized earlier in event_notifier_init() hvf: Fetch cr4 before evaluating CPUID(1) target/i386/hvf: add rdmsr 35H MSR_CORE_THREAD_COUNT hvf: x86: Remove unused definitions target/i386/hvf: add vmware-cpuid-freq cpu feature hvf: Guard xgetbv call util/cutils: Skip "." when looking for next directory component tests/qtest/qos-test: dump QEMU command if verbose tests/qtest/qos-test: dump environment variables if verbose tests/qtest/qos-test: dump qos graph if verbose libqos/qgraph_internal: add qos_printf() and qos_printf_literal() libqos/qgraph: add qos_node_create_driver_named() sev/i386: Enable an SEV-ES guest based on SEV policy kvm/i386: Use a per-VM check for SMM capability sev/i386: Don't allow a system reset under an SEV-ES guest sev/i386: Allow AP booting under SEV-ES sev/i386: Require in-kernel irqchip support for SEV-ES guests sev/i386: Add initial support for SEV-ES sev: update sev-inject-launch-secret to make gpa optional ... Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Compare: https://github.com/qemu/qemu/compare/65d6ae4927d2...f0f75dc174b6