!757 QEMU update to version 6.2.0-71(master)
From: @flyking001 Reviewed-by: @yezengruan Signed-off-by: @yezengruan
This commit is contained in:
commit
949b72e703
93
block-rbd-workaround-for-ceph-issue-53784.patch
Normal file
93
block-rbd-workaround-for-ceph-issue-53784.patch
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
From 43302c8f56518cd467578fa084d64fd42c59348c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Lieven <pl@kamp.de>
|
||||||
|
Date: Thu, 13 Jan 2022 15:44:26 +0100
|
||||||
|
Subject: [PATCH] block/rbd: workaround for ceph issue #53784
|
||||||
|
|
||||||
|
librbd had a bug until early 2022 that affected all versions of ceph that
|
||||||
|
supported fast-diff. This bug results in reporting of incorrect offsets
|
||||||
|
if the offset parameter to rbd_diff_iterate2 is not object aligned.
|
||||||
|
|
||||||
|
This patch works around this bug for pre Quincy versions of librbd.
|
||||||
|
|
||||||
|
Fixes: 0347a8fd4c3faaedf119be04c197804be40a384b
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Signed-off-by: Peter Lieven <pl@kamp.de>
|
||||||
|
Message-Id: <20220113144426.4036493-3-pl@kamp.de>
|
||||||
|
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
|
||||||
|
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Tested-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
---
|
||||||
|
block/rbd.c | 42 ++++++++++++++++++++++++++++++++++++++++--
|
||||||
|
1 file changed, 40 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/block/rbd.c b/block/rbd.c
|
||||||
|
index def96292e0..92dfb6083b 100644
|
||||||
|
--- a/block/rbd.c
|
||||||
|
+++ b/block/rbd.c
|
||||||
|
@@ -1320,6 +1320,7 @@ static int coroutine_fn qemu_rbd_co_block_status(BlockDriverState *bs,
|
||||||
|
int status, r;
|
||||||
|
RBDDiffIterateReq req = { .offs = offset };
|
||||||
|
uint64_t features, flags;
|
||||||
|
+ uint64_t head = 0;
|
||||||
|
|
||||||
|
assert(offset + bytes <= s->image_size);
|
||||||
|
|
||||||
|
@@ -1347,7 +1348,43 @@ static int coroutine_fn qemu_rbd_co_block_status(BlockDriverState *bs,
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
- r = rbd_diff_iterate2(s->image, NULL, offset, bytes, true, true,
|
||||||
|
+#if LIBRBD_VERSION_CODE < LIBRBD_VERSION(1, 17, 0)
|
||||||
|
+ /*
|
||||||
|
+ * librbd had a bug until early 2022 that affected all versions of ceph that
|
||||||
|
+ * supported fast-diff. This bug results in reporting of incorrect offsets
|
||||||
|
+ * if the offset parameter to rbd_diff_iterate2 is not object aligned.
|
||||||
|
+ * Work around this bug by rounding down the offset to object boundaries.
|
||||||
|
+ * This is OK because we call rbd_diff_iterate2 with whole_object = true.
|
||||||
|
+ * However, this workaround only works for non cloned images with default
|
||||||
|
+ * striping.
|
||||||
|
+ *
|
||||||
|
+ * See: https://tracker.ceph.com/issues/53784
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+ /* check if RBD image has non-default striping enabled */
|
||||||
|
+ if (features & RBD_FEATURE_STRIPINGV2) {
|
||||||
|
+ return status;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#pragma GCC diagnostic push
|
||||||
|
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||||
|
+ /*
|
||||||
|
+ * check if RBD image is a clone (= has a parent).
|
||||||
|
+ *
|
||||||
|
+ * rbd_get_parent_info is deprecated from Nautilus onwards, but the
|
||||||
|
+ * replacement rbd_get_parent is not present in Luminous and Mimic.
|
||||||
|
+ */
|
||||||
|
+ if (rbd_get_parent_info(s->image, NULL, 0, NULL, 0, NULL, 0) != -ENOENT) {
|
||||||
|
+ return status;
|
||||||
|
+ }
|
||||||
|
+#pragma GCC diagnostic pop
|
||||||
|
+
|
||||||
|
+ head = req.offs & (s->object_size - 1);
|
||||||
|
+ req.offs -= head;
|
||||||
|
+ bytes += head;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ r = rbd_diff_iterate2(s->image, NULL, req.offs, bytes, true, true,
|
||||||
|
qemu_rbd_diff_iterate_cb, &req);
|
||||||
|
if (r < 0 && r != QEMU_RBD_EXIT_DIFF_ITERATE2) {
|
||||||
|
return status;
|
||||||
|
@@ -1366,7 +1403,8 @@ static int coroutine_fn qemu_rbd_co_block_status(BlockDriverState *bs,
|
||||||
|
status = BDRV_BLOCK_ZERO | BDRV_BLOCK_OFFSET_VALID;
|
||||||
|
}
|
||||||
|
|
||||||
|
- *pnum = req.bytes;
|
||||||
|
+ assert(req.bytes > head);
|
||||||
|
+ *pnum = req.bytes - head;
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
32
core-cpu-common-Fix-the-wrong-ifdef-__aarch64__.patch
Normal file
32
core-cpu-common-Fix-the-wrong-ifdef-__aarch64__.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
From a6f84e8f2c1fef8ca8f48f81e2e6a1b823d9a90e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kunkun Jiang <jiangkunkun@huawei.com>
|
||||||
|
Date: Fri, 21 Apr 2023 14:53:46 +0800
|
||||||
|
Subject: [PATCH] core/cpu-common: Fix the wrong '#ifdef __aarch64__'
|
||||||
|
|
||||||
|
commit c3f86c199885 ("arm/virt: Correct timing of executing
|
||||||
|
cpu_synchronize_post_init for hot-plugged cpus") used the
|
||||||
|
wrong '#ifdef __aarch64__'. It should be '#ifndef __aarch64__'.
|
||||||
|
|
||||||
|
Fixes: c3f86c199885 ("arm/virt: Correct timing of executing
|
||||||
|
cpu_synchronize_post_init for hot-plugged cpus")
|
||||||
|
Signed-off-by: Kunkun Jiang <jiangkunkun@huawei.com>
|
||||||
|
---
|
||||||
|
hw/core/cpu-common.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/hw/core/cpu-common.c b/hw/core/cpu-common.c
|
||||||
|
index 2213840260..92d15f2f49 100644
|
||||||
|
--- a/hw/core/cpu-common.c
|
||||||
|
+++ b/hw/core/cpu-common.c
|
||||||
|
@@ -206,7 +206,7 @@ static void cpu_common_realizefn(DeviceState *dev, Error **errp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifdef __aarch64__
|
||||||
|
+#ifndef __aarch64__
|
||||||
|
if (dev->hotplugged) {
|
||||||
|
cpu_synchronize_post_init(cpu);
|
||||||
|
cpu_resume(cpu);
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
221
i386-Add-new-CPU-model-SapphireRapids.patch
Normal file
221
i386-Add-new-CPU-model-SapphireRapids.patch
Normal file
@ -0,0 +1,221 @@
|
|||||||
|
From f91b5ed322bbb6d793fca7005ac350d466fff232 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Wang, Lei" <lei4.wang@intel.com>
|
||||||
|
Date: Thu, 11 Aug 2022 22:57:51 -0700
|
||||||
|
Subject: [PATCH] i386: Add new CPU model SapphireRapids
|
||||||
|
|
||||||
|
The new CPU model mostly inherits features from Icelake-Server, while
|
||||||
|
adding new features:
|
||||||
|
- AMX (Advance Matrix eXtensions)
|
||||||
|
- Bus Lock Debug Exception
|
||||||
|
and new instructions:
|
||||||
|
- AVX VNNI (Vector Neural Network Instruction):
|
||||||
|
- VPDPBUS: Multiply and Add Unsigned and Signed Bytes
|
||||||
|
- VPDPBUSDS: Multiply and Add Unsigned and Signed Bytes with Saturation
|
||||||
|
- VPDPWSSD: Multiply and Add Signed Word Integers
|
||||||
|
- VPDPWSSDS: Multiply and Add Signed Integers with Saturation
|
||||||
|
- FP16: Replicates existing AVX512 computational SP (FP32) instructions
|
||||||
|
using FP16 instead of FP32 for ~2X performance gain
|
||||||
|
- SERIALIZE: Provide software with a simple way to force the processor to
|
||||||
|
complete all modifications, faster, allowed in all privilege levels and
|
||||||
|
not causing an unconditional VM exit
|
||||||
|
- TSX Suspend Load Address Tracking: Allows programmers to choose which
|
||||||
|
memory accesses do not need to be tracked in the TSX read set
|
||||||
|
- AVX512_BF16: Vector Neural Network Instructions supporting BFLOAT16
|
||||||
|
inputs and conversion instructions from IEEE single precision
|
||||||
|
- fast zero-length MOVSB (KVM doesn't support yet)
|
||||||
|
- fast short STOSB (KVM doesn't support yet)
|
||||||
|
- fast short CMPSB, SCASB (KVM doesn't support yet)
|
||||||
|
|
||||||
|
Features that may be added in future versions:
|
||||||
|
- CET (virtualization support hasn't been merged)
|
||||||
|
|
||||||
|
Signed-off-by: Wang, Lei <lei4.wang@intel.com>
|
||||||
|
Reviewed-by: Robert Hoo <robert.hu@linux.intel.com>
|
||||||
|
Message-Id: <20220812055751.14553-1-lei4.wang@intel.com>
|
||||||
|
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.c | 133 +++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
target/i386/cpu.h | 4 ++
|
||||||
|
2 files changed, 135 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||||
|
index 7122af303d..61cd7abcaa 100644
|
||||||
|
--- a/target/i386/cpu.c
|
||||||
|
+++ b/target/i386/cpu.c
|
||||||
|
@@ -3529,6 +3529,135 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
||||||
|
{ /* end of list */ }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
+ {
|
||||||
|
+ .name = "SapphireRapids",
|
||||||
|
+ .level = 0x20,
|
||||||
|
+ .vendor = CPUID_VENDOR_INTEL,
|
||||||
|
+ .family = 6,
|
||||||
|
+ .model = 143,
|
||||||
|
+ .stepping = 4,
|
||||||
|
+ /*
|
||||||
|
+ * please keep the ascending order so that we can have a clear view of
|
||||||
|
+ * bit position of each feature.
|
||||||
|
+ */
|
||||||
|
+ .features[FEAT_1_EDX] =
|
||||||
|
+ CPUID_FP87 | CPUID_VME | CPUID_DE | CPUID_PSE | CPUID_TSC |
|
||||||
|
+ CPUID_MSR | CPUID_PAE | CPUID_MCE | CPUID_CX8 | CPUID_APIC |
|
||||||
|
+ CPUID_SEP | CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV |
|
||||||
|
+ CPUID_PAT | CPUID_PSE36 | CPUID_CLFLUSH | CPUID_MMX | CPUID_FXSR |
|
||||||
|
+ CPUID_SSE | CPUID_SSE2,
|
||||||
|
+ .features[FEAT_1_ECX] =
|
||||||
|
+ CPUID_EXT_SSE3 | CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSSE3 |
|
||||||
|
+ CPUID_EXT_FMA | CPUID_EXT_CX16 | CPUID_EXT_PCID | CPUID_EXT_SSE41 |
|
||||||
|
+ CPUID_EXT_SSE42 | CPUID_EXT_X2APIC | CPUID_EXT_MOVBE |
|
||||||
|
+ CPUID_EXT_POPCNT | CPUID_EXT_TSC_DEADLINE_TIMER | CPUID_EXT_AES |
|
||||||
|
+ CPUID_EXT_XSAVE | CPUID_EXT_AVX | CPUID_EXT_F16C | CPUID_EXT_RDRAND,
|
||||||
|
+ .features[FEAT_8000_0001_EDX] =
|
||||||
|
+ CPUID_EXT2_SYSCALL | CPUID_EXT2_NX | CPUID_EXT2_PDPE1GB |
|
||||||
|
+ CPUID_EXT2_RDTSCP | CPUID_EXT2_LM,
|
||||||
|
+ .features[FEAT_8000_0001_ECX] =
|
||||||
|
+ CPUID_EXT3_LAHF_LM | CPUID_EXT3_ABM | CPUID_EXT3_3DNOWPREFETCH,
|
||||||
|
+ .features[FEAT_8000_0008_EBX] =
|
||||||
|
+ CPUID_8000_0008_EBX_WBNOINVD,
|
||||||
|
+ .features[FEAT_7_0_EBX] =
|
||||||
|
+ CPUID_7_0_EBX_FSGSBASE | CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_HLE |
|
||||||
|
+ CPUID_7_0_EBX_AVX2 | CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_BMI2 |
|
||||||
|
+ CPUID_7_0_EBX_ERMS | CPUID_7_0_EBX_INVPCID | CPUID_7_0_EBX_RTM |
|
||||||
|
+ CPUID_7_0_EBX_AVX512F | CPUID_7_0_EBX_AVX512DQ |
|
||||||
|
+ CPUID_7_0_EBX_RDSEED | CPUID_7_0_EBX_ADX | CPUID_7_0_EBX_SMAP |
|
||||||
|
+ CPUID_7_0_EBX_AVX512IFMA | CPUID_7_0_EBX_CLFLUSHOPT |
|
||||||
|
+ CPUID_7_0_EBX_CLWB | CPUID_7_0_EBX_AVX512CD | CPUID_7_0_EBX_SHA_NI |
|
||||||
|
+ CPUID_7_0_EBX_AVX512BW | CPUID_7_0_EBX_AVX512VL,
|
||||||
|
+ .features[FEAT_7_0_ECX] =
|
||||||
|
+ CPUID_7_0_ECX_AVX512_VBMI | CPUID_7_0_ECX_UMIP | CPUID_7_0_ECX_PKU |
|
||||||
|
+ CPUID_7_0_ECX_AVX512_VBMI2 | CPUID_7_0_ECX_GFNI |
|
||||||
|
+ CPUID_7_0_ECX_VAES | CPUID_7_0_ECX_VPCLMULQDQ |
|
||||||
|
+ CPUID_7_0_ECX_AVX512VNNI | CPUID_7_0_ECX_AVX512BITALG |
|
||||||
|
+ CPUID_7_0_ECX_AVX512_VPOPCNTDQ | CPUID_7_0_ECX_LA57 |
|
||||||
|
+ CPUID_7_0_ECX_RDPID | CPUID_7_0_ECX_BUS_LOCK_DETECT,
|
||||||
|
+ .features[FEAT_7_0_EDX] =
|
||||||
|
+ CPUID_7_0_EDX_FSRM | CPUID_7_0_EDX_SERIALIZE |
|
||||||
|
+ CPUID_7_0_EDX_TSX_LDTRK | CPUID_7_0_EDX_AMX_BF16 |
|
||||||
|
+ CPUID_7_0_EDX_AVX512_FP16 | CPUID_7_0_EDX_AMX_TILE |
|
||||||
|
+ CPUID_7_0_EDX_AMX_INT8 | CPUID_7_0_EDX_SPEC_CTRL |
|
||||||
|
+ CPUID_7_0_EDX_ARCH_CAPABILITIES | CPUID_7_0_EDX_SPEC_CTRL_SSBD,
|
||||||
|
+ .features[FEAT_ARCH_CAPABILITIES] =
|
||||||
|
+ MSR_ARCH_CAP_RDCL_NO | MSR_ARCH_CAP_IBRS_ALL |
|
||||||
|
+ MSR_ARCH_CAP_SKIP_L1DFL_VMENTRY | MSR_ARCH_CAP_MDS_NO |
|
||||||
|
+ MSR_ARCH_CAP_PSCHANGE_MC_NO | MSR_ARCH_CAP_TAA_NO,
|
||||||
|
+ .features[FEAT_XSAVE] =
|
||||||
|
+ CPUID_XSAVE_XSAVEOPT | CPUID_XSAVE_XSAVEC |
|
||||||
|
+ CPUID_XSAVE_XGETBV1 | CPUID_XSAVE_XSAVES | CPUID_D_1_EAX_XFD,
|
||||||
|
+ .features[FEAT_6_EAX] =
|
||||||
|
+ CPUID_6_EAX_ARAT,
|
||||||
|
+ .features[FEAT_7_1_EAX] =
|
||||||
|
+ CPUID_7_1_EAX_AVX_VNNI | CPUID_7_1_EAX_AVX512_BF16 |
|
||||||
|
+ CPUID_7_1_EAX_FZRM | CPUID_7_1_EAX_FSRS | CPUID_7_1_EAX_FSRC,
|
||||||
|
+ .features[FEAT_VMX_BASIC] =
|
||||||
|
+ MSR_VMX_BASIC_INS_OUTS | MSR_VMX_BASIC_TRUE_CTLS,
|
||||||
|
+ .features[FEAT_VMX_ENTRY_CTLS] =
|
||||||
|
+ VMX_VM_ENTRY_LOAD_DEBUG_CONTROLS | VMX_VM_ENTRY_IA32E_MODE |
|
||||||
|
+ VMX_VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL |
|
||||||
|
+ VMX_VM_ENTRY_LOAD_IA32_PAT | VMX_VM_ENTRY_LOAD_IA32_EFER,
|
||||||
|
+ .features[FEAT_VMX_EPT_VPID_CAPS] =
|
||||||
|
+ MSR_VMX_EPT_EXECONLY |
|
||||||
|
+ MSR_VMX_EPT_PAGE_WALK_LENGTH_4 | MSR_VMX_EPT_PAGE_WALK_LENGTH_5 |
|
||||||
|
+ MSR_VMX_EPT_WB | MSR_VMX_EPT_2MB | MSR_VMX_EPT_1GB |
|
||||||
|
+ MSR_VMX_EPT_INVEPT | MSR_VMX_EPT_AD_BITS |
|
||||||
|
+ MSR_VMX_EPT_INVEPT_SINGLE_CONTEXT | MSR_VMX_EPT_INVEPT_ALL_CONTEXT |
|
||||||
|
+ MSR_VMX_EPT_INVVPID | MSR_VMX_EPT_INVVPID_SINGLE_ADDR |
|
||||||
|
+ MSR_VMX_EPT_INVVPID_SINGLE_CONTEXT |
|
||||||
|
+ MSR_VMX_EPT_INVVPID_ALL_CONTEXT |
|
||||||
|
+ MSR_VMX_EPT_INVVPID_SINGLE_CONTEXT_NOGLOBALS,
|
||||||
|
+ .features[FEAT_VMX_EXIT_CTLS] =
|
||||||
|
+ VMX_VM_EXIT_SAVE_DEBUG_CONTROLS |
|
||||||
|
+ VMX_VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL |
|
||||||
|
+ VMX_VM_EXIT_ACK_INTR_ON_EXIT | VMX_VM_EXIT_SAVE_IA32_PAT |
|
||||||
|
+ VMX_VM_EXIT_LOAD_IA32_PAT | VMX_VM_EXIT_SAVE_IA32_EFER |
|
||||||
|
+ VMX_VM_EXIT_LOAD_IA32_EFER | VMX_VM_EXIT_SAVE_VMX_PREEMPTION_TIMER,
|
||||||
|
+ .features[FEAT_VMX_MISC] =
|
||||||
|
+ MSR_VMX_MISC_STORE_LMA | MSR_VMX_MISC_ACTIVITY_HLT |
|
||||||
|
+ MSR_VMX_MISC_VMWRITE_VMEXIT,
|
||||||
|
+ .features[FEAT_VMX_PINBASED_CTLS] =
|
||||||
|
+ VMX_PIN_BASED_EXT_INTR_MASK | VMX_PIN_BASED_NMI_EXITING |
|
||||||
|
+ VMX_PIN_BASED_VIRTUAL_NMIS | VMX_PIN_BASED_VMX_PREEMPTION_TIMER |
|
||||||
|
+ VMX_PIN_BASED_POSTED_INTR,
|
||||||
|
+ .features[FEAT_VMX_PROCBASED_CTLS] =
|
||||||
|
+ VMX_CPU_BASED_VIRTUAL_INTR_PENDING |
|
||||||
|
+ VMX_CPU_BASED_USE_TSC_OFFSETING | VMX_CPU_BASED_HLT_EXITING |
|
||||||
|
+ VMX_CPU_BASED_INVLPG_EXITING | VMX_CPU_BASED_MWAIT_EXITING |
|
||||||
|
+ VMX_CPU_BASED_RDPMC_EXITING | VMX_CPU_BASED_RDTSC_EXITING |
|
||||||
|
+ VMX_CPU_BASED_CR3_LOAD_EXITING | VMX_CPU_BASED_CR3_STORE_EXITING |
|
||||||
|
+ VMX_CPU_BASED_CR8_LOAD_EXITING | VMX_CPU_BASED_CR8_STORE_EXITING |
|
||||||
|
+ VMX_CPU_BASED_TPR_SHADOW | VMX_CPU_BASED_VIRTUAL_NMI_PENDING |
|
||||||
|
+ VMX_CPU_BASED_MOV_DR_EXITING | VMX_CPU_BASED_UNCOND_IO_EXITING |
|
||||||
|
+ VMX_CPU_BASED_USE_IO_BITMAPS | VMX_CPU_BASED_MONITOR_TRAP_FLAG |
|
||||||
|
+ VMX_CPU_BASED_USE_MSR_BITMAPS | VMX_CPU_BASED_MONITOR_EXITING |
|
||||||
|
+ VMX_CPU_BASED_PAUSE_EXITING |
|
||||||
|
+ VMX_CPU_BASED_ACTIVATE_SECONDARY_CONTROLS,
|
||||||
|
+ .features[FEAT_VMX_SECONDARY_CTLS] =
|
||||||
|
+ VMX_SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES |
|
||||||
|
+ VMX_SECONDARY_EXEC_ENABLE_EPT | VMX_SECONDARY_EXEC_DESC |
|
||||||
|
+ VMX_SECONDARY_EXEC_RDTSCP |
|
||||||
|
+ VMX_SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE |
|
||||||
|
+ VMX_SECONDARY_EXEC_ENABLE_VPID | VMX_SECONDARY_EXEC_WBINVD_EXITING |
|
||||||
|
+ VMX_SECONDARY_EXEC_UNRESTRICTED_GUEST |
|
||||||
|
+ VMX_SECONDARY_EXEC_APIC_REGISTER_VIRT |
|
||||||
|
+ VMX_SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY |
|
||||||
|
+ VMX_SECONDARY_EXEC_RDRAND_EXITING |
|
||||||
|
+ VMX_SECONDARY_EXEC_ENABLE_INVPCID |
|
||||||
|
+ VMX_SECONDARY_EXEC_ENABLE_VMFUNC | VMX_SECONDARY_EXEC_SHADOW_VMCS |
|
||||||
|
+ VMX_SECONDARY_EXEC_RDSEED_EXITING | VMX_SECONDARY_EXEC_ENABLE_PML |
|
||||||
|
+ VMX_SECONDARY_EXEC_XSAVES,
|
||||||
|
+ .features[FEAT_VMX_VMFUNC] =
|
||||||
|
+ MSR_VMX_VMFUNC_EPT_SWITCHING,
|
||||||
|
+ .xlevel = 0x80000008,
|
||||||
|
+ .model_id = "Intel Xeon Processor (SapphireRapids)",
|
||||||
|
+ .versions = (X86CPUVersionDefinition[]) {
|
||||||
|
+ { .version = 1 },
|
||||||
|
+ { /* end of list */ },
|
||||||
|
+ },
|
||||||
|
+ },
|
||||||
|
{
|
||||||
|
.name = "Denverton",
|
||||||
|
.level = 21,
|
||||||
|
@@ -5619,7 +5748,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 0x1D: {
|
||||||
|
- /* AMX TILE */
|
||||||
|
+ /* AMX TILE, for now hardcoded for Sapphire Rapids*/
|
||||||
|
*eax = 0;
|
||||||
|
*ebx = 0;
|
||||||
|
*ecx = 0;
|
||||||
|
@@ -5640,7 +5769,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 0x1E: {
|
||||||
|
- /* AMX TMUL */
|
||||||
|
+ /* AMX TMUL, for now hardcoded for Sapphire Rapids */
|
||||||
|
*eax = 0;
|
||||||
|
*ebx = 0;
|
||||||
|
*ecx = 0;
|
||||||
|
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
||||||
|
index 7a32dabf12..d0c7791a1e 100644
|
||||||
|
--- a/target/i386/cpu.h
|
||||||
|
+++ b/target/i386/cpu.h
|
||||||
|
@@ -857,10 +857,14 @@ uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||||
|
#define CPUID_7_0_EDX_SERIALIZE (1U << 14)
|
||||||
|
/* TSX Suspend Load Address Tracking instruction */
|
||||||
|
#define CPUID_7_0_EDX_TSX_LDTRK (1U << 16)
|
||||||
|
+/* AMX_BF16 instruction */
|
||||||
|
+#define CPUID_7_0_EDX_AMX_BF16 (1U << 22)
|
||||||
|
/* AVX512_FP16 instruction */
|
||||||
|
#define CPUID_7_0_EDX_AVX512_FP16 (1U << 23)
|
||||||
|
/* AMX tile (two-dimensional register) */
|
||||||
|
#define CPUID_7_0_EDX_AMX_TILE (1U << 24)
|
||||||
|
+/* AMX_INT8 instruction */
|
||||||
|
+#define CPUID_7_0_EDX_AMX_INT8 (1U << 25)
|
||||||
|
/* Speculation Control */
|
||||||
|
#define CPUID_7_0_EDX_SPEC_CTRL (1U << 26)
|
||||||
|
/* Single Thread Indirect Branch Predictors */
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
44
linux-user-fix-strace-build-w-out-munlockall.patch
Normal file
44
linux-user-fix-strace-build-w-out-munlockall.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From c51eaedcf9833a6edfcee1993e6651046fad1f59 Mon Sep 17 00:00:00 2001
|
||||||
|
From: qihao <qihao@cmss.chinamobile.com>
|
||||||
|
Date: Thu, 30 Mar 2023 18:07:11 +0800
|
||||||
|
Subject: [PATCH] linux-user: fix strace build w/out munlockall
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
cheery-pick from d237b416b9499441b6833b91609ec840efd832b6
|
||||||
|
|
||||||
|
Signed-off-by: qihao_yewu <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
||||||
|
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Message-Id: <20230118090144.31155-1-vapier@gentoo.org>
|
||||||
|
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
|
||||||
|
---
|
||||||
|
linux-user/strace.c | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/linux-user/strace.c b/linux-user/strace.c
|
||||||
|
index 2cdbf030ba..37d66d0dff 100644
|
||||||
|
--- a/linux-user/strace.c
|
||||||
|
+++ b/linux-user/strace.c
|
||||||
|
@@ -1368,7 +1368,8 @@ UNUSED static struct flags termios_lflags[] = {
|
||||||
|
FLAG_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
-UNUSED static struct flags mlockall_flags[] = {
|
||||||
|
+#ifdef TARGET_NR_mlockall
|
||||||
|
+static struct flags mlockall_flags[] = {
|
||||||
|
FLAG_TARGET(MCL_CURRENT),
|
||||||
|
FLAG_TARGET(MCL_FUTURE),
|
||||||
|
#ifdef MCL_ONFAULT
|
||||||
|
@@ -1376,6 +1377,7 @@ UNUSED static struct flags mlockall_flags[] = {
|
||||||
|
#endif
|
||||||
|
FLAG_END,
|
||||||
|
};
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/* IDs of the various system clocks */
|
||||||
|
#define TARGET_CLOCK_REALTIME 0
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
49
migration-fix-populate_vfio_info.patch
Normal file
49
migration-fix-populate_vfio_info.patch
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
From bae3be01cc25c5532806c3255dbae19393e95686 Mon Sep 17 00:00:00 2001
|
||||||
|
From: jipengfei <jipengfei_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Tue, 4 Apr 2023 20:16:33 +0800
|
||||||
|
Subject: [PATCH] migration: fix populate_vfio_info
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Include CONFIG_DEVICES so that populate_vfio_info is instantiated for
|
||||||
|
CONFIG_VFIO. Without it, the 'info migrate' command never returns
|
||||||
|
info about vfio.
|
||||||
|
|
||||||
|
Fixes: 43bd0bf30f ("migration: Move populate_vfio_info() into a separate file")
|
||||||
|
|
||||||
|
cheery-pick from fa76c854ae837328187bef41d80af5d1ad36681f
|
||||||
|
|
||||||
|
Signed-off-by: jipengfei_yewu <jipengfei_yewu@cmss.chinamobile.com>
|
||||||
|
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Reviewed-by: Thomas Huth <thuth@redhat.com>
|
||||||
|
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
Reviewed-by: Juan Quintela <quintela@redhat.com>
|
||||||
|
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||||
|
---
|
||||||
|
migration/target.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/migration/target.c b/migration/target.c
|
||||||
|
index 907ebf0a0a..00ca007f97 100644
|
||||||
|
--- a/migration/target.c
|
||||||
|
+++ b/migration/target.c
|
||||||
|
@@ -8,6 +8,7 @@
|
||||||
|
#include "qemu/osdep.h"
|
||||||
|
#include "qapi/qapi-types-migration.h"
|
||||||
|
#include "migration.h"
|
||||||
|
+#include CONFIG_DEVICES
|
||||||
|
|
||||||
|
#ifdef CONFIG_VFIO
|
||||||
|
#include "hw/vfio/vfio-common.h"
|
||||||
|
@@ -17,7 +18,6 @@ void populate_vfio_info(MigrationInfo *info)
|
||||||
|
{
|
||||||
|
#ifdef CONFIG_VFIO
|
||||||
|
if (vfio_mig_active()) {
|
||||||
|
- info->has_vfio = true;
|
||||||
|
info->vfio = g_malloc0(sizeof(*info->vfio));
|
||||||
|
info->vfio->transferred = vfio_mig_bytes_transferred();
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
66
plugins-make-qemu_plugin_user_exit-s-locking-order-c.patch
Normal file
66
plugins-make-qemu_plugin_user_exit-s-locking-order-c.patch
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
From a729d2730d9d30f6610e43f070cedd1d60ba022f Mon Sep 17 00:00:00 2001
|
||||||
|
From: qihao <qihao@cmss.chinamobile.com>
|
||||||
|
Date: Thu, 30 Mar 2023 17:58:32 +0800
|
||||||
|
Subject: [PATCH] plugins: make qemu_plugin_user_exit's locking order
|
||||||
|
consistent with fork_start's
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
cheery-pick from 2bbbc1be8d9a21b25d0c80b9a7345074d54abd51
|
||||||
|
|
||||||
|
To fix potential deadlocks as reported by tsan.
|
||||||
|
|
||||||
|
Signed-off-by: qihao_yewu <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
|
||||||
|
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Signed-off-by: Emilio Cota <cota@braap.org>
|
||||||
|
Message-Id: <20230111151628.320011-6-cota@braap.org>
|
||||||
|
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
|
||||||
|
Message-Id: <20230124180127.1881110-31-alex.bennee@linaro.org>
|
||||||
|
---
|
||||||
|
plugins/core.c | 14 +++++++++++---
|
||||||
|
1 file changed, 11 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/core.c b/plugins/core.c
|
||||||
|
index 792262da08..e935e3c0c9 100644
|
||||||
|
--- a/plugins/core.c
|
||||||
|
+++ b/plugins/core.c
|
||||||
|
@@ -500,10 +500,18 @@ void qemu_plugin_user_exit(void)
|
||||||
|
enum qemu_plugin_event ev;
|
||||||
|
CPUState *cpu;
|
||||||
|
|
||||||
|
- QEMU_LOCK_GUARD(&plugin.lock);
|
||||||
|
+ /*
|
||||||
|
+ * Locking order: we must acquire locks in an order that is consistent
|
||||||
|
+ * with the one in fork_start(). That is:
|
||||||
|
+ * - start_exclusive(), which acquires qemu_cpu_list_lock,
|
||||||
|
+ * must be called before acquiring plugin.lock.
|
||||||
|
+ * - tb_flush(), which acquires mmap_lock(), must be called
|
||||||
|
+ * while plugin.lock is not held.
|
||||||
|
+ */
|
||||||
|
|
||||||
|
start_exclusive();
|
||||||
|
|
||||||
|
+ qemu_rec_mutex_lock(&plugin.lock);
|
||||||
|
/* un-register all callbacks except the final AT_EXIT one */
|
||||||
|
for (ev = 0; ev < QEMU_PLUGIN_EV_MAX; ev++) {
|
||||||
|
if (ev != QEMU_PLUGIN_EV_ATEXIT) {
|
||||||
|
@@ -514,12 +522,12 @@ void qemu_plugin_user_exit(void)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- tb_flush(current_cpu);
|
||||||
|
-
|
||||||
|
CPU_FOREACH(cpu) {
|
||||||
|
qemu_plugin_disable_mem_helpers(cpu);
|
||||||
|
}
|
||||||
|
+ qemu_rec_mutex_unlock(&plugin.lock);
|
||||||
|
|
||||||
|
+ tb_flush(current_cpu);
|
||||||
|
end_exclusive();
|
||||||
|
|
||||||
|
/* now it's safe to handle the exit case */
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
24
qemu.spec
24
qemu.spec
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Name: qemu
|
Name: qemu
|
||||||
Version: 6.2.0
|
Version: 6.2.0
|
||||||
Release: 70
|
Release: 71
|
||||||
Epoch: 10
|
Epoch: 10
|
||||||
Summary: QEMU is a generic and open source machine emulator and virtualizer
|
Summary: QEMU is a generic and open source machine emulator and virtualizer
|
||||||
License: GPLv2 and BSD and MIT and CC-BY-SA-4.0
|
License: GPLv2 and BSD and MIT and CC-BY-SA-4.0
|
||||||
@ -479,6 +479,16 @@ Patch0464: net-Fix-uninitialized-data-usage.patch
|
|||||||
Patch0465: net-eth-Don-t-consider-ESP-to-be-an-IPv6-option-head.patch
|
Patch0465: net-eth-Don-t-consider-ESP-to-be-an-IPv6-option-head.patch
|
||||||
Patch0466: hw-net-vmxnet3-Log-guest-triggerable-errors-using-LO.patch
|
Patch0466: hw-net-vmxnet3-Log-guest-triggerable-errors-using-LO.patch
|
||||||
Patch0467: fixup-compile-on-loongarch64-machine.patch
|
Patch0467: fixup-compile-on-loongarch64-machine.patch
|
||||||
|
Patch0468: vhost-user-blk-fix-the-resize-crash.patch
|
||||||
|
Patch0469: plugins-make-qemu_plugin_user_exit-s-locking-order-c.patch
|
||||||
|
Patch0470: linux-user-fix-strace-build-w-out-munlockall.patch
|
||||||
|
Patch0471: ui-fix-crash-on-serial-reset-during-init.patch
|
||||||
|
Patch0472: qga-win-vss-requester_freeze-changes.patch
|
||||||
|
Patch0473: migration-fix-populate_vfio_info.patch
|
||||||
|
Patch0474: block-rbd-workaround-for-ceph-issue-53784.patch
|
||||||
|
Patch0475: target-i386-add-FZRM-FSRS-FSRC.patch
|
||||||
|
Patch0476: i386-Add-new-CPU-model-SapphireRapids.patch
|
||||||
|
Patch0477: core-cpu-common-Fix-the-wrong-ifdef-__aarch64__.patch
|
||||||
|
|
||||||
BuildRequires: flex
|
BuildRequires: flex
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
@ -1053,6 +1063,18 @@ getent passwd qemu >/dev/null || \
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Apr 22 2023 <xufei30@huawei.com> - 10:6.2.0-71
|
||||||
|
- vhost-user-blk: fix the resize crash
|
||||||
|
- plugins: make qemu_plugin_user_exit's locking order consistent with fork_start's
|
||||||
|
- linux-user: fix strace build w/out munlockall
|
||||||
|
- ui: fix crash on serial reset, during init
|
||||||
|
- qga/win/vss: requester_freeze changes
|
||||||
|
- migration: fix populate_vfio_info
|
||||||
|
- block/rbd: workaround for ceph issue #53784
|
||||||
|
- target/i386: add FZRM, FSRS, FSRC
|
||||||
|
- i386: Add new CPU model SapphireRapids
|
||||||
|
- core/cpu-common: Fix the wrong '#ifdef __aarch64__'
|
||||||
|
|
||||||
* Thu Mar 30 2023 <lixianglai@loongson.cn> - 10:6.2.0-70
|
* Thu Mar 30 2023 <lixianglai@loongson.cn> - 10:6.2.0-70
|
||||||
- Add spice buildrequires for loongarch.
|
- Add spice buildrequires for loongarch.
|
||||||
|
|
||||||
|
|||||||
41
qga-win-vss-requester_freeze-changes.patch
Normal file
41
qga-win-vss-requester_freeze-changes.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From 977331440154d500d434258c61eb3542e01dea38 Mon Sep 17 00:00:00 2001
|
||||||
|
From: jipengfei <jipengfei_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Tue, 4 Apr 2023 18:36:27 +0800
|
||||||
|
Subject: [PATCH] qga/win/vss: requester_freeze changes
|
||||||
|
|
||||||
|
Change requester_freeze so that the VSS backup type queried from the registry
|
||||||
|
|
||||||
|
cheery-pick from 0961f929c66ceb5e9e95756bfe418b9ef34510eb
|
||||||
|
|
||||||
|
Signed-off-by: jipengfei_yewu <jipengfei_yewu@cmss.chinamobile.com>
|
||||||
|
Signed-off-by: Kfir Manor <kfir@daynix.com>
|
||||||
|
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
|
||||||
|
---
|
||||||
|
qga/vss-win32/requester.cpp | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/qga/vss-win32/requester.cpp b/qga/vss-win32/requester.cpp
|
||||||
|
index 940a2c8f55..418b9b6e4e 100644
|
||||||
|
--- a/qga/vss-win32/requester.cpp
|
||||||
|
+++ b/qga/vss-win32/requester.cpp
|
||||||
|
@@ -248,6 +248,7 @@ void requester_freeze(int *num_vols, void *mountpoints, ErrorSet *errset)
|
||||||
|
int num_fixed_drives = 0, i;
|
||||||
|
int num_mount_points = 0;
|
||||||
|
|
||||||
|
+ VSS_BACKUP_TYPE vss_bt = get_vss_backup_type();
|
||||||
|
if (vss_ctx.pVssbc) { /* already frozen */
|
||||||
|
*num_vols = 0;
|
||||||
|
return;
|
||||||
|
@@ -294,7 +295,7 @@ void requester_freeze(int *num_vols, void *mountpoints, ErrorSet *errset)
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
- hr = vss_ctx.pVssbc->SetBackupState(true, true, VSS_BT_FULL, false);
|
||||||
|
+ hr = vss_ctx.pVssbc->SetBackupState(true, true, vss_bt, false);
|
||||||
|
if (FAILED(hr)) {
|
||||||
|
err_set(errset, hr, "failed to set backup state");
|
||||||
|
goto out;
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
62
target-i386-add-FZRM-FSRS-FSRC.patch
Normal file
62
target-i386-add-FZRM-FSRS-FSRC.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
From 37ef938fd9cdea1c9f87b17f49a935f729374f1d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
Date: Mon, 27 Feb 2023 10:55:46 +0100
|
||||||
|
Subject: [PATCH] target/i386: add FZRM, FSRS, FSRC
|
||||||
|
|
||||||
|
These are three more markers for string operation optimizations.
|
||||||
|
They can all be added to TCG, whose string operations are more or
|
||||||
|
less as fast as they can be for short lengths.
|
||||||
|
|
||||||
|
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
|
||||||
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
---
|
||||||
|
target/i386/cpu.c | 7 ++++---
|
||||||
|
target/i386/cpu.h | 7 +++++++
|
||||||
|
2 files changed, 11 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||||
|
index e3cea8397c..7122af303d 100644
|
||||||
|
--- a/target/i386/cpu.c
|
||||||
|
+++ b/target/i386/cpu.c
|
||||||
|
@@ -661,7 +661,8 @@ void x86_cpu_vendor_words2str(char *dst, uint32_t vendor1,
|
||||||
|
/* CPUID_7_0_ECX_OSPKE is dynamic */ \
|
||||||
|
CPUID_7_0_ECX_LA57 | CPUID_7_0_ECX_PKS)
|
||||||
|
#define TCG_7_0_EDX_FEATURES 0
|
||||||
|
-#define TCG_7_1_EAX_FEATURES 0
|
||||||
|
+#define TCG_7_1_EAX_FEATURES (CPUID_7_1_EAX_FZRM | CPUID_7_1_EAX_FSRS | \
|
||||||
|
+ CPUID_7_1_EAX_FSRC)
|
||||||
|
#define TCG_APM_FEATURES 0
|
||||||
|
#define TCG_6_EAX_FEATURES CPUID_6_EAX_ARAT
|
||||||
|
#define TCG_XSAVE_FEATURES (CPUID_XSAVE_XSAVEOPT | CPUID_XSAVE_XGETBV1)
|
||||||
|
@@ -871,8 +872,8 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
|
||||||
|
.feat_names = {
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
"avx-vnni", "avx512-bf16", NULL, NULL,
|
||||||
|
- NULL, NULL, NULL, NULL,
|
||||||
|
- NULL, NULL, NULL, NULL,
|
||||||
|
+ NULL, NULL, "fzrm", "fsrs",
|
||||||
|
+ "fsrc", NULL, NULL, NULL,
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
NULL, NULL, NULL, NULL,
|
||||||
|
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
||||||
|
index 4f7fa87b95..7a32dabf12 100644
|
||||||
|
--- a/target/i386/cpu.h
|
||||||
|
+++ b/target/i386/cpu.h
|
||||||
|
@@ -876,6 +876,13 @@ uint64_t x86_cpu_get_supported_feature_word(FeatureWord w,
|
||||||
|
#define CPUID_7_1_EAX_AVX_VNNI (1U << 4)
|
||||||
|
/* AVX512 BFloat16 Instruction */
|
||||||
|
#define CPUID_7_1_EAX_AVX512_BF16 (1U << 5)
|
||||||
|
+/* Fast Zero REP MOVS */
|
||||||
|
+#define CPUID_7_1_EAX_FZRM (1U << 10)
|
||||||
|
+/* Fast Short REP STOS */
|
||||||
|
+#define CPUID_7_1_EAX_FSRS (1U << 11)
|
||||||
|
+/* Fast Short REP CMPS/SCAS */
|
||||||
|
+#define CPUID_7_1_EAX_FSRC (1U << 12)
|
||||||
|
+
|
||||||
|
/* XFD Extend Feature Disabled */
|
||||||
|
#define CPUID_D_1_EAX_XFD (1U << 4)
|
||||||
|
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
70
ui-fix-crash-on-serial-reset-during-init.patch
Normal file
70
ui-fix-crash-on-serial-reset-during-init.patch
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
From 548991fba5792b9efebc60cd75cba656624319d4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: jipengfei <jipengfei_yewu@cmss.chinamobile.com>
|
||||||
|
Date: Tue, 4 Apr 2023 18:11:30 +0800
|
||||||
|
Subject: [PATCH] ui: fix crash on serial reset, during init
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
For ex, when resetting the xlnx-zcu102 machine:
|
||||||
|
|
||||||
|
(lldb) bt
|
||||||
|
* thread #1, queue = 'com.apple.main-thread', stop reason =
|
||||||
|
EXC_BAD_ACCESS (code=1, address=0x50)
|
||||||
|
* frame #0: 0x10020a740 gd_vc_send_chars(vc=0x000000000) at
|
||||||
|
gtk.c:1759:41 [opt]
|
||||||
|
frame #1: 0x100636264 qemu_chr_fe_accept_input(be=<unavailable>) at
|
||||||
|
char-fe.c:159:9 [opt]
|
||||||
|
frame #2: 0x1000608e0 cadence_uart_reset_hold [inlined]
|
||||||
|
uart_rx_reset(s=0x10810a960) at cadence_uart.c:158:5 [opt]
|
||||||
|
frame #3: 0x1000608d4 cadence_uart_reset_hold(obj=0x10810a960) at
|
||||||
|
cadence_uart.c:530:5 [opt]
|
||||||
|
frame #4: 0x100580ab4 resettable_phase_hold(obj=0x10810a960,
|
||||||
|
opaque=0x000000000, type=<unavailable>) at resettable.c:0 [opt]
|
||||||
|
frame #5: 0x10057d1b0 bus_reset_child_foreach(obj=<unavailable>,
|
||||||
|
cb=(resettable_phase_hold at resettable.c:162), opaque=0x000000000,
|
||||||
|
type=RESET_TYPE_COLD) at bus.c:97:13 [opt]
|
||||||
|
frame #6: 0x1005809f8 resettable_phase_hold [inlined]
|
||||||
|
resettable_child_foreach(rc=0x000060000332d2c0, obj=0x0000600002c1c180,
|
||||||
|
cb=<unavailable>, opaque=0x000000000, type=RESET_TYPE_COLD) at
|
||||||
|
resettable.c:96:9 [opt]
|
||||||
|
frame #7: 0x1005809d8 resettable_phase_hold(obj=0x0000600002c1c180,
|
||||||
|
opaque=0x000000000, type=RESET_TYPE_COLD) at resettable.c:173:5 [opt]
|
||||||
|
frame #8: 0x1005803a0
|
||||||
|
resettable_assert_reset(obj=0x0000600002c1c180, type=<unavailable>) at
|
||||||
|
resettable.c:60:5 [opt]
|
||||||
|
frame #9: 0x10058027c resettable_reset(obj=0x0000600002c1c180,
|
||||||
|
type=RESET_TYPE_COLD) at resettable.c:45:5 [opt]
|
||||||
|
|
||||||
|
While the chardev is created early, the VirtualConsole is associated
|
||||||
|
after, during qemu_init_displays().
|
||||||
|
|
||||||
|
cheery-pick from 49152ac47003ca21fc6f2a5c3e517f79649e1541
|
||||||
|
Signed-off-by: jipengfei_yewu@cmss.chinamobile.com
|
||||||
|
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||||
|
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||||||
|
Message-Id: <20230220072251.3385878-1-marcandre.lureau@redhat.com>
|
||||||
|
---
|
||||||
|
ui/gtk.c | 6 ++++--
|
||||||
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ui/gtk.c b/ui/gtk.c
|
||||||
|
index 428f02f2df..6d9cb42b3d 100644
|
||||||
|
--- a/ui/gtk.c
|
||||||
|
+++ b/ui/gtk.c
|
||||||
|
@@ -1718,8 +1718,10 @@ static void gd_vc_chr_accept_input(Chardev *chr)
|
||||||
|
{
|
||||||
|
VCChardev *vcd = VC_CHARDEV(chr);
|
||||||
|
VirtualConsole *vc = vcd->console;
|
||||||
|
-
|
||||||
|
- gd_vc_send_chars(vc);
|
||||||
|
+
|
||||||
|
+ if (vc) {
|
||||||
|
+ gd_vc_send_chars(vc);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
static void gd_vc_chr_set_echo(Chardev *chr, bool echo)
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
41
vhost-user-blk-fix-the-resize-crash.patch
Normal file
41
vhost-user-blk-fix-the-resize-crash.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From 17e6be412054ae22027a339614fca82d55e64973 Mon Sep 17 00:00:00 2001
|
||||||
|
From: qihao <qihao@cmss.chinamobile.com>
|
||||||
|
Date: Thu, 30 Mar 2023 17:45:11 +0800
|
||||||
|
Subject: [PATCH] vhost-user-blk: fix the resize crash
|
||||||
|
|
||||||
|
cheery-pick from ab6075d849f4285fc730d3ae6e17418d65d09998
|
||||||
|
|
||||||
|
If the os is not installed and doesn't have the virtio guest driver,
|
||||||
|
the vhost dev isn't started, so the dev->vdev is NULL.
|
||||||
|
|
||||||
|
Reproduce: mount a Win 2019 iso, go into the install ui, then resize
|
||||||
|
the virtio-blk device, qemu crash.
|
||||||
|
|
||||||
|
Signed-off-by: qihao_yewu <qihao_yewu@cmss.chinamobile.com>
|
||||||
|
Signed-off-by: Li Feng <fengli@smartx.com>
|
||||||
|
Message-Id: <20220919121816.3252223-1-fengli@smartx.com>
|
||||||
|
Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
|
||||||
|
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
---
|
||||||
|
hw/block/vhost-user-blk.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
|
||||||
|
index eb1264afc7..bcc3f83c4b 100644
|
||||||
|
--- a/hw/block/vhost-user-blk.c
|
||||||
|
+++ b/hw/block/vhost-user-blk.c
|
||||||
|
@@ -95,6 +95,10 @@ static int vhost_user_blk_handle_config_change(struct vhost_dev *dev)
|
||||||
|
VHostUserBlk *s = VHOST_USER_BLK(dev->vdev);
|
||||||
|
Error *local_err = NULL;
|
||||||
|
|
||||||
|
+ if (!dev->started) {
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
ret = vhost_dev_get_config(dev, (uint8_t *)&blkcfg,
|
||||||
|
sizeof(struct virtio_blk_config),
|
||||||
|
&local_err);
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user