* [PULL 00/12] Misc patches for QEMU 4.2-rc
@ 2019-11-19 16:08 Paolo Bonzini
2019-11-19 16:08 ` [PULL 01/12] scripts: Detect git worktrees for get_maintainer.pl --git Paolo Bonzini
` (13 more replies)
0 siblings, 14 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel
The following changes since commit 369e8f5bbd8a5301bde6fae22b93fe9288c552a5:
buildfix: update texinfo menu (2019-11-18 10:33:29 +0000)
are available in the git repository at:
git://github.com/bonzini/qemu.git tags/for-upstream
for you to fetch changes up to 7a3e29b12f5afe0106a5713bb4db6e23dc66ef91:
mc146818rtc: fix timer interrupt reinjection again (2019-11-19 10:02:13 +0100)
----------------------------------------------------------------
* microvm docs and fixes (Sergio, Liam)
* New processor features for Intel errata (myself, Pawan)
* Kconfig fixes (myself, Thomas)
* Revert mc146818rtc change (myself)
* Deprecate scsi-disk (myself)
* RTC fix (myself, Marcelo)
----------------------------------------------------------------
Alexey Kardashevskiy (1):
scripts: Detect git worktrees for get_maintainer.pl --git
Liam Merwick (1):
hw/i386: Move save_tsc_khz from PCMachineClass to X86MachineClass
Paolo Bonzini (5):
target/i386: add PSCHANGE_NO bit for the ARCH_CAPABILITIES MSR
vfio: vfio-pci requires EDID
scsi: deprecate scsi-disk
Revert "mc146818rtc: fix timer interrupt reinjection"
mc146818rtc: fix timer interrupt reinjection again
Pawan Gupta (1):
target/i386: Export TAA_NO bit to guests
Sergio Lopez (3):
microvm: fix memory leak in microvm_fix_kernel_cmdline
docs/microvm.rst: fix alignment in "Limitations"
docs/microvm.rst: add instructions for shutting down the guest
Thomas Huth (1):
hw/i386: Fix compiler warning when CONFIG_IDE_ISA is disabled
docs/microvm.rst | 27 +++++++++++++--
hw/i386/microvm.c | 2 ++
hw/i386/pc.c | 1 -
hw/i386/pc_piix.c | 8 ++---
hw/i386/pc_q35.c | 4 +--
hw/i386/x86.c | 1 +
hw/rtc/mc146818rtc.c | 79 ++++++++++++++++++++++---------------------
hw/scsi/scsi-bus.c | 12 ++++++-
hw/scsi/scsi-disk.c | 3 ++
hw/vfio/Kconfig | 1 +
include/hw/i386/pc.h | 2 --
include/hw/i386/x86.h | 2 ++
qemu-deprecated.texi | 5 +++
scripts/get_maintainer.pl | 2 +-
target/i386/cpu.c | 4 +--
target/i386/machine.c | 4 +--
tests/qemu-iotests/051.pc.out | 6 ++--
17 files changed, 104 insertions(+), 59 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PULL 01/12] scripts: Detect git worktrees for get_maintainer.pl --git
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 02/12] microvm: fix memory leak in microvm_fix_kernel_cmdline Paolo Bonzini
` (12 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel; +Cc: Alexey Kardashevskiy
From: Alexey Kardashevskiy <aik@ozlabs.ru>
Recent git versions support worktrees where .git is not a directory but
a file with a path to the .git repository; however the get_maintainer.pl
script only recognises the .git directory, let's fix it.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Tested-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20191112034532.69079-1-aik@ozlabs.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
scripts/get_maintainer.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 71415e3..27991eb 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -81,7 +81,7 @@ my %VCS_cmds;
my %VCS_cmds_git = (
"execute_cmd" => \&git_execute_cmd,
- "available" => '(which("git") ne "") && (-d ".git")',
+ "available" => '(which("git") ne "") && (-e ".git")',
"find_signers_cmd" =>
"git log --no-color --follow --since=\$email_git_since " .
'--format="GitCommit: %H%n' .
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 02/12] microvm: fix memory leak in microvm_fix_kernel_cmdline
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
2019-11-19 16:08 ` [PULL 01/12] scripts: Detect git worktrees for get_maintainer.pl --git Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 03/12] target/i386: add PSCHANGE_NO bit for the ARCH_CAPABILITIES MSR Paolo Bonzini
` (11 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel; +Cc: Sergio Lopez
From: Sergio Lopez <slp@redhat.com>
In microvm_fix_kernel_cmdline(), fw_cfg_modify_string() is duplicating
cmdline instead of taking ownership of it. Free it afterwards to avoid
leaking it.
Reported-by: Coverity (CID 1407218)
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Sergio Lopez <slp@redhat.com>
Message-Id: <20191112163423.91884-1-slp@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/i386/microvm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
index 8aacd6c..def37e6 100644
--- a/hw/i386/microvm.c
+++ b/hw/i386/microvm.c
@@ -331,6 +331,8 @@ static void microvm_fix_kernel_cmdline(MachineState *machine)
fw_cfg_modify_i32(x86ms->fw_cfg, FW_CFG_CMDLINE_SIZE, strlen(cmdline) + 1);
fw_cfg_modify_string(x86ms->fw_cfg, FW_CFG_CMDLINE_DATA, cmdline);
+
+ g_free(cmdline);
}
static void microvm_machine_state_init(MachineState *machine)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 03/12] target/i386: add PSCHANGE_NO bit for the ARCH_CAPABILITIES MSR
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
2019-11-19 16:08 ` [PULL 01/12] scripts: Detect git worktrees for get_maintainer.pl --git Paolo Bonzini
2019-11-19 16:08 ` [PULL 02/12] microvm: fix memory leak in microvm_fix_kernel_cmdline Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 04/12] target/i386: Export TAA_NO bit to guests Paolo Bonzini
` (10 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel
This is required to disable ITLB multihit mitigations in nested
hypervisors.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
target/i386/cpu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index a624163..2f60df3 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -1204,7 +1204,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
.type = MSR_FEATURE_WORD,
.feat_names = {
"rdctl-no", "ibrs-all", "rsba", "skip-l1dfl-vmentry",
- "ssb-no", "mds-no", NULL, NULL,
+ "ssb-no", "mds-no", "pschange-mc-no", NULL,
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 04/12] target/i386: Export TAA_NO bit to guests
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (2 preceding siblings ...)
2019-11-19 16:08 ` [PULL 03/12] target/i386: add PSCHANGE_NO bit for the ARCH_CAPABILITIES MSR Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 05/12] hw/i386: Fix compiler warning when CONFIG_IDE_ISA is disabled Paolo Bonzini
` (9 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel; +Cc: Pawan Gupta
From: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
TSX Async Abort (TAA) is a side channel attack on internal buffers in
some Intel processors similar to Microachitectural Data Sampling (MDS).
Some future Intel processors will use the ARCH_CAP_TAA_NO bit in the
IA32_ARCH_CAPABILITIES MSR to report that they are not vulnerable to
TAA. Make this bit available to guests.
Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
target/i386/cpu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 2f60df3..296b491 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -1205,7 +1205,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
.feat_names = {
"rdctl-no", "ibrs-all", "rsba", "skip-l1dfl-vmentry",
"ssb-no", "mds-no", "pschange-mc-no", NULL,
- NULL, NULL, NULL, NULL,
+ "taa-no", NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 05/12] hw/i386: Fix compiler warning when CONFIG_IDE_ISA is disabled
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (3 preceding siblings ...)
2019-11-19 16:08 ` [PULL 04/12] target/i386: Export TAA_NO bit to guests Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 06/12] vfio: vfio-pci requires EDID Paolo Bonzini
` (8 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel; +Cc: Thomas Huth
From: Thomas Huth <thuth@redhat.com>
When CONFIG_IDE_ISA is disabled, compilation currently fails:
hw/i386/pc_piix.c: In function ‘pc_init1’:
hw/i386/pc_piix.c:81:9: error: unused variable ‘i’ [-Werror=unused-variable]
Move the variable declaration to the right code block to avoid
this problem.
Fixes: 4501d317b50e ("hw/i386/pc: Extract pc_i8259_create()")
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20191115145049.26868-1-thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/i386/pc_piix.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 2aefa3b..849ee12 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -78,7 +78,6 @@ static void pc_init1(MachineState *machine,
X86MachineState *x86ms = X86_MACHINE(machine);
MemoryRegion *system_memory = get_system_memory();
MemoryRegion *system_io = get_system_io();
- int i;
PCIBus *pci_bus;
ISABus *isa_bus;
PCII440FXState *i440fx_state;
@@ -253,7 +252,8 @@ static void pc_init1(MachineState *machine,
}
#ifdef CONFIG_IDE_ISA
else {
- for(i = 0; i < MAX_IDE_BUS; i++) {
+ int i;
+ for (i = 0; i < MAX_IDE_BUS; i++) {
ISADevice *dev;
char busname[] = "ide.0";
dev = isa_ide_init(isa_bus, ide_iobase[i], ide_iobase2[i],
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 06/12] vfio: vfio-pci requires EDID
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (4 preceding siblings ...)
2019-11-19 16:08 ` [PULL 05/12] hw/i386: Fix compiler warning when CONFIG_IDE_ISA is disabled Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 07/12] docs/microvm.rst: fix alignment in "Limitations" Paolo Bonzini
` (7 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel; +Cc: Alex Williamson
hw/vfio/display.c needs the EDID subsystem, select it.
Cc: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/vfio/Kconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/vfio/Kconfig b/hw/vfio/Kconfig
index 34da2a3..f0eaa75 100644
--- a/hw/vfio/Kconfig
+++ b/hw/vfio/Kconfig
@@ -6,6 +6,7 @@ config VFIO_PCI
bool
default y
select VFIO
+ select EDID
depends on LINUX && PCI
config VFIO_CCW
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 07/12] docs/microvm.rst: fix alignment in "Limitations"
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (5 preceding siblings ...)
2019-11-19 16:08 ` [PULL 06/12] vfio: vfio-pci requires EDID Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 08/12] docs/microvm.rst: add instructions for shutting down the guest Paolo Bonzini
` (6 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel; +Cc: Sergio Lopez
From: Sergio Lopez <slp@redhat.com>
Fix the alignment of the items in the "Limitations" section.
Signed-off-by: Sergio Lopez <slp@redhat.com>
Message-Id: <20191115161338.42864-2-slp@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
docs/microvm.rst | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/microvm.rst b/docs/microvm.rst
index aae811a..4cf8474 100644
--- a/docs/microvm.rst
+++ b/docs/microvm.rst
@@ -33,9 +33,9 @@ Limitations
Currently, microvm does *not* support the following features:
- - PCI-only devices.
- - Hotplug of any kind.
- - Live migration across QEMU versions.
+- PCI-only devices.
+- Hotplug of any kind.
+- Live migration across QEMU versions.
Using the microvm machine type
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 08/12] docs/microvm.rst: add instructions for shutting down the guest
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (6 preceding siblings ...)
2019-11-19 16:08 ` [PULL 07/12] docs/microvm.rst: fix alignment in "Limitations" Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 09/12] hw/i386: Move save_tsc_khz from PCMachineClass to X86MachineClass Paolo Bonzini
` (5 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel; +Cc: Sergio Lopez
From: Sergio Lopez <slp@redhat.com>
Add a new section explaining the particularities of the microvm
machine type for triggering a guest-initiated shut down.
Signed-off-by: Sergio Lopez <slp@redhat.com>
Message-Id: <20191115161338.42864-3-slp@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
docs/microvm.rst | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/docs/microvm.rst b/docs/microvm.rst
index 4cf8474..fcf41fc 100644
--- a/docs/microvm.rst
+++ b/docs/microvm.rst
@@ -106,3 +106,24 @@ disabled::
-device virtio-blk-device,drive=test \
-netdev tap,id=tap0,script=no,downscript=no \
-device virtio-net-device,netdev=tap0
+
+
+Triggering a guest-initiated shut down
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+As the microvm machine type includes just a small set of system
+devices, some x86 mechanisms for rebooting or shutting down the
+system, like sending a key sequence to the keyboard or writing to an
+ACPI register, doesn't have any effect in the VM.
+
+The recommended way to trigger a guest-initiated shut down is by
+generating a ``triple-fault``, which will cause the VM to initiate a
+reboot. Additionally, if the ``-no-reboot`` argument is present in the
+command line, QEMU will detect this event and terminate its own
+execution gracefully.
+
+Linux does support this mechanism, but by default will only be used
+after other options have been tried and failed, causing the reboot to
+be delayed by a small number of seconds. It's possible to instruct it
+to try the triple-fault mechanism first, by adding ``reboot=t`` to the
+kernel's command line.
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 09/12] hw/i386: Move save_tsc_khz from PCMachineClass to X86MachineClass
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (7 preceding siblings ...)
2019-11-19 16:08 ` [PULL 08/12] docs/microvm.rst: add instructions for shutting down the guest Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 10/12] scsi: deprecate scsi-disk Paolo Bonzini
` (4 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel
From: Liam Merwick <liam.merwick@oracle.com>
Attempting to migrate a VM using the microvm machine class results in the source
QEMU aborting with the following message/backtrace:
target/i386/machine.c:955:tsc_khz_needed: Object 0x555556608fa0 is not an
instance of type generic-pc-machine
abort()
object_class_dynamic_cast_assert()
vmstate_save_state_v()
vmstate_save_state()
vmstate_save()
qemu_savevm_state_complete_precopy()
migration_thread()
migration_thread()
migration_thread()
qemu_thread_start()
start_thread()
clone()
The access to the machine class returned by MACHINE_GET_CLASS() in
tsc_khz_needed() is crashing as it is trying to dereference a different
type of machine class object (TYPE_PC_MACHINE) to that of this microVM.
This can be resolved by extending the changes in the following commit
f0bb276bf8d5 ("hw/i386: split PCMachineState deriving X86MachineState from it")
and moving the save_tsc_khz field in PCMachineClass to X86MachineClass.
Fixes: f0bb276bf8d5 ("hw/i386: split PCMachineState deriving X86MachineState from it")
Signed-off-by: Liam Merwick <liam.merwick@oracle.com>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Message-Id: <1574075605-25215-1-git-send-email-liam.merwick@oracle.com>
Reviewed-by: Sergio Lopez <slp@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/i386/pc.c | 1 -
hw/i386/pc_piix.c | 4 ++--
hw/i386/pc_q35.c | 4 ++--
hw/i386/x86.c | 1 +
include/hw/i386/pc.h | 2 --
include/hw/i386/x86.h | 2 ++
target/i386/machine.c | 4 ++--
7 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 96715f8..ac08e63 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -2195,7 +2195,6 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
/* BIOS ACPI tables: 128K. Other BIOS datastructures: less than 4K reported
* to be used at the moment, 32K should be enough for a while. */
pcmc->acpi_data_size = 0x20000 + 0x8000;
- pcmc->save_tsc_khz = true;
pcmc->linuxboot_dma_enabled = true;
pcmc->pvh_enabled = true;
assert(!mc->get_hotplug_handler);
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 849ee12..1bd70d1 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -567,10 +567,10 @@ DEFINE_I440FX_MACHINE(v2_6, "pc-i440fx-2.6", NULL,
static void pc_i440fx_2_5_machine_options(MachineClass *m)
{
- PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
+ X86MachineClass *x86mc = X86_MACHINE_CLASS(m);
pc_i440fx_2_6_machine_options(m);
- pcmc->save_tsc_khz = false;
+ x86mc->save_tsc_khz = false;
m->legacy_fw_cfg_order = 1;
compat_props_add(m->compat_props, hw_compat_2_5, hw_compat_2_5_len);
compat_props_add(m->compat_props, pc_compat_2_5, pc_compat_2_5_len);
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index d51f524..385e5cf 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -508,10 +508,10 @@ DEFINE_Q35_MACHINE(v2_6, "pc-q35-2.6", NULL,
static void pc_q35_2_5_machine_options(MachineClass *m)
{
- PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
+ X86MachineClass *x86mc = X86_MACHINE_CLASS(m);
pc_q35_2_6_machine_options(m);
- pcmc->save_tsc_khz = false;
+ x86mc->save_tsc_khz = false;
m->legacy_fw_cfg_order = 1;
compat_props_add(m->compat_props, hw_compat_2_5, hw_compat_2_5_len);
compat_props_add(m->compat_props, pc_compat_2_5, pc_compat_2_5_len);
diff --git a/hw/i386/x86.c b/hw/i386/x86.c
index fd84b23..394edc2 100644
--- a/hw/i386/x86.c
+++ b/hw/i386/x86.c
@@ -763,6 +763,7 @@ static void x86_machine_class_init(ObjectClass *oc, void *data)
mc->get_default_cpu_node_id = x86_get_default_cpu_node_id;
mc->possible_cpu_arch_ids = x86_possible_cpu_arch_ids;
x86mc->compat_apic_id_mode = false;
+ x86mc->save_tsc_khz = true;
nc->nmi_monitor_handler = x86_nmi;
object_class_property_add(oc, X86_MACHINE_MAX_RAM_BELOW_4G, "size",
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index e6fa841..1f86eba 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -116,8 +116,6 @@ typedef struct PCMachineClass {
bool enforce_aligned_dimm;
bool broken_reserved_end;
- /* TSC rate migration: */
- bool save_tsc_khz;
/* generate legacy CPU hotplug AML */
bool legacy_cpu_hotplug;
diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h
index 82d09fd..4b84917 100644
--- a/include/hw/i386/x86.h
+++ b/include/hw/i386/x86.h
@@ -30,6 +30,8 @@ typedef struct {
/*< public >*/
+ /* TSC rate migration: */
+ bool save_tsc_khz;
/* Enables contiguous-apic-ID mode */
bool compat_apic_id_mode;
} X86MachineClass;
diff --git a/target/i386/machine.c b/target/i386/machine.c
index 6481f84..7bdeb78 100644
--- a/target/i386/machine.c
+++ b/target/i386/machine.c
@@ -988,8 +988,8 @@ static bool tsc_khz_needed(void *opaque)
X86CPU *cpu = opaque;
CPUX86State *env = &cpu->env;
MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
- PCMachineClass *pcmc = PC_MACHINE_CLASS(mc);
- return env->tsc_khz && pcmc->save_tsc_khz;
+ X86MachineClass *x86mc = X86_MACHINE_CLASS(mc);
+ return env->tsc_khz && x86mc->save_tsc_khz;
}
static const VMStateDescription vmstate_tsc_khz = {
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 10/12] scsi: deprecate scsi-disk
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (8 preceding siblings ...)
2019-11-19 16:08 ` [PULL 09/12] hw/i386: Move save_tsc_khz from PCMachineClass to X86MachineClass Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 11/12] Revert "mc146818rtc: fix timer interrupt reinjection" Paolo Bonzini
` (3 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel
It's an old compatibility shim that just delegates to scsi-cd or scsi-hd.
Just like ide-drive, we don't need this.
Acked-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/scsi/scsi-bus.c | 12 +++++++++++-
hw/scsi/scsi-disk.c | 3 +++
qemu-deprecated.texi | 5 +++++
tests/qemu-iotests/051.pc.out | 6 ++++--
4 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c
index 359d50d..ad0e7f6 100644
--- a/hw/scsi/scsi-bus.c
+++ b/hw/scsi/scsi-bus.c
@@ -254,8 +254,18 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, BlockBackend *blk,
char *name;
DeviceState *dev;
Error *err = NULL;
+ DriveInfo *dinfo;
- driver = blk_is_sg(blk) ? "scsi-generic" : "scsi-disk";
+ if (blk_is_sg(blk)) {
+ driver = "scsi-generic";
+ } else {
+ dinfo = blk_legacy_dinfo(blk);
+ if (dinfo && dinfo->media_cd) {
+ driver = "scsi-cd";
+ } else {
+ driver = "scsi-hd";
+ }
+ }
dev = qdev_create(&bus->qbus, driver);
name = g_strdup_printf("legacy[%d]", unit);
object_property_add_child(OBJECT(bus), name, OBJECT(dev), NULL);
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 07fb5eb..e44c61e 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -2481,6 +2481,9 @@ static void scsi_disk_realize(SCSIDevice *dev, Error **errp)
DriveInfo *dinfo;
Error *local_err = NULL;
+ warn_report("'scsi-disk' is deprecated, "
+ "please use 'scsi-hd' or 'scsi-cd' instead");
+
if (!dev->conf.blk) {
scsi_realize(dev, &local_err);
assert(local_err);
diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
index 296bfc9..4b4b742 100644
--- a/qemu-deprecated.texi
+++ b/qemu-deprecated.texi
@@ -259,6 +259,11 @@ their usecases.
The 'ide-drive' device is deprecated. Users should use 'ide-hd' or
'ide-cd' as appropriate to get an IDE hard disk or CD-ROM as needed.
+@subsection scsi-disk (since 4.2)
+
+The 'scsi-disk' device is deprecated. Users should use 'scsi-hd' or
+'scsi-cd' as appropriate to get a SCSI hard disk or CD-ROM as needed.
+
@section System emulator machines
@subsection pc-0.12, pc-0.13, pc-0.14 and pc-0.15 (since 4.0)
diff --git a/tests/qemu-iotests/051.pc.out b/tests/qemu-iotests/051.pc.out
index 34849dd..0ea80d3 100644
--- a/tests/qemu-iotests/051.pc.out
+++ b/tests/qemu-iotests/051.pc.out
@@ -167,7 +167,8 @@ QEMU X.Y.Z monitor - type 'help' for more information
Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-disk,drive=disk
QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) QEMU_PROG: -device scsi-disk,drive=disk: Device needs media, but drive is empty
+(qemu) QEMU_PROG: -device scsi-disk,drive=disk: warning: 'scsi-disk' is deprecated, please use 'scsi-hd' or 'scsi-cd' instead
+QEMU_PROG: -device scsi-disk,drive=disk: Device needs media, but drive is empty
Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-hd,drive=disk
QEMU X.Y.Z monitor - type 'help' for more information
@@ -238,7 +239,8 @@ QEMU X.Y.Z monitor - type 'help' for more information
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-disk,drive=disk
QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) quit
+(qemu) QEMU_PROG: -device scsi-disk,drive=disk: warning: 'scsi-disk' is deprecated, please use 'scsi-hd' or 'scsi-cd' instead
+quit
Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-hd,drive=disk
QEMU X.Y.Z monitor - type 'help' for more information
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 11/12] Revert "mc146818rtc: fix timer interrupt reinjection"
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (9 preceding siblings ...)
2019-11-19 16:08 ` [PULL 10/12] scsi: deprecate scsi-disk Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 16:08 ` [PULL 12/12] mc146818rtc: fix timer interrupt reinjection again Paolo Bonzini
` (2 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel
This reverts commit b429de730174b388ea5760e3debb0d542ea3c261, except
that the reversal of the outer "if (period)" is left in.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/rtc/mc146818rtc.c | 67 ++++++++++++++++++++++++++--------------------------
1 file changed, 33 insertions(+), 34 deletions(-)
diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c
index ee6bf82..9869dc5 100644
--- a/hw/rtc/mc146818rtc.c
+++ b/hw/rtc/mc146818rtc.c
@@ -174,7 +174,6 @@ periodic_timer_update(RTCState *s, int64_t current_time, uint32_t old_period)
int64_t cur_clock, next_irq_clock, lost_clock = 0;
period = rtc_periodic_clock_ticks(s);
-
if (!period) {
s->irq_coalesced = 0;
timer_del(s->periodic_timer);
@@ -197,42 +196,42 @@ periodic_timer_update(RTCState *s, int64_t current_time, uint32_t old_period)
last_periodic_clock = next_periodic_clock - old_period;
lost_clock = cur_clock - last_periodic_clock;
assert(lost_clock >= 0);
+ }
+ /*
+ * s->irq_coalesced can change for two reasons:
+ *
+ * a) if one or more periodic timer interrupts have been lost,
+ * lost_clock will be more that a period.
+ *
+ * b) when the period may be reconfigured, we expect the OS to
+ * treat delayed tick as the new period. So, when switching
+ * from a shorter to a longer period, scale down the missing,
+ * because the OS will treat past delayed ticks as longer
+ * (leftovers are put back into lost_clock). When switching
+ * to a shorter period, scale up the missing ticks since the
+ * OS handler will treat past delayed ticks as shorter.
+ */
+ if (s->lost_tick_policy == LOST_TICK_POLICY_SLEW) {
+ uint32_t old_irq_coalesced = s->irq_coalesced;
+
+ s->period = period;
+ lost_clock += old_irq_coalesced * old_period;
+ s->irq_coalesced = lost_clock / s->period;
+ lost_clock %= s->period;
+ if (old_irq_coalesced != s->irq_coalesced ||
+ old_period != s->period) {
+ DPRINTF_C("cmos: coalesced irqs scaled from %d to %d, "
+ "period scaled from %d to %d\n", old_irq_coalesced,
+ s->irq_coalesced, old_period, s->period);
+ rtc_coalesced_timer_update(s);
+ }
+ } else {
/*
- * s->irq_coalesced can change for two reasons:
- *
- * a) if one or more periodic timer interrupts have been lost,
- * lost_clock will be more that a period.
- *
- * b) when the period may be reconfigured, we expect the OS to
- * treat delayed tick as the new period. So, when switching
- * from a shorter to a longer period, scale down the missing,
- * because the OS will treat past delayed ticks as longer
- * (leftovers are put back into lost_clock). When switching
- * to a shorter period, scale up the missing ticks since the
- * OS handler will treat past delayed ticks as shorter.
+ * no way to compensate the interrupt if LOST_TICK_POLICY_SLEW
+ * is not used, we should make the time progress anyway.
*/
- if (s->lost_tick_policy == LOST_TICK_POLICY_SLEW) {
- uint32_t old_irq_coalesced = s->irq_coalesced;
-
- s->period = period;
- lost_clock += old_irq_coalesced * old_period;
- s->irq_coalesced = lost_clock / s->period;
- lost_clock %= s->period;
- if (old_irq_coalesced != s->irq_coalesced ||
- old_period != s->period) {
- DPRINTF_C("cmos: coalesced irqs scaled from %d to %d, "
- "period scaled from %d to %d\n", old_irq_coalesced,
- s->irq_coalesced, old_period, s->period);
- rtc_coalesced_timer_update(s);
- }
- } else {
- /*
- * no way to compensate the interrupt if LOST_TICK_POLICY_SLEW
- * is not used, we should make the time progress anyway.
- */
- lost_clock = MIN(lost_clock, period);
- }
+ lost_clock = MIN(lost_clock, period);
}
assert(lost_clock >= 0 && lost_clock <= period);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PULL 12/12] mc146818rtc: fix timer interrupt reinjection again
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (10 preceding siblings ...)
2019-11-19 16:08 ` [PULL 11/12] Revert "mc146818rtc: fix timer interrupt reinjection" Paolo Bonzini
@ 2019-11-19 16:08 ` Paolo Bonzini
2019-11-19 18:30 ` [PULL 00/12] Misc patches for QEMU 4.2-rc Peter Maydell
2019-11-20 2:00 ` no-reply
13 siblings, 0 replies; 15+ messages in thread
From: Paolo Bonzini @ 2019-11-19 16:08 UTC (permalink / raw)
To: qemu-devel
Commit 369b41359af46bded5799c9ef8be2b641d92e043 broke timer interrupt
reinjection when there is no period change by the guest. In that
case, old_period is 0, which ends up zeroing irq_coalesced (counter of
reinjected interrupts).
The consequence is Windows 7 is unable to synchronize time via NTP.
Easily reproducible by playing a fullscreen video with cirrus and VNC.
Fix by passing s->period when periodic_timer_update is called due to
expiration of the timer. With this change, old_period == 0 only
means that the periodic timer was off.
Reported-by: Marcelo Tosatti <mtosatti@redhat.com>
Co-developed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/rtc/mc146818rtc.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c
index 9869dc5..74ae74b 100644
--- a/hw/rtc/mc146818rtc.c
+++ b/hw/rtc/mc146818rtc.c
@@ -168,12 +168,14 @@ static uint32_t rtc_periodic_clock_ticks(RTCState *s)
* is just due to period adjustment.
*/
static void
-periodic_timer_update(RTCState *s, int64_t current_time, uint32_t old_period)
+periodic_timer_update(RTCState *s, int64_t current_time, uint32_t old_period, bool period_change)
{
uint32_t period;
int64_t cur_clock, next_irq_clock, lost_clock = 0;
period = rtc_periodic_clock_ticks(s);
+ s->period = period;
+
if (!period) {
s->irq_coalesced = 0;
timer_del(s->periodic_timer);
@@ -188,7 +190,7 @@ periodic_timer_update(RTCState *s, int64_t current_time, uint32_t old_period)
* if the periodic timer's update is due to period re-configuration,
* we should count the clock since last interrupt.
*/
- if (old_period) {
+ if (old_period && period_change) {
int64_t last_periodic_clock, next_periodic_clock;
next_periodic_clock = muldiv64(s->next_periodic_time,
@@ -215,7 +217,6 @@ periodic_timer_update(RTCState *s, int64_t current_time, uint32_t old_period)
if (s->lost_tick_policy == LOST_TICK_POLICY_SLEW) {
uint32_t old_irq_coalesced = s->irq_coalesced;
- s->period = period;
lost_clock += old_irq_coalesced * old_period;
s->irq_coalesced = lost_clock / s->period;
lost_clock %= s->period;
@@ -245,7 +246,7 @@ static void rtc_periodic_timer(void *opaque)
{
RTCState *s = opaque;
- periodic_timer_update(s, s->next_periodic_time, 0);
+ periodic_timer_update(s, s->next_periodic_time, s->period, false);
s->cmos_data[RTC_REG_C] |= REG_C_PF;
if (s->cmos_data[RTC_REG_B] & REG_B_PIE) {
s->cmos_data[RTC_REG_C] |= REG_C_IRQF;
@@ -511,7 +512,7 @@ static void cmos_ioport_write(void *opaque, hwaddr addr,
if (update_periodic_timer) {
periodic_timer_update(s, qemu_clock_get_ns(rtc_clock),
- old_period);
+ old_period, true);
}
check_update_timer(s);
@@ -550,7 +551,7 @@ static void cmos_ioport_write(void *opaque, hwaddr addr,
if (update_periodic_timer) {
periodic_timer_update(s, qemu_clock_get_ns(rtc_clock),
- old_period);
+ old_period, true);
}
check_update_timer(s);
@@ -794,6 +795,7 @@ static int rtc_post_load(void *opaque, int version_id)
s->offset = 0;
check_update_timer(s);
}
+ s->period = rtc_periodic_clock_ticks(s);
/* The periodic timer is deterministic in record/replay mode,
* so there is no need to update it after loading the vmstate.
@@ -803,7 +805,7 @@ static int rtc_post_load(void *opaque, int version_id)
uint64_t now = qemu_clock_get_ns(rtc_clock);
if (now < s->next_periodic_time ||
now > (s->next_periodic_time + get_max_clock_jump())) {
- periodic_timer_update(s, qemu_clock_get_ns(rtc_clock), 0);
+ periodic_timer_update(s, qemu_clock_get_ns(rtc_clock), s->period, false);
}
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PULL 00/12] Misc patches for QEMU 4.2-rc
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (11 preceding siblings ...)
2019-11-19 16:08 ` [PULL 12/12] mc146818rtc: fix timer interrupt reinjection again Paolo Bonzini
@ 2019-11-19 18:30 ` Peter Maydell
2019-11-20 2:00 ` no-reply
13 siblings, 0 replies; 15+ messages in thread
From: Peter Maydell @ 2019-11-19 18:30 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: QEMU Developers
On Tue, 19 Nov 2019 at 16:10, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 369e8f5bbd8a5301bde6fae22b93fe9288c552a5:
>
> buildfix: update texinfo menu (2019-11-18 10:33:29 +0000)
>
> are available in the git repository at:
>
> git://github.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to 7a3e29b12f5afe0106a5713bb4db6e23dc66ef91:
>
> mc146818rtc: fix timer interrupt reinjection again (2019-11-19 10:02:13 +0100)
>
> ----------------------------------------------------------------
> * microvm docs and fixes (Sergio, Liam)
> * New processor features for Intel errata (myself, Pawan)
> * Kconfig fixes (myself, Thomas)
> * Revert mc146818rtc change (myself)
> * Deprecate scsi-disk (myself)
> * RTC fix (myself, Marcelo)
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/4.2
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PULL 00/12] Misc patches for QEMU 4.2-rc
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
` (12 preceding siblings ...)
2019-11-19 18:30 ` [PULL 00/12] Misc patches for QEMU 4.2-rc Peter Maydell
@ 2019-11-20 2:00 ` no-reply
13 siblings, 0 replies; 15+ messages in thread
From: no-reply @ 2019-11-20 2:00 UTC (permalink / raw)
To: pbonzini; +Cc: qemu-devel
Patchew URL: https://patchew.org/QEMU/1574179728-35535-1-git-send-email-pbonzini@redhat.com/
Hi,
This series seems to have some coding style problems. See output below for
more information:
Subject: [PULL 00/12] Misc patches for QEMU 4.2-rc
Type: series
Message-id: 1574179728-35535-1-git-send-email-pbonzini@redhat.com
=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===
Switched to a new branch 'test'
b13136f mc146818rtc: fix timer interrupt reinjection again
c8aba23 Revert "mc146818rtc: fix timer interrupt reinjection"
e8adcab scsi: deprecate scsi-disk
42092c5 hw/i386: Move save_tsc_khz from PCMachineClass to X86MachineClass
06c7471 docs/microvm.rst: add instructions for shutting down the guest
13c0c9d docs/microvm.rst: fix alignment in "Limitations"
02f7826 hw/i386: Fix compiler warning when CONFIG_IDE_ISA is disabled
9062194 target/i386: Export TAA_NO bit to guests
1950075 target/i386: add PSCHANGE_NO bit for the ARCH_CAPABILITIES MSR
885825e microvm: fix memory leak in microvm_fix_kernel_cmdline
7efdfb1 scripts: Detect git worktrees for get_maintainer.pl --git
=== OUTPUT BEGIN ===
1/11 Checking commit 7efdfb18179f (scripts: Detect git worktrees for get_maintainer.pl --git)
2/11 Checking commit 885825e5f343 (microvm: fix memory leak in microvm_fix_kernel_cmdline)
3/11 Checking commit 19500750d17c (target/i386: add PSCHANGE_NO bit for the ARCH_CAPABILITIES MSR)
4/11 Checking commit 90621948f8f4 (target/i386: Export TAA_NO bit to guests)
5/11 Checking commit 02f7826045a6 (hw/i386: Fix compiler warning when CONFIG_IDE_ISA is disabled)
6/11 Checking commit 13c0c9d930a3 (docs/microvm.rst: fix alignment in "Limitations")
7/11 Checking commit 06c747141471 (docs/microvm.rst: add instructions for shutting down the guest)
8/11 Checking commit 42092c5e828c (hw/i386: Move save_tsc_khz from PCMachineClass to X86MachineClass)
9/11 Checking commit e8adcab85cc4 (scsi: deprecate scsi-disk)
10/11 Checking commit c8aba2331468 (Revert "mc146818rtc: fix timer interrupt reinjection")
11/11 Checking commit b13136ffee50 (mc146818rtc: fix timer interrupt reinjection again)
ERROR: line over 90 characters
#33: FILE: hw/rtc/mc146818rtc.c:171:
+periodic_timer_update(RTCState *s, int64_t current_time, uint32_t old_period, bool period_change)
WARNING: line over 80 characters
#101: FILE: hw/rtc/mc146818rtc.c:808:
+ periodic_timer_update(s, qemu_clock_get_ns(rtc_clock), s->period, false);
total: 1 errors, 1 warnings, 69 lines checked
Patch 11/11 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===
Test command exited with code: 1
The full log is available at
http://patchew.org/logs/1574179728-35535-1-git-send-email-pbonzini@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2019-11-20 2:01 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-19 16:08 [PULL 00/12] Misc patches for QEMU 4.2-rc Paolo Bonzini
2019-11-19 16:08 ` [PULL 01/12] scripts: Detect git worktrees for get_maintainer.pl --git Paolo Bonzini
2019-11-19 16:08 ` [PULL 02/12] microvm: fix memory leak in microvm_fix_kernel_cmdline Paolo Bonzini
2019-11-19 16:08 ` [PULL 03/12] target/i386: add PSCHANGE_NO bit for the ARCH_CAPABILITIES MSR Paolo Bonzini
2019-11-19 16:08 ` [PULL 04/12] target/i386: Export TAA_NO bit to guests Paolo Bonzini
2019-11-19 16:08 ` [PULL 05/12] hw/i386: Fix compiler warning when CONFIG_IDE_ISA is disabled Paolo Bonzini
2019-11-19 16:08 ` [PULL 06/12] vfio: vfio-pci requires EDID Paolo Bonzini
2019-11-19 16:08 ` [PULL 07/12] docs/microvm.rst: fix alignment in "Limitations" Paolo Bonzini
2019-11-19 16:08 ` [PULL 08/12] docs/microvm.rst: add instructions for shutting down the guest Paolo Bonzini
2019-11-19 16:08 ` [PULL 09/12] hw/i386: Move save_tsc_khz from PCMachineClass to X86MachineClass Paolo Bonzini
2019-11-19 16:08 ` [PULL 10/12] scsi: deprecate scsi-disk Paolo Bonzini
2019-11-19 16:08 ` [PULL 11/12] Revert "mc146818rtc: fix timer interrupt reinjection" Paolo Bonzini
2019-11-19 16:08 ` [PULL 12/12] mc146818rtc: fix timer interrupt reinjection again Paolo Bonzini
2019-11-19 18:30 ` [PULL 00/12] Misc patches for QEMU 4.2-rc Peter Maydell
2019-11-20 2:00 ` no-reply
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.