[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200611151858.09958.dada1@cosmosbay.com>
Date: Wed, 15 Nov 2006 18:58:09 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: Ingo Molnar <mingo@...e.hu>
Cc: Andi Kleen <ak@...e.de>, akpm@...l.org,
Arjan van de Ven <arjan@...radead.org>,
Jeremy Fitzhardinge <jeremy@...p.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] i386-pda UP optimization
On Wednesday 15 November 2006 18:49, Ingo Molnar wrote:
> * Eric Dumazet <dada1@...mosbay.com> 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@...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