qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 732845: target/i386: log MCE guest and host a


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 732845: target/i386: log MCE guest and host addresses
Date: Mon, 28 Oct 2019 06:31:24 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 73284563dce268bade300370a8b20728d3866afe
      
https://github.com/qemu/qemu/commit/73284563dce268bade300370a8b20728d3866afe
  Author: Mario Smarduch <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M target/i386/kvm.c

  Log Message:
  -----------
  target/i386: log MCE guest and host addresses

Patch logs MCE AO, AR messages injected to guest or taken by QEMU itself.
We print the QEMU address for guest MCEs, helps on hypervisors that have
another source of MCE logging like mce log, and when they go missing.

For example we found these QEMU logs:

September 26th 2019, 17:36:02.309        Droplet-153258224: Guest MCE Memory 
Error at qemu addr 0x7f8ce14f5000 and guest 3d6f5000 addr of type BUS_MCEERR_AR 
injected   qemu-system-x86_64      amsN    ams3nodeNNNN

September 27th 2019, 06:25:03.234        Droplet-153258224: Guest MCE Memory 
Error at qemu addr 0x7f8ce14f5000 and guest 3d6f5000 addr of type BUS_MCEERR_AR 
injected   qemu-system-x86_64      amsN    ams3nodeNNNN

The first log had a corresponding mce log entry, the second didnt (logging
thresholds) we can infer from second entry same PA and mce type.

Signed-off-by: Mario Smarduch <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: b429de730174b388ea5760e3debb0d542ea3c261
      
https://github.com/qemu/qemu/commit/b429de730174b388ea5760e3debb0d542ea3c261
  Author: Marcelo Tosatti <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/timer/mc146818rtc.c

  Log Message:
  -----------
  mc146818rtc: fix timer interrupt reinjection

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 not updating s->irq_coalesced when old_period is 0.

V2: reorganize code (Paolo Bonzini)

Signed-off-by: Marcelo Tosatti <address@hidden>

Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: f1733749709b2f6935493e8183afe1ce6c80d52d
      
https://github.com/qemu/qemu/commit/f1733749709b2f6935493e8183afe1ce6c80d52d
  Author: Alexander Shopov <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M po/bg.po

  Log Message:
  -----------
  Updated Bulgarian translation (19) - 4.1.0

Signed-off-by: Alexander Shopov <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 30d6ff662d0411fcb98a577e58582690fc2c513c
      
https://github.com/qemu/qemu/commit/30d6ff662d0411fcb98a577e58582690fc2c513c
  Author: Vitaly Kuznetsov <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M docs/hyperv.txt
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/hyperv-proto.h
    M target/i386/kvm.c

  Log Message:
  -----------
  i386/kvm: add NoNonArchitecturalCoreSharing Hyper-V enlightenment

Hyper-V TLFS specifies this enlightenment as:
"NoNonArchitecturalCoreSharing - Indicates that a virtual processor will never
share a physical core with another virtual processor, except for virtual
processors that are reported as sibling SMT threads. This can be used as an
optimization to avoid the performance overhead of STIBP".

However, STIBP is not the only implication. It was found that Hyper-V on
KVM doesn't pass MD_CLEAR bit to its guests if it doesn't see
NoNonArchitecturalCoreSharing bit.

KVM reports NoNonArchitecturalCoreSharing in KVM_GET_SUPPORTED_HV_CPUID to
indicate that SMT on the host is impossible (not supported of forcefully
disabled).

Implement NoNonArchitecturalCoreSharing support in QEMU as tristate:
'off' - the feature is disabled (default)
'on' - the feature is enabled. This is only safe if vCPUS are properly
 pinned and correct topology is exposed. As CPU pinning is done outside
 of QEMU the enablement decision will be made on a higher level.
'auto' - copy KVM setting. As during live migration SMT settings on the
source and destination host may differ this requires us to add a migration
blocker.

Signed-off-by: Vitaly Kuznetsov <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 372a87a1d9f611cedeff2f679fe8da219f0b938f
      
https://github.com/qemu/qemu/commit/372a87a1d9f611cedeff2f679fe8da219f0b938f
  Author: Thomas Huth <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/misc/tmp421.c
    M util/main-loop.c
    M util/systemd.c

  Log Message:
  -----------
  Do not use %m in common code to print error messages

The %m format specifier is an extension from glibc - and when compiling
QEMU for NetBSD, the compiler correctly complains, e.g.:

/home/qemu/qemu-test.ELjfrQ/src/util/main-loop.c: In function 'sigfd_handler':
/home/qemu/qemu-test.ELjfrQ/src/util/main-loop.c:64:13: warning: %m is only
 allowed in syslog(3) like functions [-Wformat=]
             printf("read from sigfd returned %zd: %m\n", len);
             ^
Let's use g_strerror() here instead, which is an easy-to-use wrapper
around the thread-safe strerror_r() function.

While we're at it, also convert the "printf()" in main-loop.c into
the preferred "error_report()".

Signed-off-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 7320c8b4ae610ad0b2faa3b049d8312b26f31518
      
https://github.com/qemu/qemu/commit/7320c8b4ae610ad0b2faa3b049d8312b26f31518
  Author: Paolo Bonzini <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/mem/Makefile.objs

  Log Message:
  -----------
  memory-device: simplify Makefile.objs conditions

hw/mem/ is only included if CONFIG_MEM_DEVICE is true, so we need not
specify the condition again in hw/mem/Makefile.objs.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: bca964bcea65e69895ff7200ca0b5ddd01b87d24
      
https://github.com/qemu/qemu/commit/bca964bcea65e69895ff7200ca0b5ddd01b87d24
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/virtio/virtio-mmio.c
    A include/hw/virtio/virtio-mmio.h

  Log Message:
  -----------
  hw/virtio: Factorize virtio-mmio headers

Put QOM and main struct definition in a separate header file, so it
can be accessed from other components.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: 81ef68e44c84377fe66e0b27626f2f562f558a6d
      
https://github.com/qemu/qemu/commit/81ef68e44c84377fe66e0b27626f2f562f558a6d
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/pc_sysfw.c
    M include/hw/i386/pc.h

  Log Message:
  -----------
  hw/i386/pc: rename functions shared with non-PC machines

The following functions are named *pc* but are not PC-machine specific
but generic to the X86 architecture, rename them:

  load_linux                 -> x86_load_linux
  pc_new_cpu                 -> x86_new_cpu
  pc_cpus_init               -> x86_cpus_init
  pc_cpu_index_to_props      -> x86_cpu_index_to_props
  pc_get_default_cpu_node_id -> x86_get_default_cpu_node_id
  pc_possible_cpu_arch_ids   -> x86_possible_cpu_arch_ids
  old_pc_system_rom_init     -> x86_system_rom_init

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Stefano Garzarella <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: 62a188546ff9dec8020776c04a728ff62d2b4aeb
      
https://github.com/qemu/qemu/commit/62a188546ff9dec8020776c04a728ff62d2b4aeb
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/i386/pc.c

  Log Message:
  -----------
  hw/i386/pc: fix code style issues on functions that will be moved out

Fix code style issues detected by checkpatch.pl on functions that will
be moved out to x86.c.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>


  Commit: 133ef074bd88957c0ed5b38d4489111889acf915
      
https://github.com/qemu/qemu/commit/133ef074bd88957c0ed5b38d4489111889acf915
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/i386/pc.c

  Log Message:
  -----------
  hw/i386/pc: replace use of strtol with qemu_strtoui in x86_load_linux()

Follow checkpatch.pl recommendation and replace the use of strtol with
qemu_strtoui in x86_load_linux().

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>


  Commit: 350f5233d755cb00e62ccadc7635435ac3238aa6
      
https://github.com/qemu/qemu/commit/350f5233d755cb00e62ccadc7635435ac3238aa6
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/i386/pc.c

  Log Message:
  -----------
  hw/i386/pc: avoid an assignment in if condition in x86_load_linux()

Follow checkpatch.pl recommendation and avoid an assignment in if
condition in x86_load_linux().

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 86a9a7916b6b69e429f078dd9c89c2907ff43308
      
https://github.com/qemu/qemu/commit/86a9a7916b6b69e429f078dd9c89c2907ff43308
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/i386/pc.c

  Log Message:
  -----------
  hw/i386/pc: remove commented out code from x86_load_linux()

Follow checkpatch.pl recommendation and remove commented out code from
x86_load_linux().

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 549e984e67d8b3ea868be4ba935cecb9c1e753dc
      
https://github.com/qemu/qemu/commit/549e984e67d8b3ea868be4ba935cecb9c1e753dc
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/i386/Makefile.objs
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/pc_sysfw.c
    A hw/i386/x86.c
    M include/hw/i386/pc.h
    A include/hw/i386/x86.h

  Log Message:
  -----------
  hw/i386/pc: move shared x86 functions to x86.c and export them

Move x86 functions that will be shared between PC and non-PC machine
types to x86.c, along with their helpers.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Stefano Garzarella <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: f0bb276bf8d5b3df57697357b802ca76e4cdf05f
      
https://github.com/qemu/qemu/commit/f0bb276bf8d5b3df57697357b802ca76e4cdf05f
  Author: Paolo Bonzini <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/acpi/cpu_hotplug.c
    M hw/i386/acpi-build.c
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/x86.c
    M hw/i386/xen/xen-hvm.c
    M hw/intc/ioapic.c
    M include/hw/i386/pc.h
    M include/hw/i386/x86.h

  Log Message:
  -----------
  hw/i386: split PCMachineState deriving X86MachineState from it

Split up PCMachineState and PCMachineClass and derive X86MachineState
and X86MachineClass from them. This allows sharing code with non-PC
x86 machine types.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: 703a548aa9f148186ed8647092e8645e5a85f373
      
https://github.com/qemu/qemu/commit/703a548aa9f148186ed8647092e8645e5a85f373
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/x86.c
    M include/hw/i386/x86.h

  Log Message:
  -----------
  hw/i386: make x86.c independent from PCMachineState

As a last step into splitting PCMachineState and deriving
X86MachineState from it, make the functions previously extracted from
pc.c to x86.c independent from PCMachineState, using X86MachineState
instead.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: e5f6aa319f7636168469b2c797249680fa5e0413
      
https://github.com/qemu/qemu/commit/e5f6aa319f7636168469b2c797249680fa5e0413
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/nvram/fw_cfg.c
    M include/hw/nvram/fw_cfg.h

  Log Message:
  -----------
  fw_cfg: add "modify" functions for all types

This allows to alter the contents of an already added item.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>


  Commit: 78cafff81088492fe70e12b3bded219096031f7c
      
https://github.com/qemu/qemu/commit/78cafff81088492fe70e12b3bded219096031f7c
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M hw/intc/apic.c

  Log Message:
  -----------
  hw/intc/apic: reject pic ints if isa_pic == NULL

In apic_accept_pic_intr(), reject PIC interruptions if a i8259 PIC has
not been instantiated (isa_pic == NULL).

Suggested-by: Paolo Bonzini <address@hidden>
Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: 0d5fae3e52e8a6b1068e53ebb87e96702246529e
      
https://github.com/qemu/qemu/commit/0d5fae3e52e8a6b1068e53ebb87e96702246529e
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M .gitmodules
    A pc-bios/bios-microvm.bin
    M roms/Makefile
    A roms/qboot

  Log Message:
  -----------
  roms: add microvm-bios (qboot) as binary and git submodule

qboot is a minimalist x86 firmware for booting Linux kernels. It does
the mininum amount of work required for the task, and it's able to
boot both PVH images and bzImages without relying on option roms.

This characteristics make it an ideal companion for the microvm
machine type.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Stefano Garzarella <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: e00803aab46c6018b695ee63eef41263c15376d9
      
https://github.com/qemu/qemu/commit/e00803aab46c6018b695ee63eef41263c15376d9
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    A docs/microvm.rst

  Log Message:
  -----------
  docs/microvm.rst: document the new microvm machine type

Document the new microvm machine type.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>


  Commit: 0ebf007ddacf15a4483a4e740bf6c9dd688b5b5a
      
https://github.com/qemu/qemu/commit/0ebf007ddacf15a4483a4e740bf6c9dd688b5b5a
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M default-configs/i386-softmmu.mak
    M hw/i386/Kconfig
    M hw/i386/Makefile.objs
    A hw/i386/microvm.c
    A include/hw/i386/microvm.h

  Log Message:
  -----------
  hw/i386: Introduce the microvm machine type

microvm is a machine type inspired by Firecracker and constructed
after its machine model.

It's a minimalist machine type without PCI nor ACPI support, designed
for short-lived guests. microvm also establishes a baseline for
benchmarking and optimizing both QEMU and guest operating systems,
since it is optimized for both boot time and footprint.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>


  Commit: 5cb48f05dd90d7a11d2bfb6f368da74622c218b4
      
https://github.com/qemu/qemu/commit/5cb48f05dd90d7a11d2bfb6f368da74622c218b4
  Author: Sergio Lopez <address@hidden>
  Date:   2019-10-22 (Tue, 22 Oct 2019)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: add microvm related files

Add a new "microvm" section under "X86 Machines" with the new files
related to this machine type.

Signed-off-by: Sergio Lopez <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: e31db8aabece49b815c394a3a0ddb6bb1624a07a
      
https://github.com/qemu/qemu/commit/e31db8aabece49b815c394a3a0ddb6bb1624a07a
  Author: Wei Yang <address@hidden>
  Date:   2019-10-23 (Wed, 23 Oct 2019)

  Changed paths:
    M scripts/checkpatch.pl

  Log Message:
  -----------
  checkpatch: suggest qemu_real_host_page_size instead of getpagesize() or 
sysconf(_SC_PAGESIZE)

Signed-off-by: Wei Yang <address@hidden>
CC: Richard Henderson <address@hidden>
CC: Stefan Hajnoczi <address@hidden>

Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 1bd71dce4bf2d24d003780ef01eb5fc274d66703
      
https://github.com/qemu/qemu/commit/1bd71dce4bf2d24d003780ef01eb5fc274d66703
  Author: Laurent Vivier <address@hidden>
  Date:   2019-10-23 (Wed, 23 Oct 2019)

  Changed paths:
    M vl.c

  Log Message:
  -----------
  runstate: ignore exit request in finish migrate state

Trying to reboot a VM while a migration is running can
move to the prelaunch state (because of the reset) while
the runstate is in finish migrate state.
As the logical step after the finish migrate is postmigrate,
this can create an invalid state transition from prelaunch state
to postmigrate state and this raises an error and aborts:

    invalid runstate transition: 'prelaunch' -> 'postmigrate'

As we are not able to manage reset in finish migrate state the
best we can do is to ignore any changes and delay them until
the next state which should be postmigrate and which should allow
this kind of transition.

Reported-by: Lukáš Doktor <address@hidden>
Suggested-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 3c13c4be221a83f80431c228bbaf7f8a064897dd
      
https://github.com/qemu/qemu/commit/3c13c4be221a83f80431c228bbaf7f8a064897dd
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-23 (Wed, 23 Oct 2019)

  Changed paths:
    M hw/timer/mc146818rtc.c

  Log Message:
  -----------
  hw/timer/mc146818rtc: Only include qapi-commands-misc on I386

Commit a6c7040fb09 restricted the rtc-reset-reinjection command
to the I386 target.
Restrict the "qapi/qapi-commands-misc-target.h" header to it too.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 67192a298f5bf98f96e5516c3b6474c49e4853cd
      
https://github.com/qemu/qemu/commit/67192a298f5bf98f96e5516c3b6474c49e4853cd
  Author: Tao Xu <address@hidden>
  Date:   2019-10-23 (Wed, 23 Oct 2019)

  Changed paths:
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/kvm.c

  Log Message:
  -----------
  x86/cpu: Add support for UMONITOR/UMWAIT/TPAUSE

UMONITOR, UMWAIT and TPAUSE are a set of user wait instructions.
This patch adds support for user wait instructions in KVM. Availability
of the user wait instructions is indicated by the presence of the CPUID
feature flag WAITPKG CPUID.0x07.0x0:ECX[5]. User wait instructions may
be executed at any privilege level, and use IA32_UMWAIT_CONTROL MSR to
set the maximum time.

The patch enable the umonitor, umwait and tpause features in KVM.
Because umwait and tpause can put a (psysical) CPU into a power saving
state, by default we dont't expose it to kvm and enable it only when
guest CPUID has it. And use QEMU command-line "-overcommit cpu-pm=on"
(enable_cpu_pm is enabled), a VM can use UMONITOR, UMWAIT and TPAUSE
instructions. If the instruction causes a delay, the amount of time
delayed is called here the physical delay. The physical delay is first
computed by determining the virtual delay (the time to delay relative to
the VM’s timestamp counter). Otherwise, UMONITOR, UMWAIT and TPAUSE cause
an invalid-opcode exception(#UD).

The release document ref below link:
https://software.intel.com/sites/default/files/\
managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf

Co-developed-by: Jingqi Liu <address@hidden>
Signed-off-by: Jingqi Liu <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 6508799707bbf018df82d354c388820217757f21
      
https://github.com/qemu/qemu/commit/6508799707bbf018df82d354c388820217757f21
  Author: Tao Xu <address@hidden>
  Date:   2019-10-23 (Wed, 23 Oct 2019)

  Changed paths:
    M target/i386/cpu.h
    M target/i386/kvm.c
    M target/i386/machine.c

  Log Message:
  -----------
  target/i386: Add support for save/load IA32_UMWAIT_CONTROL MSR

UMWAIT and TPAUSE instructions use 32bits IA32_UMWAIT_CONTROL at MSR
index E1H to determines the maximum time in TSC-quanta that the processor
can reside in either C0.1 or C0.2.

This patch is to Add support for save/load IA32_UMWAIT_CONTROL MSR in
guest.

Co-developed-by: Jingqi Liu <address@hidden>
Signed-off-by: Jingqi Liu <address@hidden>
Signed-off-by: Tao Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 417258f139e61899511d6a99c11b276f12bbbd86
      
https://github.com/qemu/qemu/commit/417258f139e61899511d6a99c11b276f12bbbd86
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M include/hw/i386/pc.h

  Log Message:
  -----------
  hw/i386/pc: Extract pc_gsi_create()

The GSI creation code is common to all PC machines, extract the
common code.

Reviewed-by: Aleksandar Markovic <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: b00c6f18a618f42f90e8608fbc4dbc6c133ad0e3
      
https://github.com/qemu/qemu/commit/b00c6f18a618f42f90e8608fbc4dbc6c133ad0e3
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/i386/pc_q35.c

  Log Message:
  -----------
  hw/i386/pc: Move gsi_state creation code

The code block related to IRQ starts few lines later. Move
the comment and the pc_gsi_create() invocation where we start
to use the IRQs.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 4501d317b50e52de090192aab6244060fbe42da0
      
https://github.com/qemu/qemu/commit/4501d317b50e52de090192aab6244060fbe42da0
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M include/hw/i386/pc.h

  Log Message:
  -----------
  hw/i386/pc: Extract pc_i8259_create()

The i8259 creation code is common to all PC machines, extract the
common code.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: b4de58a4e1b3d1cfe7ea1a3fc1c75e032c13ffa3
      
https://github.com/qemu/qemu/commit/b4de58a4e1b3d1cfe7ea1a3fc1c75e032c13ffa3
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c

  Log Message:
  -----------
  hw/i386/pc: Remove kvm_i386.h include

By extracting pc_gsi_create() and pc_i8259_create() we removed
the access to "kvm_i386.h" from the machine code. We can now
remove it.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 53e4b8018e600c256bd60e5898f6747eddbc2131
      
https://github.com/qemu/qemu/commit/53e4b8018e600c256bd60e5898f6747eddbc2131
  Author: Hervé Poussineau <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/timer/mc146818rtc.c
    M include/hw/timer/mc146818rtc.h

  Log Message:
  -----------
  mc146818rtc: move structure to header file

We are now able to embed a timer in another object.

Acked-by: Michael S. Tsirkin <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Signed-off-by: Hervé Poussineau <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Aleksandar Markovic <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: d578f7dfb4e4b911fd7c6418b9344dc3dccad7f3
      
https://github.com/qemu/qemu/commit/d578f7dfb4e4b911fd7c6418b9344dc3dccad7f3
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M include/hw/timer/mc146818rtc.h
    M include/hw/timer/mc146818rtc_regs.h
    M tests/rtc-test.c

  Log Message:
  -----------
  mc146818rtc: Move RTC_ISA_IRQ definition

The ISA default number for the RTC devices is not related to its
registers neither. Move this definition to "hw/timer/mc146818rtc.h".

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: d93884e89bb6bf26ebffdee5887907cf940b3090
      
https://github.com/qemu/qemu/commit/d93884e89bb6bf26ebffdee5887907cf940b3090
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/timer/mc146818rtc.c
    M include/hw/timer/mc146818rtc.h

  Log Message:
  -----------
  mc146818rtc: Include mc146818rtc_regs.h directly in mc146818rtc.c

Devices/boards wanting to use the MC146818 RTC don't need
the knowledge its internal registers. Move the "mc146818rtc_regs.h"
inclusion to mc146818rtc.c where it is required.

We can not move this file from include/hw/timer/ to hw/timer/ for
local inclusion because the ACPI FADT table use the RTC_CENTURY
register address.

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: df84f17d1beabbb2aca39be18b21afc277cd6754
      
https://github.com/qemu/qemu/commit/df84f17d1beabbb2aca39be18b21afc277cd6754
  Author: Hervé Poussineau <address@hidden>
  Date:   2019-10-24 (Thu, 24 Oct 2019)

  Changed paths:
    M hw/timer/mc146818rtc.c

  Log Message:
  -----------
  mc146818rtc: always register rtc to rtc list

We are not required anymore to use rtc_init() function.

Acked-by: Michael S. Tsirkin <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Signed-off-by: Hervé Poussineau <address@hidden>
Message-Id: <address@hidden>
[PMD: rebased, fix OBJECT() value]
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 673652a785efb5f7da342b49c80a1abf033c82a7
      
https://github.com/qemu/qemu/commit/673652a785efb5f7da342b49c80a1abf033c82a7
  Author: Paolo Bonzini <address@hidden>
  Date:   2019-10-26 (Sat, 26 Oct 2019)

  Changed paths:
    M .gitmodules
    M MAINTAINERS
    M default-configs/i386-softmmu.mak
    M docs/hyperv.txt
    A docs/microvm.rst
    M hw/acpi/cpu_hotplug.c
    M hw/i386/Kconfig
    M hw/i386/Makefile.objs
    M hw/i386/acpi-build.c
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c
    A hw/i386/microvm.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/pc_sysfw.c
    A hw/i386/x86.c
    M hw/i386/xen/xen-hvm.c
    M hw/intc/apic.c
    M hw/intc/ioapic.c
    M hw/mem/Makefile.objs
    M hw/misc/tmp421.c
    M hw/nvram/fw_cfg.c
    M hw/rtc/mc146818rtc.c
    M hw/virtio/virtio-mmio.c
    A include/hw/i386/microvm.h
    M include/hw/i386/pc.h
    A include/hw/i386/x86.h
    M include/hw/nvram/fw_cfg.h
    M include/hw/rtc/mc146818rtc.h
    M include/hw/rtc/mc146818rtc_regs.h
    A include/hw/virtio/virtio-mmio.h
    A pc-bios/bios-microvm.bin
    M po/bg.po
    M roms/Makefile
    A roms/qboot
    M scripts/checkpatch.pl
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/hyperv-proto.h
    M target/i386/kvm.c
    M target/i386/machine.c
    M tests/rtc-test.c
    M util/main-loop.c
    M util/systemd.c
    M vl.c

  Log Message:
  -----------
  Merge commit 'df84f17' into HEAD

This merge fixes a semantic conflict with the trivial tree.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 5608956575088554f7612b716916efafae46187c
      
https://github.com/qemu/qemu/commit/5608956575088554f7612b716916efafae46187c
  Author: Paolo Bonzini <address@hidden>
  Date:   2019-10-26 (Sat, 26 Oct 2019)

  Changed paths:
    M audio/paaudio.c

  Log Message:
  -----------
  audio: fix missing break

Reported by Coverity (CID 1406449).

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 038adc2f5850e32019bda06c559d0301be436eae
      
https://github.com/qemu/qemu/commit/038adc2f5850e32019bda06c559d0301be436eae
  Author: Wei Yang <address@hidden>
  Date:   2019-10-26 (Sat, 26 Oct 2019)

  Changed paths:
    M accel/kvm/kvm-all.c
    M backends/hostmem.c
    M block.c
    M block/file-posix.c
    M block/io.c
    M block/parallels.c
    M block/qcow2-cache.c
    M contrib/vhost-user-gpu/vugbm.c
    M exec.c
    M hw/intc/s390_flic_kvm.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/spapr_pci.c
    M hw/rdma/vmw/pvrdma_main.c
    M hw/vfio/spapr.c
    M include/exec/ram_addr.h
    M include/qemu/osdep.h
    M migration/migration.c
    M migration/postcopy-ram.c
    M monitor/misc.c
    M target/ppc/kvm.c
    M tests/vhost-user-bridge.c
    M util/mmap-alloc.c
    M util/oslib-posix.c
    M util/oslib-win32.c
    M util/vfio-helpers.c

  Log Message:
  -----------
  core: replace getpagesize() with qemu_real_host_page_size

There are three page size in qemu:

  real host page size
  host page size
  target page size

All of them have dedicate variable to represent. For the last two, we
use the same form in the whole qemu project, while for the first one we
use two forms: qemu_real_host_page_size and getpagesize().

qemu_real_host_page_size is defined to be a replacement of
getpagesize(), so let it serve the role.

[Note] Not fully tested for some arch or device.

Signed-off-by: Wei Yang <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 6f529b7534c534afe2f2b834199191d8b4cc07ca
      
https://github.com/qemu/qemu/commit/6f529b7534c534afe2f2b834199191d8b4cc07ca
  Author: Paolo Bonzini <address@hidden>
  Date:   2019-10-26 (Sat, 26 Oct 2019)

  Changed paths:
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M include/hw/i386/pc.h
    M target/i386/cpu.h
    M target/i386/fpu_helper.c

  Log Message:
  -----------
  target/i386: move FERR handling to target/i386

Move it out of pc.c since it is strictly tied to TCG.  This is
almost exclusively code movement, the next patch will implement
IGNNE.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 5caa1833d22c2f3c3f08c80d9bf86dccf9aa25a4
      
https://github.com/qemu/qemu/commit/5caa1833d22c2f3c3f08c80d9bf86dccf9aa25a4
  Author: Paolo Bonzini <address@hidden>
  Date:   2019-10-26 (Sat, 26 Oct 2019)

  Changed paths:
    M target/i386/fpu_helper.c

  Log Message:
  -----------
  target/i386: introduce cpu_set_fpus

In the next patch, this will provide a hook to detect clearing of
FSW.ES.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: bf13bfab0840d34a74938ddf567d52e9010dbdc6
      
https://github.com/qemu/qemu/commit/bf13bfab0840d34a74938ddf567d52e9010dbdc6
  Author: Paolo Bonzini <address@hidden>
  Date:   2019-10-26 (Sat, 26 Oct 2019)

  Changed paths:
    M hw/i386/pc.c
    M target/i386/cpu.h
    M target/i386/fpu_helper.c

  Log Message:
  -----------
  i386: implement IGNNE

Change the handling of port F0h writes and FPU exceptions to implement IGNNE.

The implementation mixes a bit what the chipset and processor do in real
hardware, but the effect is the same as what happens with actual FERR#
and IGNNE# pins: writing to port F0h asserts IGNNE# in addition to lowering
FP_IRQ; while clearing the SE bit in the FPU status word deasserts IGNNE#.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 88c1fd4cba1103653fac4d9393b0832e446b593f
      
https://github.com/qemu/qemu/commit/88c1fd4cba1103653fac4d9393b0832e446b593f
  Author: Peter Maydell <address@hidden>
  Date:   2019-10-27 (Sun, 27 Oct 2019)

  Changed paths:
    M .gitmodules
    M MAINTAINERS
    M accel/kvm/kvm-all.c
    M audio/paaudio.c
    M backends/hostmem.c
    M block.c
    M block/file-posix.c
    M block/io.c
    M block/parallels.c
    M block/qcow2-cache.c
    M contrib/vhost-user-gpu/vugbm.c
    M default-configs/i386-softmmu.mak
    M docs/hyperv.txt
    A docs/microvm.rst
    M exec.c
    M hw/acpi/cpu_hotplug.c
    M hw/i386/Kconfig
    M hw/i386/Makefile.objs
    M hw/i386/acpi-build.c
    M hw/i386/amd_iommu.c
    M hw/i386/intel_iommu.c
    A hw/i386/microvm.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/pc_sysfw.c
    A hw/i386/x86.c
    M hw/i386/xen/xen-hvm.c
    M hw/intc/apic.c
    M hw/intc/ioapic.c
    M hw/intc/s390_flic_kvm.c
    M hw/mem/Makefile.objs
    M hw/misc/tmp421.c
    M hw/nvram/fw_cfg.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/spapr_pci.c
    M hw/rdma/vmw/pvrdma_main.c
    M hw/rtc/mc146818rtc.c
    M hw/vfio/spapr.c
    M hw/virtio/virtio-mmio.c
    M include/exec/ram_addr.h
    A include/hw/i386/microvm.h
    M include/hw/i386/pc.h
    A include/hw/i386/x86.h
    M include/hw/nvram/fw_cfg.h
    M include/hw/rtc/mc146818rtc.h
    M include/hw/rtc/mc146818rtc_regs.h
    A include/hw/virtio/virtio-mmio.h
    M include/qemu/osdep.h
    M migration/migration.c
    M migration/postcopy-ram.c
    M monitor/misc.c
    A pc-bios/bios-microvm.bin
    M po/bg.po
    M roms/Makefile
    A roms/qboot
    M scripts/checkpatch.pl
    M target/i386/cpu.c
    M target/i386/cpu.h
    M target/i386/fpu_helper.c
    M target/i386/hyperv-proto.h
    M target/i386/kvm.c
    M target/i386/machine.c
    M target/ppc/kvm.c
    M tests/rtc-test.c
    M tests/vhost-user-bridge.c
    M util/main-loop.c
    M util/mmap-alloc.c
    M util/oslib-posix.c
    M util/oslib-win32.c
    M util/systemd.c
    M util/vfio-helpers.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging

* Bulgarian translation update (Alexander)
* RTC and PC refactorings (Hervé, Philippe, Sergio)
* RTC fix (Marcelo)
* More comprehensive MCE logging (Mario)
* x86 IGNNE implementation (Paolo)
* Microvm machine type (Sergio)
* Support for UMONITOR/UMWAIT/TPAUSE (Tao)
* Do not use %m in common code (Thomas)
* NoNonArchitecturalCoreSharing Hyper-V enlightenment (Vitaly)
* getpagesize cleanups (Wei)

# gpg: Signature made Sat 26 Oct 2019 14:39:56 BST
# gpg:                using RSA key BFFBD25F78C7AE83
# gpg: Good signature from "Paolo Bonzini <address@hidden>" [full]
# gpg:                 aka "Paolo Bonzini <address@hidden>" [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/tags/for-upstream: (39 commits)
  i386: implement IGNNE
  target/i386: introduce cpu_set_fpus
  target/i386: move FERR handling to target/i386
  core: replace getpagesize() with qemu_real_host_page_size
  audio: fix missing break
  mc146818rtc: always register rtc to rtc list
  mc146818rtc: Include mc146818rtc_regs.h directly in mc146818rtc.c
  mc146818rtc: Move RTC_ISA_IRQ definition
  mc146818rtc: move structure to header file
  hw/i386/pc: Remove kvm_i386.h include
  hw/i386/pc: Extract pc_i8259_create()
  hw/i386/pc: Move gsi_state creation code
  hw/i386/pc: Extract pc_gsi_create()
  target/i386: Add support for save/load IA32_UMWAIT_CONTROL MSR
  x86/cpu: Add support for UMONITOR/UMWAIT/TPAUSE
  hw/timer/mc146818rtc: Only include qapi-commands-misc on I386
  runstate: ignore exit request in finish migrate state
  checkpatch: suggest qemu_real_host_page_size instead of getpagesize() or 
sysconf(_SC_PAGESIZE)
  MAINTAINERS: add microvm related files
  hw/i386: Introduce the microvm machine type
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/187f35512106...88c1fd4cba11



reply via email to

[Prev in Thread] Current Thread [Next in Thread]