Re: [PATCH 7/7] sched, x86: Optimize the preempt_schedule() call

From: Ingo Molnar
Date: Tue Sep 10 2013 - 10:25:27 EST



* Jan Beulich <JBeulich@xxxxxxxx> wrote:

> >>> On 10.09.13 at 15:42, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> > * Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> >
> >> + .macro SAVE_ALL
> >> + pushl_cfi %eax
> >> + CFI_REL_OFFSET eax, 0
> >> + pushl_cfi %ebp
> >> + CFI_REL_OFFSET ebp, 0
> >> + pushl_cfi %edi
> >> + CFI_REL_OFFSET edi, 0
> >> + pushl_cfi %esi
> >> + CFI_REL_OFFSET esi, 0
> >> + pushl_cfi %edx
> >> + CFI_REL_OFFSET edx, 0
> >> + pushl_cfi %ecx
> >> + CFI_REL_OFFSET ecx, 0
> >> + pushl_cfi %ebx
> >> + CFI_REL_OFFSET ebx, 0
> >> + .endm
> >> +
> >> + .macro RESTORE_ALL
> >> + popl_cfi %ebx
> >> + CFI_RESTORE ebx
> >> + popl_cfi %ecx
> >> + CFI_RESTORE ecx
> >> + popl_cfi %edx
> >> + CFI_RESTORE edx
> >> + popl_cfi %esi
> >> + CFI_RESTORE esi
> >> + popl_cfi %edi
> >> + CFI_RESTORE edi
> >> + popl_cfi %ebp
> >> + CFI_RESTORE ebp
> >> + popl_cfi %eax
> >> + CFI_RESTORE eax
> >> + .endm
> >
> > Side note: shouldn't the pushl_cfi and popl_cfi macros be adjusted,
> > instead of open coding it?
>
> If you mean the open coding of CFI_REL_OFFSET and CFI_RESTORE, then no -
> there may be pushes/pops that don't save the caller's register values
> (i.e. where solely the frame pointer adjustment matters).

Ok.

> If you meant something else, please clarify what.

No, that's what I meant.

Thanks,

Ingo
--
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/