[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140921184125.GA23719@redhat.com>
Date: Sun, 21 Sep 2014 20:41:25 +0200
From: Oleg Nesterov <oleg@...hat.com>
To: "H. Peter Anvin" <hpa@...or.com>, Ingo Molnar <mingo@...nel.org>
Cc: Andi Kleen <andi@...stfloor.org>,
Andy Lutomirski <luto@...capital.net>,
Denys Vlasenko <dvlasenk@...hat.com>,
Peter Zijlstra <peterz@...radead.org>, x86@...nel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v3 0/2] x86: reimplement ___preempt_schedule*() using THUNK
helpers
Peter, Ingo, please consider for inclusion.
Changes:
v3: added the acks from Andy, otherwise unchanged
v2: fix the naming in thunk_32.S (thanks Denys!)
And it seems that the patch below (on top of 1/2) also makes sense...
Oleg.
arch/x86/kernel/Makefile | 2 --
arch/x86/kernel/preempt.S | 25 -------------------------
arch/x86/lib/Makefile | 2 +-
arch/x86/lib/thunk_32.S | 20 ++++++++++++++++----
arch/x86/lib/thunk_64.S | 7 +++++++
5 files changed, 24 insertions(+), 32 deletions(-)
--- x/arch/x86/include/asm/irqflags.h
+++ x/arch/x86/include/asm/irqflags.h
@@ -166,8 +166,9 @@ static inline int arch_irqs_disabled(voi
#else
-#ifdef CONFIG_X86_64
#define ARCH_LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk
+
+#ifdef CONFIG_X86_64
#define ARCH_LOCKDEP_SYS_EXIT_IRQ \
TRACE_IRQS_ON; \
sti; \
@@ -176,17 +177,7 @@ static inline int arch_irqs_disabled(voi
RESTORE_REST; \
cli; \
TRACE_IRQS_OFF;
-
#else
-#define ARCH_LOCKDEP_SYS_EXIT \
- pushl %eax; \
- pushl %ecx; \
- pushl %edx; \
- call lockdep_sys_exit; \
- popl %edx; \
- popl %ecx; \
- popl %eax;
-
#define ARCH_LOCKDEP_SYS_EXIT_IRQ
#endif
--- x/arch/x86/lib/thunk_32.S
+++ x/arch/x86/lib/thunk_32.S
@@ -33,6 +33,10 @@
THUNK trace_hardirqs_off_thunk,trace_hardirqs_off_caller,1
#endif
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
+ THUNK lockdep_sys_exit_thunk,lockdep_sys_exit
+#endif
+
#ifdef CONFIG_PREEMPT
THUNK ___preempt_schedule, preempt_schedule
#ifdef CONFIG_CONTEXT_TRACKING
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists