All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/27] Misc patches for QEMU 6.2 soft freeze
@ 2021-11-03 15:04 Paolo Bonzini
  2021-11-03 15:04 ` [PULL 01/27] Makefile: Fix gtags generation Paolo Bonzini
                   ` (27 more replies)
  0 siblings, 28 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit f79bb385c0fb9756393bde2a13ebbc70ae6c8043:

  Merge remote-tracking branch 'remotes/mcayland/tags/qemu-openbios-20211101' into staging (2021-11-02 08:46:23 -0400)

are available in the Git repository at:

  https://gitlab.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to 16bfbc70f39e420b6b6cfe39ed8571606482b94a:

  configure: fix --audio-drv-list help message (2021-11-02 15:57:28 +0100)

----------------------------------------------------------------
* Build system fixes and cleanups
* DMA support in the multiboot option ROM
* Rename default-bus-bypass-iommu
* Deprecate -watchdog and cleanup -watchdog-action
* HVF fix for <PAGE_SIZE regions
* Support TSC scaling for AMD nested virtualization
* Fix for ESP fuzzing bug

----------------------------------------------------------------
Alex Bennée (1):
      MAINTAINERS: update location of microvm docs

Alexander Graf (1):
      hvf: Avoid mapping regions < PAGE_SIZE as ram

Eugenio Pérez (1):
      util: Make some iova_tree parameters const

Helge Konetzka (1):
      configure/optionrom: Fix MSYS2 multiboot.bin issue

Jean-Philippe Brucker (1):
      hw/i386: Rename default_bus_bypass_iommu

Jessica Clarke (1):
      Partially revert "build: -no-pie is no functional linker flag"

Marcus Hähnel (1):
      optionrom: add a DMA-enabled multiboot ROM

Mark Cave-Ayland (2):
      esp: ensure in-flight SCSI requests are always cancelled
      qtest/am53c974-test: add test for cancelling in-flight requests

Maxim Levitsky (1):
      KVM: SVM: add migration support for nested TSC scaling

Paolo Bonzini (11):
      target/i386: move linuxboot_dma_enabled to X86MachineState
      target/i386: use DMA-enabled multiboot ROM for new-enough QEMU machine types
      configure: remove useless NPTL probe
      configure: do not duplicate CPU_CFLAGS into QEMU_LDFLAGS
      watchdog: add information from -watchdog help to -device help
      vl: deprecate -watchdog
      watchdog: remove select_watchdog_action
      meson: bump submodule to 0.59.3
      meson: remove pointless warnings
      meson: remove unnecessary coreaudio test program
      configure: fix --audio-drv-list help message

Pavel Dovgalyuk (1):
      hw/i386: fix vmmouse registration

Peter Xu (2):
      Makefile: Fix gtags generation
      Makefile: Fix cscope issues on MacOS and soft links

Thomas Huth (3):
      meson.build: Allow to disable OSS again
      Move the l2tpv3 test from configure to meson.build
      configure: Remove the check for the __thread keyword

 MAINTAINERS                       |   2 +-
 Makefile                          |   5 +-
 accel/hvf/hvf-accel-ops.c         |   7 +++
 configure                         | 113 ++++++++------------------------------
 docs/about/deprecated.rst         |   5 ++
 hw/i386/intel_iommu.c             |   2 +-
 hw/i386/microvm.c                 |   5 +-
 hw/i386/multiboot.c               |  10 +++-
 hw/i386/multiboot.h               |   4 +-
 hw/i386/pc.c                      |  10 ++--
 hw/i386/pc_piix.c                 |   3 +-
 hw/i386/pc_q35.c                  |   3 +-
 hw/i386/vmmouse.c                 |   1 +
 hw/i386/x86.c                     |   7 ++-
 hw/scsi/esp.c                     |  10 ++--
 hw/watchdog/sbsa_gwdt.c           |   3 +-
 hw/watchdog/watchdog.c            |  14 -----
 hw/watchdog/wdt_aspeed.c          |   3 +-
 hw/watchdog/wdt_diag288.c         |   3 +-
 hw/watchdog/wdt_i6300esb.c        |   3 +-
 hw/watchdog/wdt_ib700.c           |   3 +-
 hw/watchdog/wdt_imx2.c            |   4 +-
 include/hw/i386/pc.h              |   3 -
 include/hw/i386/x86.h             |   5 +-
 include/hw/qdev-core.h            |   1 +
 include/qemu/iova-tree.h          |   8 +--
 include/sysemu/watchdog.h         |   1 -
 meson                             |   2 +-
 meson.build                       |  30 +++-------
 meson_options.txt                 |   2 +
 monitor/misc.c                    |  15 ++++-
 net/meson.build                   |   4 +-
 pc-bios/meson.build               |   1 +
 pc-bios/multiboot_dma.bin         | Bin 0 -> 1024 bytes
 pc-bios/optionrom/Makefile        |   9 +--
 pc-bios/optionrom/multiboot.S     |   4 +-
 pc-bios/optionrom/multiboot_dma.S |   2 +
 pc-bios/optionrom/optionrom.h     |  66 ++++++++++++++++++++++
 scripts/meson-buildoptions.py     |  16 ------
 scripts/meson-buildoptions.sh     |   3 +
 softmmu/qdev-monitor.c            |   1 +
 softmmu/vl.c                      |  11 ++--
 target/i386/cpu.c                 |   5 ++
 target/i386/cpu.h                 |   4 ++
 target/i386/kvm/kvm.c             |  15 +++++
 target/i386/machine.c             |  22 ++++++++
 tests/qtest/am53c974-test.c       |  36 ++++++++++++
 util/iova-tree.c                  |  12 ++--
 48 files changed, 294 insertions(+), 204 deletions(-)
 create mode 100644 pc-bios/multiboot_dma.bin
 create mode 100644 pc-bios/optionrom/multiboot_dma.S
-- 
2.31.1



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

* [PULL 01/27] Makefile: Fix gtags generation
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 02/27] Makefile: Fix cscope issues on MacOS and soft links Paolo Bonzini
                   ` (26 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Xu

From: Peter Xu <peterx@redhat.com>

We should use "-print" or otherwise all "-prone" is ignored.

Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20210804132328.41353-2-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index fe9415ac64..1b36bf2af4 100644
--- a/Makefile
+++ b/Makefile
@@ -256,7 +256,7 @@ gtags:
 		"GTAGS", "Remove old $@ files")
 	$(call quiet-command, 				\
 	        (cd $(SRC_PATH) && 			\
-		 $(find-src-path) | gtags -f -), 	\
+		 $(find-src-path) -print | gtags -f -),	\
 		"GTAGS", "Re-index $(SRC_PATH)")
 
 .PHONY: TAGS
-- 
2.31.1




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

* [PULL 02/27] Makefile: Fix cscope issues on MacOS and soft links
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
  2021-11-03 15:04 ` [PULL 01/27] Makefile: Fix gtags generation Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 03/27] Partially revert "build: -no-pie is no functional linker flag" Paolo Bonzini
                   ` (25 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Xu

From: Peter Xu <peterx@redhat.com>

This patch fixes actually two issues with 'make cscope'.

Firstly, it fixes the command for MacOS "find" command as MacOS will append the
full path of "$(SRC_PATH)/" before each found entry, then after the final "./"
replacement trick it'll look like (e.g., "qapi/qmp-dispatch.c"):

  /qapi/qmp-dispatch.c

Which will point to the root directory instead.

Fix it by simply remove the "/" in "$(SRC_PATH)/" of "find-src-path", then
it'll work for at least both Linux and MacOS.

The other OS-independent issue is to start proactively ignoring soft links when
generating tags, otherwise by default on master branch we'll see this error
when "make cscope":

cscope: cannot find file subprojects/libvhost-user/include/atomic.h

This patch should fix the two issues altogether.

Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20210804132328.41353-3-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 1b36bf2af4..74c5b46d38 100644
--- a/Makefile
+++ b/Makefile
@@ -235,7 +235,8 @@ distclean: clean
 	rm -f linux-headers/asm
 	rm -Rf .sdk
 
-find-src-path = find "$(SRC_PATH)/" -path "$(SRC_PATH)/meson" -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)
+find-src-path = find "$(SRC_PATH)" -path "$(SRC_PATH)/meson" -prune -o \
+	-type l -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)
 
 .PHONY: ctags
 ctags:
-- 
2.31.1




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

* [PULL 03/27] Partially revert "build: -no-pie is no functional linker flag"
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
  2021-11-03 15:04 ` [PULL 01/27] Makefile: Fix gtags generation Paolo Bonzini
  2021-11-03 15:04 ` [PULL 02/27] Makefile: Fix cscope issues on MacOS and soft links Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 04/27] configure/optionrom: Fix MSYS2 multiboot.bin issue Paolo Bonzini
                   ` (24 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Jessica Clarke, qemu-stable, Christian Ehrhardt

From: Jessica Clarke <jrtc27@jrtc27.com>

This partially reverts commit bbd2d5a8120771ec59b86a80a1f51884e0a26e53.

This commit was misguided and broke using --disable-pie on any distro
that enables PIE by default in their compiler driver, including Debian
and its derivatives. Whilst -no-pie is not a linker flag, it is a
compiler driver flag that ensures -pie is not automatically passed by it
to the linker. Without it, all compile_prog checks will fail as any code
built with the explicit -fno-pie will fail to link with the implicit
default -pie due to trying to use position-dependent relocations. The
only bug that needed fixing was LDFLAGS_NOPIE being used as a flag for
the linker itself in pc-bios/optionrom/Makefile.

Note this does not reinstate exporting LDFLAGS_NOPIE, as it is unused,
since the only previous use was the one that should not have existed. I
have also updated the comment for the -fno-pie and -no-pie checks to
reflect what they're actually needed for.

Fixes: bbd2d5a8120771ec59b86a80a1f51884e0a26e53
Cc: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
Message-Id: <20210805192545.38279-1-jrtc27@jrtc27.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 039467c04b..07cb7b412a 100755
--- a/configure
+++ b/configure
@@ -1771,9 +1771,11 @@ static THREAD int tls_var;
 int main(void) { return tls_var; }
 EOF
 
-# Check we support --no-pie first; we will need this for building ROMs.
+# Check we support -fno-pie and -no-pie first; we will need the former for
+# building ROMs, and both for everything if --disable-pie is passed.
 if compile_prog "-Werror -fno-pie" "-no-pie"; then
   CFLAGS_NOPIE="-fno-pie"
+  LDFLAGS_NOPIE="-no-pie"
 fi
 
 if test "$static" = "yes"; then
@@ -1789,6 +1791,7 @@ if test "$static" = "yes"; then
   fi
 elif test "$pie" = "no"; then
   CONFIGURE_CFLAGS="$CFLAGS_NOPIE $CONFIGURE_CFLAGS"
+  CONFIGURE_LDFLAGS="$LDFLAGS_NOPIE $CONFIGURE_LDFLAGS"
 elif compile_prog "-Werror -fPIE -DPIE" "-pie"; then
   CONFIGURE_CFLAGS="-fPIE -DPIE $CONFIGURE_CFLAGS"
   CONFIGURE_LDFLAGS="-pie $CONFIGURE_LDFLAGS"
-- 
2.31.1




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

* [PULL 04/27] configure/optionrom: Fix MSYS2 multiboot.bin issue
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (2 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 03/27] Partially revert "build: -no-pie is no functional linker flag" Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 05/27] util: Make some iova_tree parameters const Paolo Bonzini
                   ` (23 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Helge Konetzka

From: Helge Konetzka <hk@zapateado.de>

This patch enables native builds on MSYS2 with symlinks disabled.

Signed-off-by: Helge Konetzka <hk@zapateado.de>
Message-Id: <2b5ab039-8495-b55f-03f1-ecfd996907a9@zapateado.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                  | 4 ++++
 pc-bios/optionrom/Makefile | 5 ++---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index 07cb7b412a..03162008aa 100755
--- a/configure
+++ b/configure
@@ -3963,6 +3963,10 @@ for rom in seabios; do
     echo "RANLIB=$ranlib" >> $config_mak
 done
 
+config_mak=pc-bios/optionrom/config.mak
+echo "# Automatically generated by configure - do not modify" > $config_mak
+echo "TOPSRC_DIR=$source_path" >> $config_mak
+
 if test "$skip_meson" = no; then
   cross="config-meson.cross.new"
   meson_quote() {
diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index 30771f8d17..3482508a86 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -1,6 +1,5 @@
-CURRENT_MAKEFILE := $(realpath $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
-SRC_DIR := $(dir $(CURRENT_MAKEFILE))
-TOPSRC_DIR := $(SRC_DIR)/../..
+include config.mak
+SRC_DIR := $(TOPSRC_DIR)/pc-bios/optionrom
 VPATH = $(SRC_DIR)
 
 all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
-- 
2.31.1




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

* [PULL 05/27] util: Make some iova_tree parameters const
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (3 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 04/27] configure/optionrom: Fix MSYS2 multiboot.bin issue Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 06/27] MAINTAINERS: update location of microvm docs Paolo Bonzini
                   ` (22 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Eugenio Pérez, Philippe Mathieu-Daudé, Peter Xu

From: Eugenio Pérez <eperezma@redhat.com>

As qemu guidelines:
Unless a pointer is used to modify the pointed-to storage, give it the
"const" attribute.

In the particular case of iova_tree_find it allows to enforce what is
requested by its comment, since the compiler would shout in case of
modifying or freeing the const-qualified returned pointer.

Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20211013182713.888753-2-eperezma@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/i386/intel_iommu.c    |  2 +-
 include/qemu/iova-tree.h |  8 ++++----
 util/iova-tree.c         | 12 ++++++------
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index 75f075547f..33a8af9191 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -1105,7 +1105,7 @@ static int vtd_page_walk_one(IOMMUTLBEvent *event, vtd_page_walk_info *info)
         .translated_addr = entry->translated_addr,
         .perm = entry->perm,
     };
-    DMAMap *mapped = iova_tree_find(as->iova_tree, &target);
+    const DMAMap *mapped = iova_tree_find(as->iova_tree, &target);
 
     if (event->type == IOMMU_NOTIFIER_UNMAP && !info->notify_unmap) {
         trace_vtd_page_walk_one_skip_unmap(entry->iova, entry->addr_mask);
diff --git a/include/qemu/iova-tree.h b/include/qemu/iova-tree.h
index b66cf93c4b..8249edd764 100644
--- a/include/qemu/iova-tree.h
+++ b/include/qemu/iova-tree.h
@@ -59,7 +59,7 @@ IOVATree *iova_tree_new(void);
  *
  * Return: 0 if succeeded, or <0 if error.
  */
-int iova_tree_insert(IOVATree *tree, DMAMap *map);
+int iova_tree_insert(IOVATree *tree, const DMAMap *map);
 
 /**
  * iova_tree_remove:
@@ -74,7 +74,7 @@ int iova_tree_insert(IOVATree *tree, DMAMap *map);
  *
  * Return: 0 if succeeded, or <0 if error.
  */
-int iova_tree_remove(IOVATree *tree, DMAMap *map);
+int iova_tree_remove(IOVATree *tree, const DMAMap *map);
 
 /**
  * iova_tree_find:
@@ -92,7 +92,7 @@ int iova_tree_remove(IOVATree *tree, DMAMap *map);
  * user is responsible to make sure the pointer is valid (say, no
  * concurrent deletion in progress).
  */
-DMAMap *iova_tree_find(IOVATree *tree, DMAMap *map);
+const DMAMap *iova_tree_find(const IOVATree *tree, const DMAMap *map);
 
 /**
  * iova_tree_find_address:
@@ -105,7 +105,7 @@ DMAMap *iova_tree_find(IOVATree *tree, DMAMap *map);
  *
  * Return: same as iova_tree_find().
  */
-DMAMap *iova_tree_find_address(IOVATree *tree, hwaddr iova);
+const DMAMap *iova_tree_find_address(const IOVATree *tree, hwaddr iova);
 
 /**
  * iova_tree_foreach:
diff --git a/util/iova-tree.c b/util/iova-tree.c
index 7990692cbd..23ea35b7a4 100644
--- a/util/iova-tree.c
+++ b/util/iova-tree.c
@@ -42,14 +42,14 @@ IOVATree *iova_tree_new(void)
     return iova_tree;
 }
 
-DMAMap *iova_tree_find(IOVATree *tree, DMAMap *map)
+const DMAMap *iova_tree_find(const IOVATree *tree, const DMAMap *map)
 {
     return g_tree_lookup(tree->tree, map);
 }
 
-DMAMap *iova_tree_find_address(IOVATree *tree, hwaddr iova)
+const DMAMap *iova_tree_find_address(const IOVATree *tree, hwaddr iova)
 {
-    DMAMap map = { .iova = iova, .size = 0 };
+    const DMAMap map = { .iova = iova, .size = 0 };
 
     return iova_tree_find(tree, &map);
 }
@@ -60,7 +60,7 @@ static inline void iova_tree_insert_internal(GTree *gtree, DMAMap *range)
     g_tree_insert(gtree, range, range);
 }
 
-int iova_tree_insert(IOVATree *tree, DMAMap *map)
+int iova_tree_insert(IOVATree *tree, const DMAMap *map)
 {
     DMAMap *new;
 
@@ -96,9 +96,9 @@ void iova_tree_foreach(IOVATree *tree, iova_tree_iterator iterator)
     g_tree_foreach(tree->tree, iova_tree_traverse, iterator);
 }
 
-int iova_tree_remove(IOVATree *tree, DMAMap *map)
+int iova_tree_remove(IOVATree *tree, const DMAMap *map)
 {
-    DMAMap *overlap;
+    const DMAMap *overlap;
 
     while ((overlap = iova_tree_find(tree, map))) {
         g_tree_remove(tree->tree, overlap);
-- 
2.31.1




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

* [PULL 06/27] MAINTAINERS: update location of microvm docs
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (4 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 05/27] util: Make some iova_tree parameters const Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 07/27] target/i386: move linuxboot_dma_enabled to X86MachineState Paolo Bonzini
                   ` (21 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée

From: Alex Bennée <alex.bennee@linaro.org>

Fixes: e8eee8d3d9 ("docs: Move microvm.rst into the system manual")

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20211012151447.4147923-1-alex.bennee@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 310a9512ea..5455ff4179 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1609,7 +1609,7 @@ microvm
 M: Sergio Lopez <slp@redhat.com>
 M: Paolo Bonzini <pbonzini@redhat.com>
 S: Maintained
-F: docs/microvm.rst
+F: docs/system/i386/microvm.rst
 F: hw/i386/microvm.c
 F: include/hw/i386/microvm.h
 F: pc-bios/bios-microvm.bin
-- 
2.31.1




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

* [PULL 07/27] target/i386: move linuxboot_dma_enabled to X86MachineState
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (5 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 06/27] MAINTAINERS: update location of microvm docs Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 08/27] optionrom: add a DMA-enabled multiboot ROM Paolo Bonzini
                   ` (20 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel

This removes a parameter from x86_load_linux, and will avoid code
duplication between the linux and multiboot cases once multiboot
starts to support DMA.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/i386/microvm.c     | 5 ++++-
 hw/i386/pc.c          | 5 ++---
 hw/i386/pc_piix.c     | 3 ++-
 hw/i386/pc_q35.c      | 3 ++-
 hw/i386/x86.c         | 5 +++--
 include/hw/i386/pc.h  | 3 ---
 include/hw/i386/x86.h | 5 +++--
 7 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
index f257ec5a0b..837bafb64a 100644
--- a/hw/i386/microvm.c
+++ b/hw/i386/microvm.c
@@ -331,7 +331,7 @@ static void microvm_memory_init(MicrovmMachineState *mms)
     rom_set_fw(fw_cfg);
 
     if (machine->kernel_filename != NULL) {
-        x86_load_linux(x86ms, fw_cfg, 0, true, true);
+        x86_load_linux(x86ms, fw_cfg, 0, true);
     }
 
     if (mms->option_roms) {
@@ -667,6 +667,7 @@ static void microvm_machine_initfn(Object *obj)
 
 static void microvm_class_init(ObjectClass *oc, void *data)
 {
+    X86MachineClass *x86mc = X86_MACHINE_CLASS(oc);
     MachineClass *mc = MACHINE_CLASS(oc);
     HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc);
 
@@ -697,6 +698,8 @@ static void microvm_class_init(ObjectClass *oc, void *data)
     hc->unplug_request = microvm_device_unplug_request_cb;
     hc->unplug = microvm_device_unplug_cb;
 
+    x86mc->fwcfg_dma_enabled = true;
+
     object_class_property_add(oc, MICROVM_MACHINE_PIC, "OnOffAuto",
                               microvm_machine_get_pic,
                               microvm_machine_set_pic,
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 86223acfd3..d203db7845 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -775,7 +775,7 @@ void xen_load_linux(PCMachineState *pcms)
     rom_set_fw(fw_cfg);
 
     x86_load_linux(x86ms, fw_cfg, pcmc->acpi_data_size,
-                   pcmc->pvh_enabled, pcmc->linuxboot_dma_enabled);
+                   pcmc->pvh_enabled);
     for (i = 0; i < nb_option_roms; i++) {
         assert(!strcmp(option_rom[i].name, "linuxboot.bin") ||
                !strcmp(option_rom[i].name, "linuxboot_dma.bin") ||
@@ -927,7 +927,7 @@ void pc_memory_init(PCMachineState *pcms,
 
     if (linux_boot) {
         x86_load_linux(x86ms, fw_cfg, pcmc->acpi_data_size,
-                       pcmc->pvh_enabled, pcmc->linuxboot_dma_enabled);
+                       pcmc->pvh_enabled);
     }
 
     for (i = 0; i < nb_option_roms; i++) {
@@ -1664,7 +1664,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->linuxboot_dma_enabled = true;
     pcmc->pvh_enabled = true;
     pcmc->kvmclock_create_always = true;
     assert(!mc->get_hotplug_handler);
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 6ad0d763c5..223dd3e05d 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -620,11 +620,12 @@ DEFINE_I440FX_MACHINE(v2_7, "pc-i440fx-2.7", NULL,
 
 static void pc_i440fx_2_6_machine_options(MachineClass *m)
 {
+    X86MachineClass *x86mc = X86_MACHINE_CLASS(m);
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
 
     pc_i440fx_2_7_machine_options(m);
     pcmc->legacy_cpu_hotplug = true;
-    pcmc->linuxboot_dma_enabled = false;
+    x86mc->fwcfg_dma_enabled = false;
     compat_props_add(m->compat_props, hw_compat_2_6, hw_compat_2_6_len);
     compat_props_add(m->compat_props, pc_compat_2_6, pc_compat_2_6_len);
 }
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index fcc6e4eb2b..797e09500b 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -573,11 +573,12 @@ DEFINE_Q35_MACHINE(v2_7, "pc-q35-2.7", NULL,
 
 static void pc_q35_2_6_machine_options(MachineClass *m)
 {
+    X86MachineClass *x86mc = X86_MACHINE_CLASS(m);
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
 
     pc_q35_2_7_machine_options(m);
     pcmc->legacy_cpu_hotplug = true;
-    pcmc->linuxboot_dma_enabled = false;
+    x86mc->fwcfg_dma_enabled = false;
     compat_props_add(m->compat_props, hw_compat_2_6, hw_compat_2_6_len);
     compat_props_add(m->compat_props, pc_compat_2_6, pc_compat_2_6_len);
 }
diff --git a/hw/i386/x86.c b/hw/i386/x86.c
index 76de7e2265..a34498fe16 100644
--- a/hw/i386/x86.c
+++ b/hw/i386/x86.c
@@ -764,9 +764,9 @@ static bool load_elfboot(const char *kernel_filename,
 void x86_load_linux(X86MachineState *x86ms,
                     FWCfgState *fw_cfg,
                     int acpi_data_size,
-                    bool pvh_enabled,
-                    bool linuxboot_dma_enabled)
+                    bool pvh_enabled)
 {
+    bool linuxboot_dma_enabled = X86_MACHINE_GET_CLASS(x86ms)->fwcfg_dma_enabled;
     uint16_t protocol;
     int setup_size, kernel_size, cmdline_size;
     int dtb_size, setup_data_offset;
@@ -1332,6 +1332,7 @@ static void x86_machine_class_init(ObjectClass *oc, void *data)
     mc->possible_cpu_arch_ids = x86_possible_cpu_arch_ids;
     x86mc->compat_apic_id_mode = false;
     x86mc->save_tsc_khz = true;
+    x86mc->fwcfg_dma_enabled = true;
     nc->nmi_monitor_handler = x86_nmi;
 
     object_class_property_add(oc, X86_MACHINE_SMM, "OnOffAuto",
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 11426e26dc..9162aded21 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -116,9 +116,6 @@ struct PCMachineClass {
     /* generate legacy CPU hotplug AML */
     bool legacy_cpu_hotplug;
 
-    /* use DMA capable linuxboot option rom */
-    bool linuxboot_dma_enabled;
-
     /* use PVH to load kernels that support this feature */
     bool pvh_enabled;
 
diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h
index 23267a3674..bb1cfb8896 100644
--- a/include/hw/i386/x86.h
+++ b/include/hw/i386/x86.h
@@ -38,6 +38,8 @@ struct X86MachineClass {
     bool save_tsc_khz;
     /* Enables contiguous-apic-ID mode */
     bool compat_apic_id_mode;
+    /* use DMA capable linuxboot option rom */
+    bool fwcfg_dma_enabled;
 };
 
 struct X86MachineState {
@@ -120,8 +122,7 @@ void x86_bios_rom_init(MachineState *ms, const char *default_firmware,
 void x86_load_linux(X86MachineState *x86ms,
                     FWCfgState *fw_cfg,
                     int acpi_data_size,
-                    bool pvh_enabled,
-                    bool linuxboot_dma_enabled);
+                    bool pvh_enabled);
 
 bool x86_machine_is_smm_enabled(const X86MachineState *x86ms);
 bool x86_machine_is_acpi_enabled(const X86MachineState *x86ms);
-- 
2.31.1




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

* [PULL 08/27] optionrom: add a DMA-enabled multiboot ROM
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (6 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 07/27] target/i386: move linuxboot_dma_enabled to X86MachineState Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 09/27] target/i386: use DMA-enabled multiboot ROM for new-enough QEMU machine types Paolo Bonzini
                   ` (19 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Adam Lackorzynski, Marcus Hähnel

From: Marcus Hähnel <marcus.haehnel@kernkonzept.com>

Add a new option rom for the multiboot loader, using DMA transfers to copy
data instead of "rep insb".

This significantly lowers QEMU's startup latency by a factor of about 40,
for example, going from 30sec to 0.8sec when loading modules of 120MB
in size.

Signed-off-by: Marcus Hähnel <marcus.haehnel@kernkonzept.com>
Signed-off-by: Adam Lackorzynski <adam@l4re.org>
[Modified to keep the non-DMA code depending on #ifdef USE_FW_CFG_DMA;
 do not write below stack. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 pc-bios/meson.build               |   1 +
 pc-bios/multiboot_dma.bin         | Bin 0 -> 1024 bytes
 pc-bios/optionrom/Makefile        |   4 +-
 pc-bios/optionrom/multiboot.S     |   4 +-
 pc-bios/optionrom/multiboot_dma.S |   2 +
 pc-bios/optionrom/optionrom.h     |  66 ++++++++++++++++++++++++++++++
 6 files changed, 72 insertions(+), 5 deletions(-)
 create mode 100644 pc-bios/multiboot_dma.bin
 create mode 100644 pc-bios/optionrom/multiboot_dma.S

diff --git a/pc-bios/meson.build b/pc-bios/meson.build
index a44c9bc127..b40ff3f2bd 100644
--- a/pc-bios/meson.build
+++ b/pc-bios/meson.build
@@ -63,6 +63,7 @@ blobs = files(
   'petalogix-s3adsp1800.dtb',
   'petalogix-ml605.dtb',
   'multiboot.bin',
+  'multiboot_dma.bin',
   'linuxboot.bin',
   'linuxboot_dma.bin',
   'kvmvapic.bin',
diff --git a/pc-bios/multiboot_dma.bin b/pc-bios/multiboot_dma.bin
new file mode 100644
index 0000000000000000000000000000000000000000..c0e2c3102a3358207c61d3ae113524fb6007abc3
GIT binary patch
literal 1024
zcmd^-v1=1i9LIlmUTlcNU1}{N5`u&{DAHSmq6iKdix;GHRxaNnR0A<Lc978Fk#IvN
zaS+5wQE+fL&*iQWa#czc94ZyL>R{3q;@~8~^LMo;4s!p158nI!-tWur_ul*P<{!&%
z=%3>xm5f`4Bq!!)`Rkwf;(oFd*qcAb=mhXX1)X>Bw-tylkUpR_ETXkH1AnO4L$nJ|
zWJui_M1kmKmTID)P`mI^=HM`~{VB1t1l_Ye=Lor4X5{8Gd)zzw_o4<6zLQJ!dr<pW
z;7%~ysSHL?*HHx*O%k}?fCyRL<7_RWt(4;Aqn}X}S>MolrKNZG2Z|kTOyaJIhYFc^
zFhhuQ9`r5fQLCrm#T4^_QylQ>8kgs;ZX9bIEiXb`8AIxu;?h~d%9izBkKht%WM1G*
z^E{W9(OT9dt5in2qF}|dPH>dL>{=sV#-U1<quUb@YkIW%niI?8-7fCz#695e<V=WZ
zrVCY?W~`3Hw@^=cHALr#9F2GOTYJ;??9d*-Vbsi+;lz|<$jMX#;lr6ov3qKNLH7(W
z+>yFoWnOtw14D$&k*SUtsT%wS`ki@#&rUrnmtuDv`PtJm(Kg?H$Pdc0CL@YCy4R<D
pT|LnIbg(BnP0#tqRx5M!bkkaD-nd?`H;YU4Yi6yHwD{k({tHC8FAx9#

literal 0
HcmV?d00001

diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index 3482508a86..5d55d25acc 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -2,7 +2,7 @@ include config.mak
 SRC_DIR := $(TOPSRC_DIR)/pc-bios/optionrom
 VPATH = $(SRC_DIR)
 
-all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
+all: multiboot.bin multiboot_dma.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
 # Dummy command so that make thinks it has done something
 	@true
 
@@ -41,8 +41,6 @@ override CFLAGS += $(call cc-option, $(Wa)-32)
 LD_I386_EMULATION ?= elf_i386
 override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
 
-all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
-
 pvh.img: pvh.o pvh_main.o
 
 %.o: %.S
diff --git a/pc-bios/optionrom/multiboot.S b/pc-bios/optionrom/multiboot.S
index b7efe4de34..181a4b03a3 100644
--- a/pc-bios/optionrom/multiboot.S
+++ b/pc-bios/optionrom/multiboot.S
@@ -68,7 +68,7 @@ run_multiboot:
 	mov		%eax, %es
 
 	/* Read the bootinfo struct into RAM */
-	read_fw_blob(FW_CFG_INITRD)
+	read_fw_blob_dma(FW_CFG_INITRD)
 
 	/* FS = bootinfo_struct */
 	read_fw		FW_CFG_INITRD_ADDR
@@ -188,7 +188,7 @@ prot_mode:
 	movl		%eax, %gs
 
 	/* Read the kernel and modules into RAM */
-	read_fw_blob(FW_CFG_KERNEL)
+	read_fw_blob_dma(FW_CFG_KERNEL)
 
 	/* Jump off to the kernel */
 	read_fw		FW_CFG_KERNEL_ENTRY
diff --git a/pc-bios/optionrom/multiboot_dma.S b/pc-bios/optionrom/multiboot_dma.S
new file mode 100644
index 0000000000..d809af3e23
--- /dev/null
+++ b/pc-bios/optionrom/multiboot_dma.S
@@ -0,0 +1,2 @@
+#define USE_FW_CFG_DMA 1
+#include "multiboot.S"
diff --git a/pc-bios/optionrom/optionrom.h b/pc-bios/optionrom/optionrom.h
index a2b612f1a7..8d74c0ddf3 100644
--- a/pc-bios/optionrom/optionrom.h
+++ b/pc-bios/optionrom/optionrom.h
@@ -37,6 +37,17 @@
 #define BIOS_CFG_IOPORT_CFG	0x510
 #define BIOS_CFG_IOPORT_DATA	0x511
 
+#define FW_CFG_DMA_CTL_ERROR   0x01
+#define FW_CFG_DMA_CTL_READ    0x02
+#define FW_CFG_DMA_CTL_SKIP    0x04
+#define FW_CFG_DMA_CTL_SELECT  0x08
+#define FW_CFG_DMA_CTL_WRITE   0x10
+
+#define FW_CFG_DMA_SIGNATURE 0x51454d5520434647ULL /* "QEMU CFG" */
+
+#define BIOS_CFG_DMA_ADDR_HIGH  0x514
+#define BIOS_CFG_DMA_ADDR_LOW   0x518
+
 /* Break the translation block flow so -d cpu shows us values */
 #define DEBUG_HERE \
 	jmp		1f;				\
@@ -62,6 +73,61 @@
 	bswap		%eax
 .endm
 
+
+/*
+ * Read data from the fw_cfg device using DMA.
+ * Clobbers:	%edx, %eax, ADDR, SIZE, memory[%esp-16] to memory[%esp]
+ */
+.macro read_fw_dma VAR, SIZE, ADDR
+        /* Address */
+	bswapl		\ADDR
+	pushl		\ADDR
+
+	/* We only support 32 bit target addresses */
+	xorl		%eax, %eax
+	pushl		%eax
+	mov		$BIOS_CFG_DMA_ADDR_HIGH, %dx
+	outl		%eax, (%dx)
+
+	/* Size */
+	bswapl		\SIZE
+	pushl		\SIZE
+
+        /* Control */
+	movl		$(\VAR << 16) | (FW_CFG_DMA_CTL_READ | FW_CFG_DMA_CTL_SELECT), %eax
+	bswapl		%eax
+	pushl		%eax
+
+	movl		%esp, %eax /* Address of the struct we generated */
+	bswapl		%eax
+	mov		$BIOS_CFG_DMA_ADDR_LOW, %dx
+	outl		%eax, (%dx) /* Initiate DMA */
+
+1:  mov		(%esp), %eax /* Wait for completion */
+	bswapl		%eax
+	testl		$~FW_CFG_DMA_CTL_ERROR, %eax
+	jnz		1b
+       addl            $16, %esp
+.endm
+
+
+/*
+ * Read a blob from the fw_cfg device using DMA
+ * Requires _ADDR, _SIZE and _DATA values for the parameter.
+ *
+ * Clobbers:	%eax, %edx, %es, %ecx, %edi and adresses %esp-20 to %esp
+ */
+#ifdef USE_FW_CFG_DMA
+#define read_fw_blob_dma(var) \
+	read_fw		var ## _SIZE; \
+	mov		%eax, %ecx; \
+	read_fw		var ## _ADDR; \
+	mov		%eax, %edi ;\
+	read_fw_dma	var ## _DATA, %ecx, %edi
+#else
+#define read_fw_blob_dma(var) read_fw_blob(var)
+#endif
+
 #define read_fw_blob_pre(var)				\
 	read_fw		var ## _SIZE;			\
 	mov		%eax, %ecx;			\
-- 
2.31.1




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

* [PULL 09/27] target/i386: use DMA-enabled multiboot ROM for new-enough QEMU machine types
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (7 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 08/27] optionrom: add a DMA-enabled multiboot ROM Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 10/27] configure: remove useless NPTL probe Paolo Bonzini
                   ` (18 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel

As long as fw_cfg supports DMA, the new ROM can be used also on older
machine types because it has the same size as the existing one.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/i386/multiboot.c | 10 ++++++++--
 hw/i386/multiboot.h |  4 +++-
 hw/i386/pc.c        |  3 ++-
 hw/i386/x86.c       |  2 +-
 4 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
index 9e7d69d470..0a10089f14 100644
--- a/hw/i386/multiboot.c
+++ b/hw/i386/multiboot.c
@@ -143,7 +143,8 @@ static void mb_add_mod(MultibootState *s,
     s->mb_mods_count++;
 }
 
-int load_multiboot(FWCfgState *fw_cfg,
+int load_multiboot(X86MachineState *x86ms,
+                   FWCfgState *fw_cfg,
                    FILE *f,
                    const char *kernel_filename,
                    const char *initrd_filename,
@@ -151,6 +152,7 @@ int load_multiboot(FWCfgState *fw_cfg,
                    int kernel_file_size,
                    uint8_t *header)
 {
+    bool multiboot_dma_enabled = X86_MACHINE_GET_CLASS(x86ms)->fwcfg_dma_enabled;
     int i, is_multiboot = 0;
     uint32_t flags = 0;
     uint32_t mh_entry_addr;
@@ -401,7 +403,11 @@ int load_multiboot(FWCfgState *fw_cfg,
     fw_cfg_add_bytes(fw_cfg, FW_CFG_INITRD_DATA, mb_bootinfo_data,
                      sizeof(bootinfo));
 
-    option_rom[nb_option_roms].name = "multiboot.bin";
+    if (multiboot_dma_enabled) {
+        option_rom[nb_option_roms].name = "multiboot_dma.bin";
+    } else {
+        option_rom[nb_option_roms].name = "multiboot.bin";
+    }
     option_rom[nb_option_roms].bootindex = 0;
     nb_option_roms++;
 
diff --git a/hw/i386/multiboot.h b/hw/i386/multiboot.h
index 60de309cd1..2b9182a8ea 100644
--- a/hw/i386/multiboot.h
+++ b/hw/i386/multiboot.h
@@ -2,8 +2,10 @@
 #define QEMU_MULTIBOOT_H
 
 #include "hw/nvram/fw_cfg.h"
+#include "hw/i386/x86.h"
 
-int load_multiboot(FWCfgState *fw_cfg,
+int load_multiboot(X86MachineState *x86ms,
+                   FWCfgState *fw_cfg,
                    FILE *f,
                    const char *kernel_filename,
                    const char *initrd_filename,
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index d203db7845..fcfb7f7139 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -780,7 +780,8 @@ void xen_load_linux(PCMachineState *pcms)
         assert(!strcmp(option_rom[i].name, "linuxboot.bin") ||
                !strcmp(option_rom[i].name, "linuxboot_dma.bin") ||
                !strcmp(option_rom[i].name, "pvh.bin") ||
-               !strcmp(option_rom[i].name, "multiboot.bin"));
+               !strcmp(option_rom[i].name, "multiboot.bin") ||
+               !strcmp(option_rom[i].name, "multiboot_dma.bin"));
         rom_add_option(option_rom[i].name, option_rom[i].bootindex);
     }
     x86ms->fw_cfg = fw_cfg;
diff --git a/hw/i386/x86.c b/hw/i386/x86.c
index a34498fe16..b84840a1bb 100644
--- a/hw/i386/x86.c
+++ b/hw/i386/x86.c
@@ -814,7 +814,7 @@ void x86_load_linux(X86MachineState *x86ms,
          * PVH), so we try multiboot first since we check the multiboot magic
          * header before to load it.
          */
-        if (load_multiboot(fw_cfg, f, kernel_filename, initrd_filename,
+        if (load_multiboot(x86ms, fw_cfg, f, kernel_filename, initrd_filename,
                            kernel_cmdline, kernel_size, header)) {
             return;
         }
-- 
2.31.1




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

* [PULL 10/27] configure: remove useless NPTL probe
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (8 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 09/27] target/i386: use DMA-enabled multiboot ROM for new-enough QEMU machine types Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 11/27] configure: do not duplicate CPU_CFLAGS into QEMU_LDFLAGS Paolo Bonzini
                   ` (17 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Richard Henderson

Using a linuxthreads system with a recent QEMU will have bigger problems
than just not having NPTL.  Remove the unnecessary check.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 19 -------------------
 1 file changed, 19 deletions(-)

diff --git a/configure b/configure
index 03162008aa..b5c36347eb 100755
--- a/configure
+++ b/configure
@@ -1994,25 +1994,6 @@ if ! has "$pkg_config_exe"; then
   error_exit "pkg-config binary '$pkg_config_exe' not found"
 fi
 
-##########################################
-# NPTL probe
-
-if test "$linux_user" = "yes"; then
-  cat > $TMPC <<EOF
-#include <sched.h>
-#include <linux/futex.h>
-int main(void) {
-#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
-#error bork
-#endif
-  return 0;
-}
-EOF
-  if ! compile_object ; then
-    feature_not_found "nptl" "Install glibc and linux kernel headers."
-  fi
-fi
-
 ##########################################
 # xen probe
 
-- 
2.31.1




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

* [PULL 11/27] configure: do not duplicate CPU_CFLAGS into QEMU_LDFLAGS
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (9 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 10/27] configure: remove useless NPTL probe Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 12/27] hvf: Avoid mapping regions < PAGE_SIZE as ram Paolo Bonzini
                   ` (16 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé

Since commit 4dba2789084 ("configure, meson: move CPU_CFLAGS out of
QEMU_CFLAGS"), CPU_CFLAGS is included in the link commands both during
configure and (via config-meson.cross) during meson.  It need not be
added separately to QEMU_LDFLAGS.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 53 ++++++++++++++---------------------------------------
 1 file changed, 14 insertions(+), 39 deletions(-)

diff --git a/configure b/configure
index b5c36347eb..c0018a304f 100755
--- a/configure
+++ b/configure
@@ -1263,45 +1263,20 @@ firmwarepath="${firmwarepath:-$datadir/qemu-firmware}"
 localedir="${localedir:-$datadir/locale}"
 
 case "$cpu" in
-    ppc)
-           CPU_CFLAGS="-m32"
-           QEMU_LDFLAGS="-m32 $QEMU_LDFLAGS"
-           ;;
-    ppc64)
-           CPU_CFLAGS="-m64"
-           QEMU_LDFLAGS="-m64 $QEMU_LDFLAGS"
-           ;;
-    sparc)
-           CPU_CFLAGS="-m32 -mv8plus -mcpu=ultrasparc"
-           QEMU_LDFLAGS="-m32 -mv8plus $QEMU_LDFLAGS"
-           ;;
-    sparc64)
-           CPU_CFLAGS="-m64 -mcpu=ultrasparc"
-           QEMU_LDFLAGS="-m64 $QEMU_LDFLAGS"
-           ;;
-    s390)
-           CPU_CFLAGS="-m31"
-           QEMU_LDFLAGS="-m31 $QEMU_LDFLAGS"
-           ;;
-    s390x)
-           CPU_CFLAGS="-m64"
-           QEMU_LDFLAGS="-m64 $QEMU_LDFLAGS"
-           ;;
-    i386)
-           CPU_CFLAGS="-m32"
-           QEMU_LDFLAGS="-m32 $QEMU_LDFLAGS"
-           ;;
-    x86_64)
-           # ??? Only extremely old AMD cpus do not have cmpxchg16b.
-           # If we truly care, we should simply detect this case at
-           # runtime and generate the fallback to serial emulation.
-           CPU_CFLAGS="-m64 -mcx16"
-           QEMU_LDFLAGS="-m64 $QEMU_LDFLAGS"
-           ;;
-    x32)
-           CPU_CFLAGS="-mx32"
-           QEMU_LDFLAGS="-mx32 $QEMU_LDFLAGS"
-           ;;
+    ppc) CPU_CFLAGS="-m32" ;;
+    ppc64) CPU_CFLAGS="-m64" ;;
+    sparc) CPU_CFLAGS="-m32 -mv8plus -mcpu=ultrasparc" ;;
+    sparc64) CPU_CFLAGS="-m64 -mcpu=ultrasparc" ;;
+    s390) CPU_CFLAGS="-m31" ;;
+    s390x) CPU_CFLAGS="-m64" ;;
+    i386) CPU_CFLAGS="-m32" ;;
+    x32) CPU_CFLAGS="-mx32" ;;
+
+    # ??? Only extremely old AMD cpus do not have cmpxchg16b.
+    # If we truly care, we should simply detect this case at
+    # runtime and generate the fallback to serial emulation.
+    x86_64) CPU_CFLAGS="-m64 -mcx16" ;;
+
     # No special flags required for other host CPUs
 esac
 
-- 
2.31.1




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

* [PULL 12/27] hvf: Avoid mapping regions < PAGE_SIZE as ram
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (10 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 11/27] configure: do not duplicate CPU_CFLAGS into QEMU_LDFLAGS Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 13/27] hw/i386: Rename default_bus_bypass_iommu Paolo Bonzini
                   ` (15 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alexander Graf, Philippe Mathieu-Daudé

From: Alexander Graf <agraf@csgraf.de>

HVF has generic memory listener code that adds all RAM regions as HVF RAM
regions. However, HVF can only handle page aligned, page granule regions.

So let's ignore regions that are not page aligned and sized. They will be
trapped as MMIO instead.

Signed-off-by: Alexander Graf <agraf@csgraf.de>

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20211025132147.28308-1-agraf@csgraf.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 accel/hvf/hvf-accel-ops.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c
index 2b2c411076..54457c76c2 100644
--- a/accel/hvf/hvf-accel-ops.c
+++ b/accel/hvf/hvf-accel-ops.c
@@ -122,6 +122,7 @@ static void hvf_set_phys_mem(MemoryRegionSection *section, bool add)
     MemoryRegion *area = section->mr;
     bool writeable = !area->readonly && !area->rom_device;
     hv_memory_flags_t flags;
+    uint64_t page_size = qemu_real_host_page_size;
 
     if (!memory_region_is_ram(area)) {
         if (writeable) {
@@ -135,6 +136,12 @@ static void hvf_set_phys_mem(MemoryRegionSection *section, bool add)
         }
     }
 
+    if (!QEMU_IS_ALIGNED(int128_get64(section->size), page_size) ||
+        !QEMU_IS_ALIGNED(section->offset_within_address_space, page_size)) {
+        /* Not page aligned, so we can not map as RAM */
+        add = false;
+    }
+
     mem = hvf_find_overlap_slot(
             section->offset_within_address_space,
             int128_get64(section->size));
-- 
2.31.1




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

* [PULL 13/27] hw/i386: Rename default_bus_bypass_iommu
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (11 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 12/27] hvf: Avoid mapping regions < PAGE_SIZE as ram Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 14/27] watchdog: add information from -watchdog help to -device help Paolo Bonzini
                   ` (14 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: Jean-Philippe Brucker, Philippe Mathieu-Daudé,
	qemu-stable, Eric Auger

From: Jean-Philippe Brucker <jean-philippe@linaro.org>

Since commit d8fb7d0969d5 ("vl: switch -M parsing to keyval"), machine
parameter definitions cannot use underscores, because keyval_dashify()
transforms them to dashes and the parser doesn't find the parameter.

This affects option default_bus_bypass_iommu which was introduced in the
same release:

$ qemu-system-x86_64 -M q35,default_bus_bypass_iommu=on
qemu-system-x86_64: Property 'pc-q35-6.1-machine.default-bus-bypass-iommu' not found

Rename the parameter to "default-bus-bypass-iommu". Passing
"default_bus_bypass_iommu" is still valid since the underscore are
transformed automatically.

Fixes: c9e96b04fc19 ("hw/i386: Add a default_bus_bypass_iommu pc machine option")
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Message-Id: <20211025104737.1560274-1-jean-philippe@linaro.org>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/i386/pc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index fcfb7f7139..ac5af274cd 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1718,7 +1718,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
     object_class_property_add_bool(oc, "hpet",
         pc_machine_get_hpet, pc_machine_set_hpet);
 
-    object_class_property_add_bool(oc, "default_bus_bypass_iommu",
+    object_class_property_add_bool(oc, "default-bus-bypass-iommu",
         pc_machine_get_default_bus_bypass_iommu,
         pc_machine_set_default_bus_bypass_iommu);
 
-- 
2.31.1




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

* [PULL 14/27] watchdog: add information from -watchdog help to -device help
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (12 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 13/27] hw/i386: Rename default_bus_bypass_iommu Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 15/27] vl: deprecate -watchdog Paolo Bonzini
                   ` (13 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel

List all watchdog devices in a separate category, and populate
their descriptions.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/watchdog/sbsa_gwdt.c    | 3 ++-
 hw/watchdog/wdt_aspeed.c   | 3 ++-
 hw/watchdog/wdt_diag288.c  | 3 ++-
 hw/watchdog/wdt_i6300esb.c | 3 ++-
 hw/watchdog/wdt_ib700.c    | 3 ++-
 hw/watchdog/wdt_imx2.c     | 4 ++--
 include/hw/qdev-core.h     | 1 +
 softmmu/qdev-monitor.c     | 1 +
 8 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/hw/watchdog/sbsa_gwdt.c b/hw/watchdog/sbsa_gwdt.c
index d0998f8489..e49cacd0e2 100644
--- a/hw/watchdog/sbsa_gwdt.c
+++ b/hw/watchdog/sbsa_gwdt.c
@@ -273,8 +273,9 @@ static void wdt_sbsa_gwdt_class_init(ObjectClass *klass, void *data)
     dc->realize = wdt_sbsa_gwdt_realize;
     dc->reset = wdt_sbsa_gwdt_reset;
     dc->hotpluggable = false;
-    set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+    set_bit(DEVICE_CATEGORY_WATCHDOG, dc->categories);
     dc->vmsd = &vmstate_sbsa_gwdt;
+    dc->desc = "SBSA-compliant generic watchdog device";
 }
 
 static const TypeInfo wdt_sbsa_gwdt_info = {
diff --git a/hw/watchdog/wdt_aspeed.c b/hw/watchdog/wdt_aspeed.c
index 146ffcd713..6aa6f90b66 100644
--- a/hw/watchdog/wdt_aspeed.c
+++ b/hw/watchdog/wdt_aspeed.c
@@ -293,9 +293,10 @@ static void aspeed_wdt_class_init(ObjectClass *klass, void *data)
     dc->desc = "ASPEED Watchdog Controller";
     dc->realize = aspeed_wdt_realize;
     dc->reset = aspeed_wdt_reset;
-    set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+    set_bit(DEVICE_CATEGORY_WATCHDOG, dc->categories);
     dc->vmsd = &vmstate_aspeed_wdt;
     device_class_set_props(dc, aspeed_wdt_properties);
+    dc->desc = "Aspeed watchdog device";
 }
 
 static const TypeInfo aspeed_wdt_info = {
diff --git a/hw/watchdog/wdt_diag288.c b/hw/watchdog/wdt_diag288.c
index e135a4de8b..9e8882a11c 100644
--- a/hw/watchdog/wdt_diag288.c
+++ b/hw/watchdog/wdt_diag288.c
@@ -122,9 +122,10 @@ static void wdt_diag288_class_init(ObjectClass *klass, void *data)
     dc->unrealize = wdt_diag288_unrealize;
     dc->reset = wdt_diag288_reset;
     dc->hotpluggable = false;
-    set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+    set_bit(DEVICE_CATEGORY_WATCHDOG, dc->categories);
     dc->vmsd = &vmstate_diag288;
     diag288->handle_timer = wdt_diag288_handle_timer;
+    dc->desc = "diag288 device for s390x platform";
 }
 
 static const TypeInfo wdt_diag288_info = {
diff --git a/hw/watchdog/wdt_i6300esb.c b/hw/watchdog/wdt_i6300esb.c
index 4c52e3bb9e..f99a1c9d29 100644
--- a/hw/watchdog/wdt_i6300esb.c
+++ b/hw/watchdog/wdt_i6300esb.c
@@ -476,7 +476,8 @@ static void i6300esb_class_init(ObjectClass *klass, void *data)
     k->class_id = PCI_CLASS_SYSTEM_OTHER;
     dc->reset = i6300esb_reset;
     dc->vmsd = &vmstate_i6300esb;
-    set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+    set_bit(DEVICE_CATEGORY_WATCHDOG, dc->categories);
+    dc->desc = "Intel 6300ESB";
 }
 
 static const TypeInfo i6300esb_info = {
diff --git a/hw/watchdog/wdt_ib700.c b/hw/watchdog/wdt_ib700.c
index 177aaa503f..91d1bdc0da 100644
--- a/hw/watchdog/wdt_ib700.c
+++ b/hw/watchdog/wdt_ib700.c
@@ -140,7 +140,8 @@ static void wdt_ib700_class_init(ObjectClass *klass, void *data)
     dc->realize = wdt_ib700_realize;
     dc->reset = wdt_ib700_reset;
     dc->vmsd = &vmstate_ib700;
-    set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+    set_bit(DEVICE_CATEGORY_WATCHDOG, dc->categories);
+    dc->desc = "iBASE 700";
 }
 
 static const TypeInfo wdt_ib700_info = {
diff --git a/hw/watchdog/wdt_imx2.c b/hw/watchdog/wdt_imx2.c
index a5fb76308f..c3128370b5 100644
--- a/hw/watchdog/wdt_imx2.c
+++ b/hw/watchdog/wdt_imx2.c
@@ -280,8 +280,8 @@ static void imx2_wdt_class_init(ObjectClass *klass, void *data)
     dc->realize = imx2_wdt_realize;
     dc->reset = imx2_wdt_reset;
     dc->vmsd = &vmstate_imx2_wdt;
-    dc->desc = "i.MX watchdog timer";
-    set_bit(DEVICE_CATEGORY_MISC, dc->categories);
+    dc->desc = "i.MX2 watchdog timer";
+    set_bit(DEVICE_CATEGORY_WATCHDOG, dc->categories);
 }
 
 static const TypeInfo imx2_wdt_info = {
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index 1bad07002d..72622bd337 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -26,6 +26,7 @@ typedef enum DeviceCategory {
     DEVICE_CATEGORY_SOUND,
     DEVICE_CATEGORY_MISC,
     DEVICE_CATEGORY_CPU,
+    DEVICE_CATEGORY_WATCHDOG,
     DEVICE_CATEGORY_MAX
 } DeviceCategory;
 
diff --git a/softmmu/qdev-monitor.c b/softmmu/qdev-monitor.c
index e49d9773d2..f8b3a4cd82 100644
--- a/softmmu/qdev-monitor.c
+++ b/softmmu/qdev-monitor.c
@@ -165,6 +165,7 @@ static void qdev_print_devinfos(bool show_no_user)
         [DEVICE_CATEGORY_SOUND]   = "Sound",
         [DEVICE_CATEGORY_MISC]    = "Misc",
         [DEVICE_CATEGORY_CPU]     = "CPU",
+        [DEVICE_CATEGORY_WATCHDOG]= "Watchdog",
         [DEVICE_CATEGORY_MAX]     = "Uncategorized",
     };
     GSList *list, *elt;
-- 
2.31.1




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

* [PULL 15/27] vl: deprecate -watchdog
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (13 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 14/27] watchdog: add information from -watchdog help to -device help Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 16/27] watchdog: remove select_watchdog_action Paolo Bonzini
                   ` (12 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel

-watchdog is the same as -device except that it is case insensitive (and it
allows only watchdog devices of course).  Now that "-device help" can list
as such the available watchdog devices, we can deprecate it.

Note that even though -watchdog tries to be case insensitive, it fails
at that: "-watchdog i6300xyz" fails with "Unknown -watchdog device",
but "-watchdog i6300ESB" also fails (when the generated -device option
is processed) with an error "'i6300ESB' is not a valid device model name".
For this reason, the documentation update does not mention the case
insensitivity of -watchdog.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 docs/about/deprecated.rst | 5 +++++
 softmmu/vl.c              | 1 +
 2 files changed, 6 insertions(+)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index be19317470..6155b32ee6 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -160,6 +160,11 @@ Use ``-display sdl`` instead.
 
 Use ``-display curses`` instead.
 
+``-watchdog`` (since 6.2)
+'''''''''''''''''''''''''
+
+Use ``-device`` instead.
+
 ``-smp`` ("parameter=0" SMP configurations) (since 6.2)
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/softmmu/vl.c b/softmmu/vl.c
index af0c4cbd99..570120f5c4 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -3256,6 +3256,7 @@ void qemu_init(int argc, char **argv, char **envp)
                     error_report("only one watchdog option may be given");
                     exit(1);
                 }
+                warn_report("-watchdog is deprecated; use -device instead.");
                 watchdog = optarg;
                 break;
             case QEMU_OPTION_action:
-- 
2.31.1




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

* [PULL 16/27] watchdog: remove select_watchdog_action
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (14 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 15/27] vl: deprecate -watchdog Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 17/27] hw/i386: fix vmmouse registration Paolo Bonzini
                   ` (11 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel

Instead of invoking select_watchdog_action from both HMP and command line,
go directly from HMP to QMP and use QemuOpts as the intermediary for the
command line.

This makes -watchdog-action explicitly a shortcut for "-action watchdog",
so that "-watchdog-action" and "-action watchdog" override each other
based on the position on the command line; previously, "-action watchdog"
always won.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/watchdog/watchdog.c    | 14 --------------
 include/sysemu/watchdog.h |  1 -
 monitor/misc.c            | 15 ++++++++++++---
 softmmu/vl.c              | 10 +++++-----
 4 files changed, 17 insertions(+), 23 deletions(-)

diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c
index 0e98ffb73f..1437e6c5b6 100644
--- a/hw/watchdog/watchdog.c
+++ b/hw/watchdog/watchdog.c
@@ -76,20 +76,6 @@ int select_watchdog(const char *p)
     return 1;
 }
 
-int select_watchdog_action(const char *p)
-{
-    int action;
-    char *qapi_value;
-
-    qapi_value = g_ascii_strdown(p, -1);
-    action = qapi_enum_parse(&WatchdogAction_lookup, qapi_value, -1, NULL);
-    g_free(qapi_value);
-    if (action < 0)
-        return -1;
-    qmp_watchdog_set_action(action, &error_abort);
-    return 0;
-}
-
 WatchdogAction get_watchdog_action(void)
 {
     return watchdog_action;
diff --git a/include/sysemu/watchdog.h b/include/sysemu/watchdog.h
index a08d16380d..d2d4901dbb 100644
--- a/include/sysemu/watchdog.h
+++ b/include/sysemu/watchdog.h
@@ -37,7 +37,6 @@ typedef struct WatchdogTimerModel WatchdogTimerModel;
 
 /* in hw/watchdog.c */
 int select_watchdog(const char *p);
-int select_watchdog_action(const char *action);
 WatchdogAction get_watchdog_action(void);
 void watchdog_add_model(WatchdogTimerModel *model);
 void watchdog_perform_action(void);
diff --git a/monitor/misc.c b/monitor/misc.c
index c2d227a07c..1759d1e7f1 100644
--- a/monitor/misc.c
+++ b/monitor/misc.c
@@ -70,6 +70,7 @@
 #include "qapi/qapi-commands-migration.h"
 #include "qapi/qapi-commands-misc.h"
 #include "qapi/qapi-commands-qom.h"
+#include "qapi/qapi-commands-run-state.h"
 #include "qapi/qapi-commands-trace.h"
 #include "qapi/qapi-init-commands.h"
 #include "qapi/error.h"
@@ -471,10 +472,18 @@ static void hmp_gdbserver(Monitor *mon, const QDict *qdict)
 
 static void hmp_watchdog_action(Monitor *mon, const QDict *qdict)
 {
-    const char *action = qdict_get_str(qdict, "action");
-    if (select_watchdog_action(action) == -1) {
-        monitor_printf(mon, "Unknown watchdog action '%s'\n", action);
+    Error *err = NULL;
+    WatchdogAction action;
+    char *qapi_value;
+
+    qapi_value = g_ascii_strdown(qdict_get_str(qdict, "action"), -1);
+    action = qapi_enum_parse(&WatchdogAction_lookup, qapi_value, -1, &err);
+    g_free(qapi_value);
+    if (err) {
+        hmp_handle_error(mon, err);
+        return;
     }
+    qmp_watchdog_set_action(action, &error_abort);
 }
 
 static void monitor_printc(Monitor *mon, int c)
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 570120f5c4..1159a64bce 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -3265,12 +3265,12 @@ void qemu_init(int argc, char **argv, char **envp)
                      exit(1);
                 }
                 break;
-            case QEMU_OPTION_watchdog_action:
-                if (select_watchdog_action(optarg) == -1) {
-                    error_report("unknown -watchdog-action parameter");
-                    exit(1);
-                }
+            case QEMU_OPTION_watchdog_action: {
+                QemuOpts *opts;
+                opts = qemu_opts_create(qemu_find_opts("action"), NULL, 0, &error_abort);
+                qemu_opt_set(opts, "watchdog", optarg, &error_abort);
                 break;
+            }
             case QEMU_OPTION_parallel:
                 add_device_config(DEV_PARALLEL, optarg);
                 default_parallel = 0;
-- 
2.31.1




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

* [PULL 17/27] hw/i386: fix vmmouse registration
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (15 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 16/27] watchdog: remove select_watchdog_action Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 18/27] KVM: SVM: add migration support for nested TSC scaling Paolo Bonzini
                   ` (10 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Pavel Dovgalyuk

From: Pavel Dovgalyuk <pavel.dovgalyuk@ispras.ru>

According to the logic of vmmouse_update_handler function,
vmmouse should be registered as an event handler when
it's status is zero.
vmmouse_read_id resets the status but does not register
the handler.
This patch adds vmmouse registration and activation when
status is reset.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Message-Id: <163524204515.1914131.16465061981774791228.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/i386/vmmouse.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c
index df4798f502..3d66368286 100644
--- a/hw/i386/vmmouse.c
+++ b/hw/i386/vmmouse.c
@@ -158,6 +158,7 @@ static void vmmouse_read_id(VMMouseState *s)
 
     s->queue[s->nb_queue++] = VMMOUSE_VERSION;
     s->status = 0;
+    vmmouse_update_handler(s, s->absolute);
 }
 
 static void vmmouse_request_relative(VMMouseState *s)
-- 
2.31.1




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

* [PULL 18/27] KVM: SVM: add migration support for nested TSC scaling
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (16 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 17/27] hw/i386: fix vmmouse registration Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 19/27] esp: ensure in-flight SCSI requests are always cancelled Paolo Bonzini
                   ` (9 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Maxim Levitsky

From: Maxim Levitsky <mlevitsk@redhat.com>

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Message-Id: <20211101132300.192584-4-mlevitsk@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 target/i386/cpu.c     |  5 +++++
 target/i386/cpu.h     |  4 ++++
 target/i386/kvm/kvm.c | 15 +++++++++++++++
 target/i386/machine.c | 22 ++++++++++++++++++++++
 4 files changed, 46 insertions(+)

diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 598d451dcf..53a23ca006 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -5928,6 +5928,11 @@ static void x86_cpu_reset(DeviceState *dev)
     }
 
     x86_cpu_set_sgxlepubkeyhash(env);
+
+    if (env->features[FEAT_SVM] & CPUID_SVM_TSCSCALE) {
+        env->amd_tsc_scale_msr =  MSR_AMD64_TSC_RATIO_DEFAULT;
+    }
+
 #endif
 }
 
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
index 3edaad7688..04f2b790c9 100644
--- a/target/i386/cpu.h
+++ b/target/i386/cpu.h
@@ -499,6 +499,9 @@ typedef enum X86Seg {
 #define MSR_GSBASE                      0xc0000101
 #define MSR_KERNELGSBASE                0xc0000102
 #define MSR_TSC_AUX                     0xc0000103
+#define MSR_AMD64_TSC_RATIO             0xc0000104
+
+#define MSR_AMD64_TSC_RATIO_DEFAULT     0x100000000ULL
 
 #define MSR_VM_HSAVE_PA                 0xc0010117
 
@@ -1536,6 +1539,7 @@ typedef struct CPUX86State {
     uint32_t tsx_ctrl;
 
     uint64_t spec_ctrl;
+    uint64_t amd_tsc_scale_msr;
     uint64_t virt_ssbd;
 
     /* End of state preserved by INIT (dummy marker).  */
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
index 0eb7a0340c..5a698bde19 100644
--- a/target/i386/kvm/kvm.c
+++ b/target/i386/kvm/kvm.c
@@ -105,6 +105,7 @@ static bool has_msr_hv_reenlightenment;
 static bool has_msr_xss;
 static bool has_msr_umwait;
 static bool has_msr_spec_ctrl;
+static bool has_tsc_scale_msr;
 static bool has_msr_tsx_ctrl;
 static bool has_msr_virt_ssbd;
 static bool has_msr_smi_count;
@@ -2216,6 +2217,9 @@ static int kvm_get_supported_msrs(KVMState *s)
             case MSR_IA32_SPEC_CTRL:
                 has_msr_spec_ctrl = true;
                 break;
+            case MSR_AMD64_TSC_RATIO:
+                has_tsc_scale_msr = true;
+                break;
             case MSR_IA32_TSX_CTRL:
                 has_msr_tsx_ctrl = true;
                 break;
@@ -2972,6 +2976,10 @@ static int kvm_put_msrs(X86CPU *cpu, int level)
     if (has_msr_spec_ctrl) {
         kvm_msr_entry_add(cpu, MSR_IA32_SPEC_CTRL, env->spec_ctrl);
     }
+    if (has_tsc_scale_msr) {
+        kvm_msr_entry_add(cpu, MSR_AMD64_TSC_RATIO, env->amd_tsc_scale_msr);
+    }
+
     if (has_msr_tsx_ctrl) {
         kvm_msr_entry_add(cpu, MSR_IA32_TSX_CTRL, env->tsx_ctrl);
     }
@@ -3377,6 +3385,10 @@ static int kvm_get_msrs(X86CPU *cpu)
     if (has_msr_spec_ctrl) {
         kvm_msr_entry_add(cpu, MSR_IA32_SPEC_CTRL, 0);
     }
+    if (has_tsc_scale_msr) {
+        kvm_msr_entry_add(cpu, MSR_AMD64_TSC_RATIO, 0);
+    }
+
     if (has_msr_tsx_ctrl) {
         kvm_msr_entry_add(cpu, MSR_IA32_TSX_CTRL, 0);
     }
@@ -3788,6 +3800,9 @@ static int kvm_get_msrs(X86CPU *cpu)
         case MSR_IA32_SPEC_CTRL:
             env->spec_ctrl = msrs[i].data;
             break;
+        case MSR_AMD64_TSC_RATIO:
+            env->amd_tsc_scale_msr = msrs[i].data;
+            break;
         case MSR_IA32_TSX_CTRL:
             env->tsx_ctrl = msrs[i].data;
             break;
diff --git a/target/i386/machine.c b/target/i386/machine.c
index 4367931623..83c2b91529 100644
--- a/target/i386/machine.c
+++ b/target/i386/machine.c
@@ -1280,6 +1280,27 @@ static const VMStateDescription vmstate_spec_ctrl = {
     }
 };
 
+
+static bool amd_tsc_scale_msr_needed(void *opaque)
+{
+    X86CPU *cpu = opaque;
+    CPUX86State *env = &cpu->env;
+
+    return (env->features[FEAT_SVM] & CPUID_SVM_TSCSCALE);
+}
+
+static const VMStateDescription amd_tsc_scale_msr_ctrl = {
+    .name = "cpu/amd_tsc_scale_msr",
+    .version_id = 1,
+    .minimum_version_id = 1,
+    .needed = amd_tsc_scale_msr_needed,
+    .fields = (VMStateField[]){
+        VMSTATE_UINT64(env.amd_tsc_scale_msr, X86CPU),
+        VMSTATE_END_OF_LIST()
+    }
+};
+
+
 static bool intel_pt_enable_needed(void *opaque)
 {
     X86CPU *cpu = opaque;
@@ -1558,6 +1579,7 @@ const VMStateDescription vmstate_x86_cpu = {
         &vmstate_pkru,
         &vmstate_pkrs,
         &vmstate_spec_ctrl,
+        &amd_tsc_scale_msr_ctrl,
         &vmstate_mcg_ext_ctl,
         &vmstate_msr_intel_pt,
         &vmstate_msr_virt_ssbd,
-- 
2.31.1




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

* [PULL 19/27] esp: ensure in-flight SCSI requests are always cancelled
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (17 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 18/27] KVM: SVM: add migration support for nested TSC scaling Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 20/27] qtest/am53c974-test: add test for cancelling in-flight requests Paolo Bonzini
                   ` (8 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Mark Cave-Ayland

From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

There is currently a check in esp_select() to cancel any in-flight SCSI requests
to ensure that issuing multiple select commands without continuing through the
rest of the ESP state machine ignores all but the last SCSI request. This is
also enforced through the addition of assert()s in esp_transfer_data() and
scsi_read_data().

The get_cmd() function does not call esp_select() when TC == 0 which means it is
possible for a fuzzer to trigger these assert()s by sending a select command when
TC == 0 immediately after a valid SCSI CDB has been submitted.

Since esp_select() is only called from get_cmd(), hoist the check to cancel
in-flight SCSI requests from esp_select() into get_cmd() to ensure it is always
called when executing a select command to initiate a new SCSI request.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Closes: https://gitlab.com/qemu-project/qemu/-/issues/662
Closes: https://gitlab.com/qemu-project/qemu/-/issues/663
Message-Id: <20211101183516.8455-2-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/scsi/esp.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c
index 8454ed1773..84f935b549 100644
--- a/hw/scsi/esp.c
+++ b/hw/scsi/esp.c
@@ -204,11 +204,6 @@ static int esp_select(ESPState *s)
     s->ti_size = 0;
     fifo8_reset(&s->fifo);
 
-    if (s->current_req) {
-        /* Started a new command before the old one finished.  Cancel it.  */
-        scsi_req_cancel(s->current_req);
-    }
-
     s->current_dev = scsi_device_find(&s->bus, 0, target, 0);
     if (!s->current_dev) {
         /* No such drive */
@@ -235,6 +230,11 @@ static uint32_t get_cmd(ESPState *s, uint32_t maxlen)
     uint32_t dmalen, n;
     int target;
 
+    if (s->current_req) {
+        /* Started a new command before the old one finished.  Cancel it.  */
+        scsi_req_cancel(s->current_req);
+    }
+
     target = s->wregs[ESP_WBUSID] & BUSID_DID;
     if (s->dma) {
         dmalen = MIN(esp_get_tc(s), maxlen);
-- 
2.31.1




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

* [PULL 20/27] qtest/am53c974-test: add test for cancelling in-flight requests
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (18 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 19/27] esp: ensure in-flight SCSI requests are always cancelled Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 21/27] meson: bump submodule to 0.59.3 Paolo Bonzini
                   ` (7 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Mark Cave-Ayland

From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Based upon the qtest reproducer posted to Gitlab issue #663 at
https://gitlab.com/qemu-project/qemu/-/issues/663.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-Id: <20211101183516.8455-3-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 tests/qtest/am53c974-test.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/tests/qtest/am53c974-test.c b/tests/qtest/am53c974-test.c
index d996866cd4..9b1e4211bd 100644
--- a/tests/qtest/am53c974-test.c
+++ b/tests/qtest/am53c974-test.c
@@ -189,6 +189,40 @@ static void test_cancelled_request_ok(void)
     qtest_quit(s);
 }
 
+static void test_inflight_cancel_ok(void)
+{
+    QTestState *s = qtest_init(
+        "-device am53c974,id=scsi "
+        "-device scsi-hd,drive=disk0 -drive "
+        "id=disk0,if=none,file=null-co://,format=raw -nodefaults");
+    qtest_outl(s, 0xcf8, 0x80001000);
+    qtest_inw(s, 0xcfc);
+    qtest_outl(s, 0xcf8, 0x80001010);
+    qtest_outl(s, 0xcfc, 0xffffffff);
+    qtest_outl(s, 0xcf8, 0x80001010);
+    qtest_inl(s, 0xcfc);
+    qtest_outl(s, 0xcf8, 0x80001010);
+    qtest_outl(s, 0xcfc, 0xc001);
+    qtest_outl(s, 0xcf8, 0x80001004);
+    qtest_inw(s, 0xcfc);
+    qtest_outl(s, 0xcf8, 0x80001004);
+    qtest_outw(s, 0xcfc, 0x7);
+    qtest_outl(s, 0xcf8, 0x80001004);
+    qtest_inw(s, 0xcfc);
+    qtest_inb(s, 0xc000);
+    qtest_outb(s, 0xc008, 0x8);
+    qtest_outw(s, 0xc00b, 0x4100);
+    qtest_outb(s, 0xc009, 0x0);
+    qtest_outb(s, 0xc009, 0x0);
+    qtest_outw(s, 0xc00b, 0xc212);
+    qtest_outl(s, 0xc042, 0x2c2c5a88);
+    qtest_outw(s, 0xc00b, 0xc212);
+    qtest_outw(s, 0xc00b, 0x415a);
+    qtest_outl(s, 0xc03f, 0x3060303);
+    qtest_outl(s, 0xc00b, 0x5afa9054);
+    qtest_quit(s);
+}
+
 int main(int argc, char **argv)
 {
     const char *arch = qtest_get_arch();
@@ -212,6 +246,8 @@ int main(int argc, char **argv)
                        test_fifo_underflow_on_write_ok);
         qtest_add_func("am53c974/test_cancelled_request_ok",
                        test_cancelled_request_ok);
+        qtest_add_func("am53c974/test_inflight_cancel_ok",
+                       test_inflight_cancel_ok);
     }
 
     return g_test_run();
-- 
2.31.1




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

* [PULL 21/27] meson: bump submodule to 0.59.3
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (19 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 20/27] qtest/am53c974-test: add test for cancelling in-flight requests Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 22/27] meson.build: Allow to disable OSS again Paolo Bonzini
                   ` (6 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Thomas Huth

This gains some bugfixes, especially:

- it fixes the introspection of array options.  While technically we
still support Meson 0.58.2, this issue only appears when adding a new
option and not if the user is just building QEMU.  In the relatively
rare case of a contributor using --meson to point to a 0.58 version,
review can catch spurious changes to scripts/meson-buildoptions.sh
easily.

- it fixes "meson test" when it is not the process group leader.  Make is
the process group leader when "make check" invokes "meson test", so this
is a requirement for using it as a test harness.

Tested-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                     |  2 +-
 meson                         |  2 +-
 scripts/meson-buildoptions.py | 16 ----------------
 3 files changed, 2 insertions(+), 18 deletions(-)

diff --git a/configure b/configure
index c0018a304f..73af9a7b30 100755
--- a/configure
+++ b/configure
@@ -1500,7 +1500,7 @@ python_version=$($python -c 'import sys; print("%d.%d.%d" % (sys.version_info[0]
 python="$python -B"
 
 if test -z "$meson"; then
-    if test "$explicit_python" = no && has meson && version_ge "$(meson --version)" 0.59.2; then
+    if test "$explicit_python" = no && has meson && version_ge "$(meson --version)" 0.59.3; then
         meson=meson
     elif test $git_submodules_action != 'ignore' ; then
         meson=git
diff --git a/meson b/meson
index b25d94e7c7..12f9f04ba0 160000
--- a/meson
+++ b/meson
@@ -1 +1 @@
-Subproject commit b25d94e7c77fda05a7fdfe8afe562cf9760d69da
+Subproject commit 12f9f04ba0decfda425dbbf9a501084c153a2d18
diff --git a/scripts/meson-buildoptions.py b/scripts/meson-buildoptions.py
index 256523c09d..96969d89ee 100755
--- a/scripts/meson-buildoptions.py
+++ b/scripts/meson-buildoptions.py
@@ -150,23 +150,7 @@ def print_parse(options):
     print("}")
 
 
-def fixup_options(options):
-    # Meson <= 0.60 does not include the choices in array options, fix that up
-    for opt in options:
-        if opt["name"] == "trace_backends":
-            opt["choices"] = [
-                "dtrace",
-                "ftrace",
-                "log",
-                "nop",
-                "simple",
-                "syslog",
-                "ust",
-            ]
-
-
 options = load_options(json.load(sys.stdin))
-fixup_options(options)
 print("# This file is generated by meson-buildoptions.py, do not edit!")
 print_help(options)
 print_parse(options)
-- 
2.31.1




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

* [PULL 22/27] meson.build: Allow to disable OSS again
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (20 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 21/27] meson: bump submodule to 0.59.3 Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 23/27] meson: remove pointless warnings Paolo Bonzini
                   ` (5 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Thomas Huth

From: Thomas Huth <thuth@redhat.com>

If sys/soundcard.h is available, it is currently not possible to
disable OSS with the --disable-oss or --without-default-features
configure switches. Improve the check in meson.build to fix this.

Fixes: 87430d5b13 ("configure, meson: move audio driver detection to Meson")
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20211102105822.773131-1-thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 85f1e43dfe..0ab9c43bf2 100644
--- a/meson.build
+++ b/meson.build
@@ -911,7 +911,7 @@ if liblzfse.found() and not cc.links('''
 endif
 
 oss = not_found
-if not get_option('oss').auto() or have_system
+if have_system and not get_option('oss').disabled()
   if not cc.has_header('sys/soundcard.h')
     # not found
   elif targetos == 'netbsd'
-- 
2.31.1




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

* [PULL 23/27] meson: remove pointless warnings
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (21 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 22/27] meson.build: Allow to disable OSS again Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 24/27] meson: remove unnecessary coreaudio test program Paolo Bonzini
                   ` (4 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Meson tests sometimes warn if the required libraries and headers are present but
a test program fails to link.  In the case of DirectSound and OSS, however, there
is no test program so there is no need to warn.

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/meson.build b/meson.build
index 0ab9c43bf2..d09e314e04 100644
--- a/meson.build
+++ b/meson.build
@@ -924,8 +924,6 @@ if have_system and not get_option('oss').disabled()
   if not oss.found()
     if get_option('oss').enabled()
       error('OSS not found')
-    else
-      warning('OSS not found, disabling')
     endif
   endif
 endif
@@ -938,8 +936,6 @@ if not get_option('dsound').auto() or (targetos == 'windows' and have_system)
   if not dsound.found()
     if get_option('dsound').enabled()
       error('DirectSound not found')
-    else
-      warning('DirectSound not found, disabling')
     endif
   endif
 endif
-- 
2.31.1




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

* [PULL 24/27] meson: remove unnecessary coreaudio test program
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (22 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 23/27] meson: remove pointless warnings Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 25/27] Move the l2tpv3 test from configure to meson.build Paolo Bonzini
                   ` (3 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

AudioGetCurrentHostTime has been present forever, so the test is not
enforcing a specific version of macOS.  In fact the test was broken
since it was not linking against the coreaudio dependency; just remove it.

Fixes: 87430d5b13 ("configure, meson: move audio driver detection to Meson", 2021-10-14)
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build | 16 ----------------
 1 file changed, 16 deletions(-)

diff --git a/meson.build b/meson.build
index d09e314e04..30b06b12b4 100644
--- a/meson.build
+++ b/meson.build
@@ -944,22 +944,6 @@ coreaudio = not_found
 if not get_option('coreaudio').auto() or (targetos == 'darwin' and have_system)
   coreaudio = dependency('appleframeworks', modules: 'CoreAudio',
                          required: get_option('coreaudio'))
-  if coreaudio.found() and not cc.links('''
-    #include <CoreAudio/CoreAudio.h>
-    int main(void)
-    {
-      return (int)AudioGetCurrentHostTime();
-    }''')
-    coreaudio = not_found
-  endif
-
-  if not coreaudio.found()
-    if get_option('coreaudio').enabled()
-      error('CoreAudio not found')
-    else
-      warning('CoreAudio not found, disabling')
-    endif
-  endif
 endif
 
 opengl = not_found
-- 
2.31.1




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

* [PULL 25/27] Move the l2tpv3 test from configure to meson.build
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (23 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 24/27] meson: remove unnecessary coreaudio test program Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 26/27] configure: Remove the check for the __thread keyword Paolo Bonzini
                   ` (2 subsequent siblings)
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Thomas Huth

From: Thomas Huth <thuth@redhat.com>

And while we're at it, also provide a proper entry for this feature
in meson_options.txt, so that people who don't need it have a knob
to disable this feature.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20211028185910.1729744-3-thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                     | 17 -----------------
 meson.build                   |  8 ++++++++
 meson_options.txt             |  2 ++
 net/meson.build               |  4 +++-
 scripts/meson-buildoptions.sh |  3 +++
 5 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/configure b/configure
index 73af9a7b30..2268e5d0ab 100755
--- a/configure
+++ b/configure
@@ -1896,20 +1896,6 @@ if test -z "$want_tools"; then
     fi
 fi
 
-##########################################
-# L2TPV3 probe
-
-cat > $TMPC <<EOF
-#include <sys/socket.h>
-#include <linux/ip.h>
-int main(void) { return sizeof(struct mmsghdr); }
-EOF
-if compile_prog "" "" ; then
-  l2tpv3=yes
-else
-  l2tpv3=no
-fi
-
 #########################################
 # vhost interdependencies and host support
 
@@ -3514,9 +3500,6 @@ if test "$slirp_smbd" = "yes" ; then
   echo "CONFIG_SLIRP_SMBD=y" >> $config_host_mak
   echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak
 fi
-if test "$l2tpv3" = "yes" ; then
-  echo "CONFIG_L2TPV3=y" >> $config_host_mak
-fi
 if test "$gprof" = "yes" ; then
   echo "CONFIG_GPROF=y" >> $config_host_mak
 fi
diff --git a/meson.build b/meson.build
index 30b06b12b4..e330438270 100644
--- a/meson.build
+++ b/meson.build
@@ -1658,6 +1658,13 @@ config_host_data.set('HAVE_MLOCKALL', cc.links(gnu_source_prefix + '''
     return mlockall(MCL_FUTURE);
   }'''))
 
+have_l2tpv3 = false
+if not get_option('l2tpv3').disabled() and have_system
+  have_l2tpv3 = (cc.has_header_symbol('sys/socket.h', 'struct mmsghdr')
+                 and cc.has_header('linux/ip.h'))
+endif
+config_host_data.set('CONFIG_L2TPV3', have_l2tpv3)
+
 have_netmap = false
 if not get_option('netmap').disabled() and have_system
   have_netmap = cc.compiles('''
@@ -3377,6 +3384,7 @@ summary_info += {'JACK support':      jack}
 summary_info += {'brlapi support':    brlapi}
 summary_info += {'vde support':       vde}
 summary_info += {'netmap support':    have_netmap}
+summary_info += {'l2tpv3 support':    have_l2tpv3}
 summary_info += {'Linux AIO support': libaio}
 summary_info += {'Linux io_uring support': linux_io_uring}
 summary_info += {'ATTR/XATTR support': libattr}
diff --git a/meson_options.txt b/meson_options.txt
index 4ab4570125..e740dce2a5 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -141,6 +141,8 @@ option('u2f', type : 'feature', value : 'auto',
        description: 'U2F emulation support')
 option('usb_redir', type : 'feature', value : 'auto',
        description: 'libusbredir support')
+option('l2tpv3', type : 'feature', value : 'auto',
+       description: 'l2tpv3 network backend support')
 option('netmap', type : 'feature', value : 'auto',
        description: 'netmap network backend support')
 option('vde', type : 'feature', value : 'auto',
diff --git a/net/meson.build b/net/meson.build
index 94383e7460..847bc2ac85 100644
--- a/net/meson.build
+++ b/net/meson.build
@@ -18,7 +18,9 @@ softmmu_ss.add(files(
 
 softmmu_ss.add(when: 'CONFIG_TCG', if_true: files('filter-replay.c'))
 
-softmmu_ss.add(when: 'CONFIG_L2TPV3', if_true: files('l2tpv3.c'))
+if have_l2tpv3
+  softmmu_ss.add(files('l2tpv3.c'))
+endif
 softmmu_ss.add(when: slirp, if_true: files('slirp.c'))
 softmmu_ss.add(when: vde, if_true: files('vde.c'))
 if have_netmap
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
index c795a13020..55b8a78560 100644
--- a/scripts/meson-buildoptions.sh
+++ b/scripts/meson-buildoptions.sh
@@ -49,6 +49,7 @@ meson_options_help() {
   printf "%s\n" '  iconv           Font glyph conversion support'
   printf "%s\n" '  jack            JACK sound support'
   printf "%s\n" '  kvm             KVM acceleration support'
+  printf "%s\n" '  l2tpv3          l2tpv3 network backend support'
   printf "%s\n" '  libdaxctl       libdaxctl support'
   printf "%s\n" '  libiscsi        libiscsi userspace initiator'
   printf "%s\n" '  libnfs          libnfs block device driver'
@@ -166,6 +167,8 @@ _meson_option_parse() {
     --disable-jack) printf "%s" -Djack=disabled ;;
     --enable-kvm) printf "%s" -Dkvm=enabled ;;
     --disable-kvm) printf "%s" -Dkvm=disabled ;;
+    --enable-l2tpv3) printf "%s" -Dl2tpv3=enabled ;;
+    --disable-l2tpv3) printf "%s" -Dl2tpv3=disabled ;;
     --enable-libdaxctl) printf "%s" -Dlibdaxctl=enabled ;;
     --disable-libdaxctl) printf "%s" -Dlibdaxctl=disabled ;;
     --enable-libiscsi) printf "%s" -Dlibiscsi=enabled ;;
-- 
2.31.1




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

* [PULL 26/27] configure: Remove the check for the __thread keyword
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (24 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 25/27] Move the l2tpv3 test from configure to meson.build Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-03 15:04 ` [PULL 27/27] configure: fix --audio-drv-list help message Paolo Bonzini
  2021-11-04  4:42 ` [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Richard Henderson
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Thomas Huth, Richard Henderson

From: Thomas Huth <thuth@redhat.com>

We recently bumped our minimum required version of GCC to 7.4
and Clang to 6.0, and those compiler versions should support
the __thread keyword already.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20211028185910.1729744-2-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/configure b/configure
index 2268e5d0ab..4c444e1750 100755
--- a/configure
+++ b/configure
@@ -1724,17 +1724,6 @@ if test "$static" = "yes" ; then
   fi
 fi
 
-# Unconditional check for compiler __thread support
-  cat > $TMPC << EOF
-static __thread int tls_var;
-int main(void) { return tls_var; }
-EOF
-
-if ! compile_prog "-Werror" "" ; then
-    error_exit "Your compiler does not support the __thread specifier for " \
-	"Thread-Local Storage (TLS). Please upgrade to a version that does."
-fi
-
 cat > $TMPC << EOF
 
 #ifdef __linux__
-- 
2.31.1




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

* [PULL 27/27] configure: fix --audio-drv-list help message
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (25 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 26/27] configure: Remove the check for the __thread keyword Paolo Bonzini
@ 2021-11-03 15:04 ` Paolo Bonzini
  2021-11-04  4:42 ` [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Richard Henderson
  27 siblings, 0 replies; 29+ messages in thread
From: Paolo Bonzini @ 2021-11-03 15:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

--audio-drv-list is now establishing which audio drivers to try if -audiodev
is not used; drivers for -audiodev are configured with --enable/--disable
options or possibly --without-default-features.  Adjust the help message
for --audio-drv-list.

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure b/configure
index 4c444e1750..97fee368ee 100755
--- a/configure
+++ b/configure
@@ -1390,7 +1390,7 @@ Advanced options (experts only):
   --disable-strip          disable stripping binaries
   --disable-werror         disable compilation abort on warning
   --disable-stack-protector disable compiler-provided stack protection
-  --audio-drv-list=LIST    set audio drivers list
+  --audio-drv-list=LIST    set audio drivers to try if -audiodev is not used
   --block-drv-whitelist=L  Same as --block-drv-rw-whitelist=L
   --block-drv-rw-whitelist=L
                            set block driver read-write whitelist
-- 
2.31.1



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

* Re: [PULL 00/27] Misc patches for QEMU 6.2 soft freeze
  2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
                   ` (26 preceding siblings ...)
  2021-11-03 15:04 ` [PULL 27/27] configure: fix --audio-drv-list help message Paolo Bonzini
@ 2021-11-04  4:42 ` Richard Henderson
  27 siblings, 0 replies; 29+ messages in thread
From: Richard Henderson @ 2021-11-04  4:42 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel

On 11/3/21 11:04 AM, Paolo Bonzini wrote:
> The following changes since commit f79bb385c0fb9756393bde2a13ebbc70ae6c8043:
> 
>    Merge remote-tracking branch 'remotes/mcayland/tags/qemu-openbios-20211101' into staging (2021-11-02 08:46:23 -0400)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/bonzini/qemu.git tags/for-upstream
> 
> for you to fetch changes up to 16bfbc70f39e420b6b6cfe39ed8571606482b94a:
> 
>    configure: fix --audio-drv-list help message (2021-11-02 15:57:28 +0100)
> 
> ----------------------------------------------------------------
> * Build system fixes and cleanups
> * DMA support in the multiboot option ROM
> * Rename default-bus-bypass-iommu
> * Deprecate -watchdog and cleanup -watchdog-action
> * HVF fix for <PAGE_SIZE regions
> * Support TSC scaling for AMD nested virtualization
> * Fix for ESP fuzzing bug
> 
> ----------------------------------------------------------------
> Alex Bennée (1):
>        MAINTAINERS: update location of microvm docs
> 
> Alexander Graf (1):
>        hvf: Avoid mapping regions < PAGE_SIZE as ram
> 
> Eugenio Pérez (1):
>        util: Make some iova_tree parameters const
> 
> Helge Konetzka (1):
>        configure/optionrom: Fix MSYS2 multiboot.bin issue
> 
> Jean-Philippe Brucker (1):
>        hw/i386: Rename default_bus_bypass_iommu
> 
> Jessica Clarke (1):
>        Partially revert "build: -no-pie is no functional linker flag"
> 
> Marcus Hähnel (1):
>        optionrom: add a DMA-enabled multiboot ROM
> 
> Mark Cave-Ayland (2):
>        esp: ensure in-flight SCSI requests are always cancelled
>        qtest/am53c974-test: add test for cancelling in-flight requests
> 
> Maxim Levitsky (1):
>        KVM: SVM: add migration support for nested TSC scaling
> 
> Paolo Bonzini (11):
>        target/i386: move linuxboot_dma_enabled to X86MachineState
>        target/i386: use DMA-enabled multiboot ROM for new-enough QEMU machine types
>        configure: remove useless NPTL probe
>        configure: do not duplicate CPU_CFLAGS into QEMU_LDFLAGS
>        watchdog: add information from -watchdog help to -device help
>        vl: deprecate -watchdog
>        watchdog: remove select_watchdog_action
>        meson: bump submodule to 0.59.3
>        meson: remove pointless warnings
>        meson: remove unnecessary coreaudio test program
>        configure: fix --audio-drv-list help message
> 
> Pavel Dovgalyuk (1):
>        hw/i386: fix vmmouse registration
> 
> Peter Xu (2):
>        Makefile: Fix gtags generation
>        Makefile: Fix cscope issues on MacOS and soft links
> 
> Thomas Huth (3):
>        meson.build: Allow to disable OSS again
>        Move the l2tpv3 test from configure to meson.build
>        configure: Remove the check for the __thread keyword
> 
>   MAINTAINERS                       |   2 +-
>   Makefile                          |   5 +-
>   accel/hvf/hvf-accel-ops.c         |   7 +++
>   configure                         | 113 ++++++++------------------------------
>   docs/about/deprecated.rst         |   5 ++
>   hw/i386/intel_iommu.c             |   2 +-
>   hw/i386/microvm.c                 |   5 +-
>   hw/i386/multiboot.c               |  10 +++-
>   hw/i386/multiboot.h               |   4 +-
>   hw/i386/pc.c                      |  10 ++--
>   hw/i386/pc_piix.c                 |   3 +-
>   hw/i386/pc_q35.c                  |   3 +-
>   hw/i386/vmmouse.c                 |   1 +
>   hw/i386/x86.c                     |   7 ++-
>   hw/scsi/esp.c                     |  10 ++--
>   hw/watchdog/sbsa_gwdt.c           |   3 +-
>   hw/watchdog/watchdog.c            |  14 -----
>   hw/watchdog/wdt_aspeed.c          |   3 +-
>   hw/watchdog/wdt_diag288.c         |   3 +-
>   hw/watchdog/wdt_i6300esb.c        |   3 +-
>   hw/watchdog/wdt_ib700.c           |   3 +-
>   hw/watchdog/wdt_imx2.c            |   4 +-
>   include/hw/i386/pc.h              |   3 -
>   include/hw/i386/x86.h             |   5 +-
>   include/hw/qdev-core.h            |   1 +
>   include/qemu/iova-tree.h          |   8 +--
>   include/sysemu/watchdog.h         |   1 -
>   meson                             |   2 +-
>   meson.build                       |  30 +++-------
>   meson_options.txt                 |   2 +
>   monitor/misc.c                    |  15 ++++-
>   net/meson.build                   |   4 +-
>   pc-bios/meson.build               |   1 +
>   pc-bios/multiboot_dma.bin         | Bin 0 -> 1024 bytes
>   pc-bios/optionrom/Makefile        |   9 +--
>   pc-bios/optionrom/multiboot.S     |   4 +-
>   pc-bios/optionrom/multiboot_dma.S |   2 +
>   pc-bios/optionrom/optionrom.h     |  66 ++++++++++++++++++++++
>   scripts/meson-buildoptions.py     |  16 ------
>   scripts/meson-buildoptions.sh     |   3 +
>   softmmu/qdev-monitor.c            |   1 +
>   softmmu/vl.c                      |  11 ++--
>   target/i386/cpu.c                 |   5 ++
>   target/i386/cpu.h                 |   4 ++
>   target/i386/kvm/kvm.c             |  15 +++++
>   target/i386/machine.c             |  22 ++++++++
>   tests/qtest/am53c974-test.c       |  36 ++++++++++++
>   util/iova-tree.c                  |  12 ++--
>   48 files changed, 294 insertions(+), 204 deletions(-)
>   create mode 100644 pc-bios/multiboot_dma.bin
>   create mode 100644 pc-bios/optionrom/multiboot_dma.S

Applied, thanks.

r~



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

end of thread, other threads:[~2021-11-04  4:43 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-03 15:04 [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Paolo Bonzini
2021-11-03 15:04 ` [PULL 01/27] Makefile: Fix gtags generation Paolo Bonzini
2021-11-03 15:04 ` [PULL 02/27] Makefile: Fix cscope issues on MacOS and soft links Paolo Bonzini
2021-11-03 15:04 ` [PULL 03/27] Partially revert "build: -no-pie is no functional linker flag" Paolo Bonzini
2021-11-03 15:04 ` [PULL 04/27] configure/optionrom: Fix MSYS2 multiboot.bin issue Paolo Bonzini
2021-11-03 15:04 ` [PULL 05/27] util: Make some iova_tree parameters const Paolo Bonzini
2021-11-03 15:04 ` [PULL 06/27] MAINTAINERS: update location of microvm docs Paolo Bonzini
2021-11-03 15:04 ` [PULL 07/27] target/i386: move linuxboot_dma_enabled to X86MachineState Paolo Bonzini
2021-11-03 15:04 ` [PULL 08/27] optionrom: add a DMA-enabled multiboot ROM Paolo Bonzini
2021-11-03 15:04 ` [PULL 09/27] target/i386: use DMA-enabled multiboot ROM for new-enough QEMU machine types Paolo Bonzini
2021-11-03 15:04 ` [PULL 10/27] configure: remove useless NPTL probe Paolo Bonzini
2021-11-03 15:04 ` [PULL 11/27] configure: do not duplicate CPU_CFLAGS into QEMU_LDFLAGS Paolo Bonzini
2021-11-03 15:04 ` [PULL 12/27] hvf: Avoid mapping regions < PAGE_SIZE as ram Paolo Bonzini
2021-11-03 15:04 ` [PULL 13/27] hw/i386: Rename default_bus_bypass_iommu Paolo Bonzini
2021-11-03 15:04 ` [PULL 14/27] watchdog: add information from -watchdog help to -device help Paolo Bonzini
2021-11-03 15:04 ` [PULL 15/27] vl: deprecate -watchdog Paolo Bonzini
2021-11-03 15:04 ` [PULL 16/27] watchdog: remove select_watchdog_action Paolo Bonzini
2021-11-03 15:04 ` [PULL 17/27] hw/i386: fix vmmouse registration Paolo Bonzini
2021-11-03 15:04 ` [PULL 18/27] KVM: SVM: add migration support for nested TSC scaling Paolo Bonzini
2021-11-03 15:04 ` [PULL 19/27] esp: ensure in-flight SCSI requests are always cancelled Paolo Bonzini
2021-11-03 15:04 ` [PULL 20/27] qtest/am53c974-test: add test for cancelling in-flight requests Paolo Bonzini
2021-11-03 15:04 ` [PULL 21/27] meson: bump submodule to 0.59.3 Paolo Bonzini
2021-11-03 15:04 ` [PULL 22/27] meson.build: Allow to disable OSS again Paolo Bonzini
2021-11-03 15:04 ` [PULL 23/27] meson: remove pointless warnings Paolo Bonzini
2021-11-03 15:04 ` [PULL 24/27] meson: remove unnecessary coreaudio test program Paolo Bonzini
2021-11-03 15:04 ` [PULL 25/27] Move the l2tpv3 test from configure to meson.build Paolo Bonzini
2021-11-03 15:04 ` [PULL 26/27] configure: Remove the check for the __thread keyword Paolo Bonzini
2021-11-03 15:04 ` [PULL 27/27] configure: fix --audio-drv-list help message Paolo Bonzini
2021-11-04  4:42 ` [PULL 00/27] Misc patches for QEMU 6.2 soft freeze Richard Henderson

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.