Re: [PATCH 3/4] x86: open-code register save/restore in trace_hardirqs thunks

From: Denys Vlasenko
Date: Sat Jan 10 2015 - 17:36:23 EST


On Sat, Jan 10, 2015 at 11:07 PM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Sat, Jan 10, 2015 at 2:00 PM, Denys Vlasenko <dvlasenk@xxxxxxxxxx> wrote:
>> + pushq_cfi %rdi
>> + CFI_REL_OFFSET rdi, 0
>> + pushq_cfi %rsi
>> + CFI_REL_OFFSET rsi, 0
>> + pushq_cfi %rdx
>> + CFI_REL_OFFSET rdx, 0
> ..
> Ugh.
>
> This is too ugly, it needs to die.
>
> Why doesn't pushq_cfi do that CFI_REL_OFFSET thing?

I don't know either... it seems to be used after push_cfi
*sometimes*, not always:

.macro op_safe_regs op
ENTRY(\op\()_safe_regs)
CFI_STARTPROC
pushl_cfi %ebx
pushl_cfi %ebp
pushl_cfi %esi
pushl_cfi %edi

but

ENTRY(csum_partial)
CFI_STARTPROC
pushl_cfi %esi
CFI_REL_OFFSET esi, 0
pushl_cfi %ebx
CFI_REL_OFFSET ebx, 0

We need an expert to enlighten us.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/