Re: [PATCH 16/21] x86/entry/64: Use a per-CPU trampoline stack for IDT entries

From: Dave Hansen
Date: Fri Dec 01 2017 - 16:21:56 EST


>>> [ 30.811750] CR2: fffffffffdeb2f98 CR3: 0000000423fae001 CR4: 00000000001607e0
>>> [ 30.819712] Call Trace:
>>> [ 30.822442] <SYSENTER>
>>> [ 30.825170] trace_hardirqs_on_thunk+0x1c/0x1c
>> ...
>>> [ 31.000571] R13: 0000000000000050 R14: 0000000000000076 R15: 00007f59f76f2d60
>>> [ 31.008533] </SYSENTER>
>>
>> Should we change that string to something more descriptive?
>
> I suppose we could rename it to "ENTRY_TRAMPOLINE" or something like that.

The attached patch does just that. Any objections?

From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>

The "SYSENTER" stack is used for a lot more than SYSENTER now.
Give it a better string to display in stack dumps.

We should probably cleanse the 64-bit code of the remaining
"SYSENTER" nomenclature too at some point.

Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
---

b/arch//x86/kernel/dumpstack_64.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff -puN arch//x86/kernel/dumpstack_64.c~SYSENTER-rename arch//x86/kernel/dumpstack_64.c
--- a/arch//x86/kernel/dumpstack_64.c~SYSENTER-rename 2017-12-01 12:43:16.768707737 -0800
+++ b/arch//x86/kernel/dumpstack_64.c 2017-12-01 13:19:21.741702337 -0800
@@ -37,8 +37,14 @@ const char *stack_type_name(enum stack_t
if (type == STACK_TYPE_IRQ)
return "IRQ";

- if (type == STACK_TYPE_SYSENTER)
- return "SYSENTER";
+ if (type == STACK_TYPE_SYSENTER) {
+ /*
+ * On 64-bit, we have a generic entry stack that we
+ * use for all the kernel try points, including
+ * SYSENTER.
+ */
+ return "ENTRY_TRAMPOLINE";
+ }

if (type >= STACK_TYPE_EXCEPTION && type <= STACK_TYPE_EXCEPTION_LAST)
return exception_stack_names[type - STACK_TYPE_EXCEPTION];
_