Re: SMP speed on 6x86 UPt

Kurt Garloff (garloff@kg1.ping.de)
Mon, 23 Mar 1998 09:36:01 +0100


> > Why that? It's the normal way every the CPU starts to boot the kernel.
> > Do other processors than second and later _intel_ processors have null
> > in %bx for some reason ?
>
> Ok the intel stuff has to boot the other CPU's in real mode (no I dont know
> why intel did this either). We do a real mode start up in low memory using
> the base of that CPU's kernel stack and jump into protected mode and to
> the kernel entry code. the lock variable is used to detected 2nd or later
> CPUs (bad things occur if CPU#2 also clears the BSS for example..)

You're right, %bx is cleared in setup.S and only non-zero, if head.S is
entered through trampoline.S.

> > Sorry, I don't understand what you want to tell me here. I'd like to have an
> > official SMP kernel running on my UP 6x86, that's why I try to find a real
> > solution for this.
>
> Im wondering if its something else like alignments

Not sure. The 6x86 is pretty much independent of alignments (compared to
Pentium or PPro), so I don't think it's an alignment matter.

Forget about the CR4 thing. Maybe I was booting the wrong kernel and was
believing the jump did make the change. So my SMP kernel still suffers the
slowdown. I believe, it's something like BTB or L1 deactivation that causes
the slowdown. The Bogos are 1/4, other apps are also considerably slower,
but not that bad.

I'm gonna investigate further.

I added a calibrate_delay() right after the time_init() in kernel/main.c, to see
if the slowdown happened before. It does!

Regards,

-- 
Kurt Garloff, Dortmund 
<K.Garloff@ping.de>
PGP key on http://student.physik.uni-dortmund.de/homepages/garloff

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu