Fetch the repository succeeded.
This action will force synchronization from src-openEuler/kernel, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
diff --git a/arch/arm64/configs/openeuler_defconfig b/arch/arm64/configs/openeuler_defconfig
index b8d554996..b84cc0bb1 100644
--- a/arch/arm64/configs/openeuler_defconfig
+++ b/arch/arm64/configs/openeuler_defconfig
@@ -73,6 +73,7 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT_RT=y
#
# CPU/Task time and stats accounting
@@ -730,7 +731,7 @@ CONFIG_ACPI_MPAM=y
CONFIG_ACPI_PPTT=y
# CONFIG_PMIC_OPREGION is not set
CONFIG_IRQ_BYPASS_MANAGER=y
-CONFIG_VIRTUALIZATION=y
+# CONFIG_VIRTUALIZATION is not set
CONFIG_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
@@ -1114,7 +1115,7 @@ CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
# CONFIG_GUP_BENCHMARK is not set
# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_ARCH_HAS_PTE_SPECIAL=y
-CONFIG_PIN_MEMORY=y
+# CONFIG_PIN_MEMORY is not set
CONFIG_PID_RESERVE=y
CONFIG_MEMORY_RELIABLE=y
diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
index dbe196f38..da2413218 100644
--- a/arch/arm64/kernel/fpsimd.c
+++ b/arch/arm64/kernel/fpsimd.c
@@ -244,7 +244,7 @@ static void *sve_free_atomic(struct task_struct *task)
*/
static void get_cpu_fpsimd_context(void)
{
- local_bh_disable();
+ preempt_disable();
__get_cpu_fpsimd_context();
}
@@ -265,7 +265,7 @@ static void __put_cpu_fpsimd_context(void)
static void put_cpu_fpsimd_context(void)
{
__put_cpu_fpsimd_context();
- local_bh_enable();
+ preempt_enable();
}
static bool have_cpu_fpsimd_context(void)
diff --git a/arch/x86/configs/openeuler_defconfig b/arch/x86/configs/openeuler_defconfig
index c5a878851..1ed51d9f6 100644
--- a/arch/x86/configs/openeuler_defconfig
+++ b/arch/x86/configs/openeuler_defconfig
@@ -88,9 +88,10 @@ CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
# end of Timers subsystem
-CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT_RT=y
#
# CPU/Task time and stats accounting
@@ -205,7 +206,7 @@ CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_BPF=y
-# CONFIG_EXPERT is not set
+CONFIG_EXPERT=y
CONFIG_UID16=y
CONFIG_MULTIUSER=y
CONFIG_SGETMASK_SYSCALL=y
@@ -726,7 +727,7 @@ CONFIG_KVM_COMPAT=y
CONFIG_HAVE_KVM_IRQ_BYPASS=y
CONFIG_HAVE_KVM_NO_POLL=y
CONFIG_KVM_XFER_TO_GUEST_WORK=y
-CONFIG_VIRTUALIZATION=y
+# CONFIG_VIRTUALIZATION is not set
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_X86_SGX_KVM=y
diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h
index a3b73de27..dda9ec24f 100644
--- a/arch/x86/include/asm/preempt.h
+++ b/arch/x86/include/asm/preempt.h
@@ -134,10 +134,8 @@ static __always_inline bool should_resched(int preempt_offset)
#endif
}
+#ifndef CONFIG_PREEMPT_RT
#ifdef CONFIG_PREEMPTION
-#ifdef CONFIG_PREEMPT_RT
- extern void preempt_schedule_lock(void);
-#endif
extern asmlinkage void preempt_schedule(void);
extern asmlinkage void preempt_schedule_thunk(void);
@@ -166,4 +164,16 @@ do { \
#endif
+#else
+#ifdef CONFIG_PREEMPTION
+#ifdef CONFIG_PREEMPT_RT
+extern void preempt_schedule_lock(void);
+#endif
+extern asmlinkage void preempt_schedule(void);
+#define __preempt_schedule() preempt_schedule()
+extern asmlinkage void preempt_schedule_notrace(void);
+#define __preempt_schedule_notrace() preempt_schedule_notrace()
+#endif /* CONFIG_PREEMPTION */
+#endif
+
#endif /* __ASM_PREEMPT_H */
diff --git a/include/linux/printk.h b/include/linux/printk.h
index 9331b131b..23946f482 100644
--- a/include/linux/printk.h
+++ b/include/linux/printk.h
@@ -241,7 +241,7 @@ __printf(1, 2) void dump_stack_set_arch_desc(const char *fmt, ...);
void dump_stack_print_info(const char *log_lvl);
void show_regs_print_info(const char *log_lvl);
extern asmlinkage void dump_stack(void) __cold;
-#if defined(CONFIG_X86) || defined(CONFIG_ARM64_PSEUDO_NMI)
+#if (defined(CONFIG_X86) || defined(CONFIG_ARM64_PSEUDO_NMI)) && !defined(CONFIG_PREEMPT_RT)
extern void zap_locks(void);
#else
static inline void zap_locks(void) { }
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 7859f42a6..d1a472283 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1813,7 +1813,7 @@ static void print_sync_until(struct console *con, u64 seq)
console_atomic_unlock(flags);
}
-#if defined(CONFIG_X86) || defined(CONFIG_ARM64_PSEUDO_NMI)
+#if (defined(CONFIG_X86) || defined(CONFIG_ARM64_PSEUDO_NMI)) && !defined(CONFIG_PREEMPT_RT)
void zap_locks(void)
{
if (raw_spin_is_locked(&logbuf_lock)) {
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。