Re: [PATCH] i386-pda UP optimization

From: Eric Dumazet
Date: Wed Nov 15 2006 - 12:58:28 EST


On Wednesday 15 November 2006 18:49, Ingo Molnar wrote:
> * Eric Dumazet <dada1@xxxxxxxxxxxxx> wrote:
> > Machine boots but freeze when init starts. Any idea ?
>
> probably caused by this:
> > +# define GET_CPU_NUM(reg)
> >
> > #define FIXUP_ESPFIX_STACK \
> > /* since we are on a wrong stack, we cant make it a C code :( */ \
> > - movl %gs:PDA_cpu, %ebx; \
> > + GET_CPU_NUM(%ebx) \
> > PER_CPU(cpu_gdt_descr, %ebx); \
> > movl GDS_address(%ebx), %ebx; \
>
> %ebx very definitely wants to have a current CPU number loaded ;) Pick
> it up from the task struct.

Hum.... Are you sure ?

For UP we have this PER_CPU definition :

#define PER_CPU(var, cpu) \
movl $per_cpu__/**/var, cpu;

You can see 'cpu' is a pure output , not an input value.

So I basically deleted the fist instruction of this sequence :

movl %gs:PDA_cpu, %ebx
movl $per_cpu__cpu_gdt_descr, %ebx;

Did I miss something ?
-
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/