Commit Graph

119160 Commits

Author SHA1 Message Date
Matt Borgerson 2bc8cb3050 nv2a/vk: Remove extraneous VK_NO_PROTOTYPES defn 2024-12-31 01:37:05 -07:00
Matt Borgerson ff5f2768b6 meson: Vendor glslang 2024-12-31 01:37:05 -07:00
Matt Borgerson cd130f85d0 scripts/gen-license.py: Fix version detect 2024-12-31 01:37:05 -07:00
Matt Borgerson 0d0dbc2886 meson: Add -DVK_NO_PROTOTYPES compile args on volk 2024-12-31 01:37:05 -07:00
Matt Borgerson f392869cab debian/control: Drop vendored deps 2024-12-31 01:37:05 -07:00
Matt Borgerson 87ccc7e2a2 archive-source.sh: Fix path to nv2a_vsh_cpu 2024-12-31 01:37:05 -07:00
Matt Borgerson a5385803db nv2a: Add Vulkan renderer 2024-12-31 01:37:05 -07:00
Matt Borgerson e639e0cdb7 ci: Add package alias for old Windows release name 2024-12-31 00:21:16 -07:00
Matt Borgerson 15338ec31c ci: Strip Windows release executables 2024-12-31 00:21:16 -07:00
Matt Borgerson 4261541d6a ci: Add missing arch var to WindowsPdb job matrix 2024-12-31 00:21:16 -07:00
Matt Borgerson 8184d5ee29 ci: Bump Windows build container 2024-12-30 19:54:08 -07:00
Matt Borgerson 4ad2374e32 ui: Fix update org, add Windows arch tag to update 2024-12-30 17:17:59 -07:00
Matt Borgerson b6d29d4876 ubuntu-win64-cross: Update glslang 2024-12-30 16:36:50 -07:00
Matt Borgerson eab07f5c49 ubuntu-win64-cross: Update vulkan-headers 2024-12-30 16:36:50 -07:00
Matt Borgerson 2ab23d4e68 ubuntu-win64-cross: Update spirv-tools 2024-12-30 16:36:50 -07:00
Matt Borgerson 3ef73d9d83 ubuntu-win64-cross: Update spirv-headers 2024-12-30 16:36:50 -07:00
Matt Borgerson db5ee2b668 ubuntu-win64-cross: Update sdl2 2024-12-30 16:36:50 -07:00
Matt Borgerson 794cc3311b ci: Add Windows arch tag to Release job 2024-12-30 16:35:58 -07:00
Matt Borgerson ec0c337cfa ci: Bump Windows build container 2024-12-30 15:36:08 -07:00
Matt Borgerson 930b5398f7 ci: Enable Windows aarch64 builds 2024-12-30 15:36:08 -07:00
Matt Borgerson 8749cb70ca meson.build: Link with crypt32 on Windows for httplib 2024-12-30 15:36:08 -07:00
Matt Borgerson 2c722c8661 configure: Don't use -no-pie flag with LLVM 2024-12-30 15:36:08 -07:00
Matt Borgerson 6ee1639c82 ui/xemu-net.c: Include qemu/sockets.h for inet_aton 2024-12-30 15:36:08 -07:00
Matt Borgerson da662b6ce4 qemu-io-cmds.c: Implement clock_gettime for WIN32 2024-12-30 15:36:08 -07:00
Matt Borgerson cff4504c73 meson.build: Don't try to link pthreads on Windows 2024-12-30 15:36:08 -07:00
Matt Borgerson 454668e5b2 qemu/compiler.h: Drop gcc_struct attribute in QEMU_PACKED
This attribute was added in 0f7fdd3 to reverse the effects of
-mms-bitfields, which is enabled by default when building for Windows.
Let's just align with other libraries.

Really all structures using QEMU_PACKED should be audited for bitfield
packing dependency, but it mostly looks to be applied to structs
without bitfields.
2024-12-30 15:36:08 -07:00
Matt Borgerson 67053d1db3 ui: Macro out some variables only used for debugging 2024-12-29 18:42:12 -07:00
Matt Borgerson feee2f142d ui: Fix variable-as-format-string cases 2024-12-29 18:42:12 -07:00
Matt Borgerson e0f4f42fda target/i386: Macro out some unused functions 2024-12-29 18:42:12 -07:00
Matt Borgerson 816c875ac4 net/slirp: Move prototype def into slirp.h 2024-12-29 18:42:12 -07:00
Matt Borgerson 212988421f mcpx: Remove set but not used count variable 2024-12-29 18:42:12 -07:00
Matt Borgerson 530a7b6515 util/oslib-win32: Fix check of filename, wfilename 2024-12-29 18:42:12 -07:00
Matt Borgerson a1342ee174 ubuntu-win64-cross: Set default number of jobs = 6 2024-12-29 16:47:28 -07:00
Matt Borgerson debf7a2e03 ubuntu-win64-cross: Enable aarch64 target 2024-12-29 16:47:28 -07:00
Matt Borgerson 52012f6f98 ubuntu-win64-cross: Add libressl 2024-12-29 16:47:28 -07:00
Matt Borgerson 76905733f1 ubuntu-win64-cross: Add updated libsamplerate 2024-12-29 16:47:28 -07:00
Matt Borgerson 9cb88de014 ubuntu-win64-cross: Use LLVM toolchain 2024-12-29 16:47:28 -07:00
Han Han 9bbaadbf9c target/i386/cpu: Fix notes for CPU models
Fixes: 644e3c5d81 ("missing vmx features for Skylake-Server and Cascadelake-Server")
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Chenyi Qiang <chenyi.qiang@intel.com>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit 93dcc9390e5ad0696ae7e9b7b3a5b08c2d1b6de6)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-29 02:22:55 +03:00
Philippe Mathieu-Daudé 64092b3464 docs: Correct release of TCG trace-events removal
TCG trace-events were deprecated before the v6.2 release,
and removed for v7.0.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit b4859e8f33a7d9c793a60395f792c10190cb4f78)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-29 01:57:11 +03:00
Philippe Mathieu-Daudé ad09b3df7e docs: Correct '-runas' and '-fsdev/-virtfs proxy' indentation
Use the same style for deprecated / removed commands.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(cherry picked from commit 916f50172baa91ddf0e669a9d6d2747055c0e610)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-29 01:56:59 +03:00
Bibo Mao 15eedfd2ff target/loongarch: Use actual operand size with vbsrl check
Hardcoded 32 bytes is used for vbsrl emulation check, there is
problem when options lsx=on,lasx=off is used for vbsrl.v instruction
in TCG mode. It injects LASX exception rather LSX exception.

Here actual operand size is used.

Cc: qemu-stable@nongnu.org
Fixes: df97f33807 ("target/loongarch: Implement xvreplve xvinsve0 xvpickve")
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
(cherry picked from commit d41989e7548397b469ec9c7be4cee699321a317e)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-29 01:50:54 +03:00
antangelo 2c08c76b09 .clang-format: Set SortIncludes to Never 2024-12-27 01:23:00 -07:00
Matt Borgerson 0308baa4b0 download-macos-libs.py: Skip mesa, llvm 2024-12-27 00:56:17 -07:00
David Hildenbrand 9d913e012b s390x/s390-virtio-ccw: don't crash on weird RAM sizes
KVM is not happy when starting a VM with weird RAM sizes:

  # qemu-system-s390x --enable-kvm --nographic -m 1234K
  qemu-system-s390x: kvm_set_user_memory_region: KVM_SET_USER_MEMORY_REGION
    failed, slot=0, start=0x0, size=0x244000: Invalid argument
  kvm_set_phys_mem: error registering slot: Invalid argument
  Aborted (core dumped)

Let's handle that in a better way by rejecting such weird RAM sizes
right from the start:

  # qemu-system-s390x --enable-kvm --nographic -m 1234K
  qemu-system-s390x: ram size must be multiples of 1 MiB

Message-ID: <20241219144115.2820241-2-david@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Janosch Frank <frankja@linux.ibm.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
(cherry picked from commit 14e568ab4836347481af2e334009c385f456a734)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-24 15:31:54 +03:00
Yong-Xuan Wang 19484ed99a hw/intc/riscv_aplic: Fix APLIC in_clrip and clripnum write emulation
In the section "4.7 Precise effects on interrupt-pending bits"
of the RISC-V AIA specification defines that:

"If the source mode is Level1 or Level0 and the interrupt domain
is configured in MSI delivery mode (domaincfg.DM = 1):
The pending bit is cleared whenever the rectified input value is
low, when the interrupt is forwarded by MSI, or by a relevant
write to an in_clrip register or to clripnum."

Update the riscv_aplic_set_pending() to match the spec.

Fixes: bf31cf06eb ("hw/intc/riscv_aplic: Fix setipnum_le write emulation for APLIC MSI-mode")
Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20241029085349.30412-1-yongxuan.wang@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
(cherry picked from commit 0d0141fadc9063e527865ee420b2baf34e306093)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-22 11:39:16 +03:00
Maciej S. Szmigiero 2dc652961d target/i386: Reset TSCs of parked vCPUs too on VM reset
Since commit 5286c36622 ("target/i386: properly reset TSC on reset")
QEMU writes the special value of "1" to each online vCPU TSC on VM reset
to reset it.

However parked vCPUs don't get that handling and due to that their TSCs
get desynchronized when the VM gets reset.
This in turn causes KVM to turn off PVCLOCK_TSC_STABLE_BIT in its exported
PV clock.
Note that KVM has no understanding of vCPU being currently parked.

Without PVCLOCK_TSC_STABLE_BIT the sched clock is marked unstable in
the guest's kvm_sched_clock_init().
This causes a performance regressions to show in some tests.

Fix this issue by writing the special value of "1" also to TSCs of parked
vCPUs on VM reset.

Reproducing the issue:
1) Boot a VM with "-smp 2,maxcpus=3" or similar

2) device_add host-x86_64-cpu,id=vcpu,node-id=0,socket-id=0,core-id=2,thread-id=0

3) Wait a few seconds

4) device_del vcpu

5) Inside the VM run:
# echo "t" >/proc/sysrq-trigger; dmesg | grep sched_clock_stable
Observe the sched_clock_stable() value is 1.

6) Reboot the VM

7) Once the VM boots once again run inside it:
# echo "t" >/proc/sysrq-trigger; dmesg | grep sched_clock_stable
Observe the sched_clock_stable() value is now 0.

Fixes: 5286c36622 ("target/i386: properly reset TSC on reset")
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Link: https://lore.kernel.org/r/5a605a88e9a231386dc803c60f5fed9b48108139.1734014926.git.maciej.szmigiero@oracle.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 3f2a05b31ee9ce2ddb6c75a9bc3f5e7f7af9a76f)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-22 11:18:15 +03:00
Thomas Huth 42490ac980 meson.build: Disallow libnfs v6 to fix the broken macOS build
The macOS builds in our CI (and possibly other very recent distros)
are currently broken since the update to libnfs version 6 there.
That version apparently comes with a big API breakage. v5.0.3 was
the final release of the old API (see the libnfs commit here:
https://github.com/sahlberg/libnfs/commit/4379837 ).

Disallow version 6.x for now to get the broken CI job working
again. Once somebody had enough time to adapt our code in
block/nfs.c, we can revert this change again.

Message-ID: <20241218065157.209020-1-thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
(cherry picked from commit e2d98f257138b83b6a492d1da5847a7fe0930d10)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-20 21:37:30 +03:00
Peter Maydell ad06bb324d hw/intc/arm_gicv3_its: Zero initialize local DTEntry etc structs
In the GICv3 ITS model, we have a common coding pattern which has a
local C struct like "DTEntry dte", which is a C representation of an
in-guest-memory data structure, and we call a function such as
get_dte() to read guest memory and fill in the C struct.  These
functions to read in the struct sometimes have cases where they will
leave early and not fill in the whole struct (for instance get_dte()
will set "dte->valid = false" and nothing else for the case where it
is passed an entry_addr implying that there is no L2 table entry for
the DTE).  This then causes potential use of uninitialized memory
later, for instance when we call a trace event which prints all the
fields of the struct.  Sufficiently advanced compilers may produce
-Wmaybe-uninitialized warnings about this, especially if LTO is
enabled.

Rather than trying to carefully separate out these trace events into
"only the 'valid' field is initialized" and "all fields can be
printed", zero-init all the structs when we define them. None of
these structs are large (the biggest is 24 bytes) and having
consistent behaviour is less likely to be buggy.

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2718
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20241213182337.3343068-1-peter.maydell@linaro.org
(cherry picked from commit 9678b9c505725732353baefedb88b53c2eb8a184)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-19 23:58:11 +03:00
Heinrich Schuchardt fa232044a5 pc-bios: add missing riscv64 descriptor
Without descriptor libvirt cannot discover the EDK II binaries via
the qemu:///system connection.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Message-ID: <20241212090059.94167-1-heinrich.schuchardt@canonical.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
(cherry picked from commit 74dc38d0c6c15fd57a5dee94125d13ac5b00491d)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-17 18:06:39 +03:00
Gerd Hoffmann 83daae51ee roms: re-add edk2-basetools target
Needed to build ipxe nic roms.

Reported-by: Liu Jaloo <liu.jaloo@gmail.com>
Fixes: 22e11539e1 ("edk2: replace build scripts")
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-ID: <20241212084408.1390728-1-kraxel@redhat.com>
(cherry picked from commit 0f5715e4b5706b31b3550d8e6b88871e029c7823)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-12-17 14:26:42 +03:00