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