qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL v2 00/39] Misc (mostly x86) patches for 2019-10-24
@ 2019-10-26 13:45 Paolo Bonzini
  2019-10-26 13:45 ` [PULL v2 37/39] target/i386: move FERR handling to target/i386 Paolo Bonzini
  2019-10-28 13:32 ` [PULL v2 00/39] Misc (mostly x86) patches for 2019-10-24 Peter Maydell
  0 siblings, 2 replies; 3+ messages in thread
From: Paolo Bonzini @ 2019-10-26 13:45 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit e9d42461920f6f40f4d847a5ba18e90d095ed0b9:

  Merge remote-tracking branch 'remotes/kraxel/tags/audio-20191018-pull-request' into staging (2019-10-18 14:13:11 +0100)

are available in the git repository at:


  git://github.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to bf13bfab0840d34a74938ddf567d52e9010dbdc6:

  i386: implement IGNNE (2019-10-25 13:18:21 +0200)

----------------------------------------------------------------
* 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)

----------------------------------------------------------------
Alexander Shopov (1):
      Updated Bulgarian translation (19) - 4.1.0

Hervé Poussineau (2):
      mc146818rtc: move structure to header file
      mc146818rtc: always register rtc to rtc list

Laurent Vivier (1):
      runstate: ignore exit request in finish migrate state

Marcelo Tosatti (1):
      mc146818rtc: fix timer interrupt reinjection

Mario Smarduch (1):
      target/i386: log MCE guest and host addresses

Paolo Bonzini (6):
      memory-device: simplify Makefile.objs conditions
      hw/i386: split PCMachineState deriving X86MachineState from it
      audio: fix missing break
      target/i386: move FERR handling to target/i386
      target/i386: introduce cpu_set_fpus
      i386: implement IGNNE

Philippe Mathieu-Daudé (7):
      hw/timer/mc146818rtc: Only include qapi-commands-misc on I386
      hw/i386/pc: Extract pc_gsi_create()
      hw/i386/pc: Move gsi_state creation code
      hw/i386/pc: Extract pc_i8259_create()
      hw/i386/pc: Remove kvm_i386.h include
      mc146818rtc: Move RTC_ISA_IRQ definition
      mc146818rtc: Include mc146818rtc_regs.h directly in mc146818rtc.c

Sergio Lopez (14):
      hw/virtio: Factorize virtio-mmio headers
      hw/i386/pc: rename functions shared with non-PC machines
      hw/i386/pc: fix code style issues on functions that will be moved out
      hw/i386/pc: replace use of strtol with qemu_strtoui in x86_load_linux()
      hw/i386/pc: avoid an assignment in if condition in x86_load_linux()
      hw/i386/pc: remove commented out code from x86_load_linux()
      hw/i386/pc: move shared x86 functions to x86.c and export them
      hw/i386: make x86.c independent from PCMachineState
      fw_cfg: add "modify" functions for all types
      hw/intc/apic: reject pic ints if isa_pic == NULL
      roms: add microvm-bios (qboot) as binary and git submodule
      docs/microvm.rst: document the new microvm machine type
      hw/i386: Introduce the microvm machine type
      MAINTAINERS: add microvm related files

Tao Xu (2):
      x86/cpu: Add support for UMONITOR/UMWAIT/TPAUSE
      target/i386: Add support for save/load IA32_UMWAIT_CONTROL MSR

Thomas Huth (1):
      Do not use %m in common code to print error messages

Vitaly Kuznetsov (1):
      i386/kvm: add NoNonArchitecturalCoreSharing Hyper-V enlightenment

Wei Yang (2):
      checkpatch: suggest qemu_real_host_page_size instead of getpagesize() or sysconf(_SC_PAGESIZE)
      core: replace getpagesize() with qemu_real_host_page_size

 .gitmodules                         |   3 +
 MAINTAINERS                         |   9 +
 accel/kvm/kvm-all.c                 |   6 +-
 audio/paaudio.c                     |   1 +
 backends/hostmem.c                  |   2 +-
 block.c                             |   4 +-
 block/file-posix.c                  |   9 +-
 block/io.c                          |   2 +-
 block/parallels.c                   |   2 +-
 block/qcow2-cache.c                 |   2 +-
 contrib/vhost-user-gpu/vugbm.c      |   2 +-
 default-configs/i386-softmmu.mak    |   1 +
 docs/hyperv.txt                     |  13 +
 docs/microvm.rst                    | 108 +++++
 exec.c                              |   6 +-
 hw/acpi/cpu_hotplug.c               |  10 +-
 hw/i386/Kconfig                     |  10 +
 hw/i386/Makefile.objs               |   2 +
 hw/i386/acpi-build.c                |  29 +-
 hw/i386/amd_iommu.c                 |   3 +-
 hw/i386/intel_iommu.c               |   3 +-
 hw/i386/microvm.c                   | 572 +++++++++++++++++++++++++
 hw/i386/pc.c                        | 832 +++++-------------------------------
 hw/i386/pc_piix.c                   |  67 ++-
 hw/i386/pc_q35.c                    |  64 ++-
 hw/i386/pc_sysfw.c                  |  60 +--
 hw/i386/x86.c                       | 795 ++++++++++++++++++++++++++++++++++
 hw/i386/xen/xen-hvm.c               |  28 +-
 hw/intc/apic.c                      |   2 +-
 hw/intc/ioapic.c                    |   2 +-
 hw/intc/s390_flic_kvm.c             |   2 +-
 hw/mem/Makefile.objs                |   2 +-
 hw/misc/tmp421.c                    |   4 +-
 hw/nvram/fw_cfg.c                   |  29 ++
 hw/ppc/mac_newworld.c               |   2 +-
 hw/ppc/spapr_pci.c                  |   2 +-
 hw/rdma/vmw/pvrdma_main.c           |   2 +-
 hw/timer/mc146818rtc.c              |  94 ++--
 hw/vfio/spapr.c                     |   7 +-
 hw/virtio/virtio-mmio.c             |  48 +--
 include/exec/ram_addr.h             |   2 +-
 include/hw/i386/microvm.h           |  71 +++
 include/hw/i386/pc.h                |  32 +-
 include/hw/i386/x86.h               |  96 +++++
 include/hw/nvram/fw_cfg.h           |  42 ++
 include/hw/timer/mc146818rtc.h      |  36 +-
 include/hw/timer/mc146818rtc_regs.h |   2 -
 include/hw/virtio/virtio-mmio.h     |  73 ++++
 include/qemu/osdep.h                |   4 +-
 migration/migration.c               |   2 +-
 migration/postcopy-ram.c            |   4 +-
 monitor/misc.c                      |   2 +-
 pc-bios/bios-microvm.bin            | Bin 0 -> 65536 bytes
 po/bg.po                            |  10 +-
 roms/Makefile                       |   6 +
 roms/qboot                          |   1 +
 scripts/checkpatch.pl               |   6 +
 target/i386/cpu.c                   |   4 +-
 target/i386/cpu.h                   |  11 +-
 target/i386/fpu_helper.c            |  60 ++-
 target/i386/hyperv-proto.h          |   1 +
 target/i386/kvm.c                   |  74 +++-
 target/i386/machine.c               |  20 +
 target/ppc/kvm.c                    |   2 +-
 tests/rtc-test.c                    |   1 +
 tests/vhost-user-bridge.c           |   8 +-
 util/main-loop.c                    |   3 +-
 util/mmap-alloc.c                   |  10 +-
 util/oslib-posix.c                  |   4 +-
 util/oslib-win32.c                  |   2 +-
 util/systemd.c                      |   4 +-
 util/vfio-helpers.c                 |  12 +-
 vl.c                                |   3 +
 73 files changed, 2342 insertions(+), 1107 deletions(-)
 create mode 100644 docs/microvm.rst
 create mode 100644 hw/i386/microvm.c
 create mode 100644 hw/i386/x86.c
 create mode 100644 include/hw/i386/microvm.h
 create mode 100644 include/hw/i386/x86.h
 create mode 100644 include/hw/virtio/virtio-mmio.h
 create mode 100644 pc-bios/bios-microvm.bin
 create mode 160000 roms/qboot
-- 
1.8.3.1



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PULL v2 37/39] target/i386: move FERR handling to target/i386
  2019-10-26 13:45 [PULL v2 00/39] Misc (mostly x86) patches for 2019-10-24 Paolo Bonzini
@ 2019-10-26 13:45 ` Paolo Bonzini
  2019-10-28 13:32 ` [PULL v2 00/39] Misc (mostly x86) patches for 2019-10-24 Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2019-10-26 13:45 UTC (permalink / raw)
  To: qemu-devel

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 <pbonzini@redhat.com>
---
 hw/i386/pc.c             | 17 +++--------------
 hw/i386/pc_piix.c        |  4 +++-
 hw/i386/pc_q35.c         |  4 +++-
 include/hw/i386/pc.h     |  1 -
 target/i386/cpu.h        |  3 ++-
 target/i386/fpu_helper.c | 26 +++++++++++++++++++++++++-
 6 files changed, 36 insertions(+), 19 deletions(-)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 5fce60c..66d865b 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -381,23 +381,12 @@ static uint64_t ioport80_read(void *opaque, hwaddr addr, unsigned size)
 }
 
 /* MSDOS compatibility mode FPU exception support */
-static qemu_irq ferr_irq;
-
-void pc_register_ferr_irq(qemu_irq irq)
-{
-    ferr_irq = irq;
-}
-
-/* XXX: add IGNNE support */
-void cpu_set_ferr(CPUX86State *s)
-{
-    qemu_irq_raise(ferr_irq);
-}
-
 static void ioportF0_write(void *opaque, hwaddr addr, uint64_t data,
                            unsigned size)
 {
-    qemu_irq_lower(ferr_irq);
+    if (tcg_enabled()) {
+        cpu_clear_ferr();
+    }
 }
 
 static uint64_t ioportF0_read(void *opaque, hwaddr addr, unsigned size)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 3a4a64a..c15929a 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -213,7 +213,9 @@ static void pc_init1(MachineState *machine,
         ioapic_init_gsi(gsi_state, "i440fx");
     }
 
-    pc_register_ferr_irq(x86ms->gsi[13]);
+    if (tcg_enabled()) {
+        x86_register_ferr_irq(x86ms->gsi[13]);
+    }
 
     pc_vga_init(isa_bus, pcmc->pci_enabled ? pci_bus : NULL);
 
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index def3bc2..b9c3e18 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -261,7 +261,9 @@ static void pc_q35_init(MachineState *machine)
         ioapic_init_gsi(gsi_state, "q35");
     }
 
-    pc_register_ferr_irq(x86ms->gsi[13]);
+    if (tcg_enabled()) {
+        x86_register_ferr_irq(x86ms->gsi[13]);
+    }
 
     assert(pcms->vmport != ON_OFF_AUTO__MAX);
     if (pcms->vmport == ON_OFF_AUTO_AUTO) {
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 5923318..f040a72 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -176,7 +176,6 @@ void vmmouse_set_data(const uint32_t *data);
 extern int fd_bootchk;
 
 bool pc_machine_is_smm_enabled(PCMachineState *pcms);
-void pc_register_ferr_irq(qemu_irq irq);
 void pc_acpi_smi_interrupt(void *opaque, int irq, int level);
 
 void pc_hot_add_cpu(MachineState *ms, const int64_t id, Error **errp);
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index b772e82..01e052b 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -1761,7 +1761,8 @@ int cpu_x86_support_mca_broadcast(CPUX86State *env);
 
 int cpu_get_pic_interrupt(CPUX86State *s);
 /* MSDOS compatibility mode FPU exception support */
-void cpu_set_ferr(CPUX86State *s);
+void x86_register_ferr_irq(qemu_irq irq);
+void cpu_clear_ferr(void);
 /* mpx_helper.c */
 void cpu_sync_bndcs_hflags(CPUX86State *env);
 
diff --git a/target/i386/fpu_helper.c b/target/i386/fpu_helper.c
index 005f1f6..4db0059 100644
--- a/target/i386/fpu_helper.c
+++ b/target/i386/fpu_helper.c
@@ -26,6 +26,10 @@
 #include "exec/cpu_ldst.h"
 #include "fpu/softfloat.h"
 
+#ifdef CONFIG_SOFTMMU
+#include "hw/irq.h"
+#endif
+
 #define FPU_RC_MASK         0xc00
 #define FPU_RC_NEAR         0x000
 #define FPU_RC_DOWN         0x400
@@ -58,6 +62,26 @@
 #define floatx80_l2e make_floatx80(0x3fff, 0xb8aa3b295c17f0bcLL)
 #define floatx80_l2t make_floatx80(0x4000, 0xd49a784bcd1b8afeLL)
 
+#if !defined(CONFIG_USER_ONLY)
+static qemu_irq ferr_irq;
+
+void x86_register_ferr_irq(qemu_irq irq)
+{
+    ferr_irq = irq;
+}
+
+void cpu_clear_ferr(void)
+{
+    qemu_irq_lower(ferr_irq);
+}
+
+static void cpu_set_ferr(void)
+{
+    qemu_irq_raise(ferr_irq);
+}
+#endif
+
+
 static inline void fpush(CPUX86State *env)
 {
     env->fpstt = (env->fpstt - 1) & 7;
@@ -137,7 +161,7 @@ static void fpu_raise_exception(CPUX86State *env, uintptr_t retaddr)
     }
 #if !defined(CONFIG_USER_ONLY)
     else {
-        cpu_set_ferr(env);
+        cpu_set_ferr();
     }
 #endif
 }
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PULL v2 00/39] Misc (mostly x86) patches for 2019-10-24
  2019-10-26 13:45 [PULL v2 00/39] Misc (mostly x86) patches for 2019-10-24 Paolo Bonzini
  2019-10-26 13:45 ` [PULL v2 37/39] target/i386: move FERR handling to target/i386 Paolo Bonzini
@ 2019-10-28 13:32 ` Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2019-10-28 13:32 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On Sat, 26 Oct 2019 at 14:48, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit e9d42461920f6f40f4d847a5ba18e90d095ed0b9:
>
>   Merge remote-tracking branch 'remotes/kraxel/tags/audio-20191018-pull-request' into staging (2019-10-18 14:13:11 +0100)
>
> are available in the git repository at:
>
>
>   git://github.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to bf13bfab0840d34a74938ddf567d52e9010dbdc6:
>
>   i386: implement IGNNE (2019-10-25 13:18:21 +0200)
>
> ----------------------------------------------------------------
> * 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)



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] 3+ messages in thread

end of thread, other threads:[~2019-10-28 13:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-26 13:45 [PULL v2 00/39] Misc (mostly x86) patches for 2019-10-24 Paolo Bonzini
2019-10-26 13:45 ` [PULL v2 37/39] target/i386: move FERR handling to target/i386 Paolo Bonzini
2019-10-28 13:32 ` [PULL v2 00/39] Misc (mostly x86) patches for 2019-10-24 Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).