2004-04-04 20:32:58

by Sascha Wilde

[permalink] [raw]
Subject: [2.6.x] reboot fails on AMD Athlon System

Hello *,

On my AMD Athlon System any version of Linux 2.6.x (including 2.6.5)
hangs when trying to reboot (or power off). Any other OS (including
any Linux version up to 2.4.x) reboots the box like expected.

I posted this before, so a long version of the problem report can be
found here:
http://marc.theaimsgroup.com/?l=linux-kernel&m=107913498220501&w=2


After getting no helpful reply I decided to ignore the fact that I'm
no kernel-hacker and started digging in the sources.

What I found (or better: what I haven't found) is even more confusing
to me: the system hangs exactly at the time when the reboot should
be triggered by mach_reboot().

I tracked it down to this very line by placing lots of printk() with
debugging messages into linux/arch/i386/kernel/reboot.c

The strange thing is: the code of mach_reboot() is line by line exactly
the same as used in Linux 2.4.24 which reboots the box w/o problems.

I even forced the kernel to use the alternative reboot method ("force
a triple fault" -- code same as in 2.4.x, too) but with no success.

The conclusion so far: the code that hangs is not changed in
comparison with Linux 2.4.24 which works for me, so the reason for the
failure must be elsewhere in the setup of the hardware environment.
Maybe in the apic disabling code, though it looks very similar to the
2.4.24 version, too. Or in the setup of the AMD [Irongate/Viper]
chip-set?

As mentioned before I don't know anything about kernel-hacking or
the esoteric details of x86 platform, but maybe those of you who do,
can give me some useful hints on where to look further.

Please cc me in any reply, I'm not subscribed to the lkml.

cheers
sascha
--
Sascha Wilde : "I heard that if you play the Windows CD backward, you
: get a satanic message. But that's nothing compared to
: when you play it forward: It installs Windows...."
: -- G. R. Gaudreau


2004-04-09 22:38:45

by Sascha Wilde

[permalink] [raw]
Subject: Re: [2.6.x] reboot fails on AMD Athlon System

On Sun, Apr 04, 2004 at 10:32:54PM +0200, Sascha Wilde wrote:
> The conclusion so far: the code that hangs is not changed in
> comparison with Linux 2.4.24 which works for me, so the reason for the
> failure must be elsewhere in the setup of the hardware environment.
> Maybe in the apic disabling code, though it looks very similar to the
> 2.4.24 version, too. Or in the setup of the AMD [Irongate/Viper]
> chip-set?

I just build a kernel with everything special disabeled: no APIC
support, no Athlon specific code (set i386), no AMD specific chipset
code (neither IDE/DMA nor AGP/DRI), no PM, no nothing...

...and it still refuses to reboot -- so the code change which
prevents my system from rebooting must be anywhere in some quite
generic code. But where could this be?

Any tips, hints or comments would still be highly appreciated!

Please cc me in any reply, I'm not subscribed to the lkml.

cheers
sascha
--
Sascha Wilde : The sum of intelligence on earth is a constant;
: population is growing

2004-04-10 17:38:35

by Denis Vlasenko

[permalink] [raw]
Subject: Re: [2.6.x] reboot fails on AMD Athlon System

On Saturday 10 April 2004 01:38, Sascha Wilde wrote:
> On Sun, Apr 04, 2004 at 10:32:54PM +0200, Sascha Wilde wrote:
> > The conclusion so far: the code that hangs is not changed in
> > comparison with Linux 2.4.24 which works for me, so the reason for the
> > failure must be elsewhere in the setup of the hardware environment.
> > Maybe in the apic disabling code, though it looks very similar to the
> > 2.4.24 version, too. Or in the setup of the AMD [Irongate/Viper]
> > chip-set?
>
> I just build a kernel with everything special disabeled: no APIC
> support, no Athlon specific code (set i386), no AMD specific chipset
> code (neither IDE/DMA nor AGP/DRI), no PM, no nothing...
>
> ...and it still refuses to reboot -- so the code change which
> prevents my system from rebooting must be anywhere in some quite
> generic code. But where could this be?

How exactly do you reboot your box?

I personally use a custom script. Attached.
Hardwired to be in /app/shutdown-0.0.6/script,
grep for this string if you move it.

Try it and track down what exactly does not work.
--
vda


Attachments:
(No filename) (1.06 kB)
script.tar.gz (5.82 kB)
Download all attachments

2004-04-10 20:41:15

by Sascha Wilde

[permalink] [raw]
Subject: Re: [2.6.x] reboot fails on AMD Athlon System

On Sat, Apr 10, 2004 at 08:38:20PM +0300, Denis Vlasenko wrote:
> On Saturday 10 April 2004 01:38, Sascha Wilde wrote:
> > On Sun, Apr 04, 2004 at 10:32:54PM +0200, Sascha Wilde wrote:
> > > The conclusion so far: the code that hangs is not changed in
> > > comparison with Linux 2.4.24 which works for me, so the reason for the
> > > failure must be elsewhere in the setup of the hardware environment.
> > > Maybe in the apic disabling code, though it looks very similar to the
> > > 2.4.24 version, too. Or in the setup of the AMD [Irongate/Viper]
> > > chip-set?
> >
> > I just build a kernel with everything special disabeled: no APIC
> > support, no Athlon specific code (set i386), no AMD specific chipset
> > code (neither IDE/DMA nor AGP/DRI), no PM, no nothing...
> >
> > ...and it still refuses to reboot -- so the code change which
> > prevents my system from rebooting must be anywhere in some quite
> > generic code. But where could this be?
>
> How exactly do you reboot your box?

via "shutdown -r" or "reboot" from util-linux or via Sysrequest-Keys

Please read my former Messages on this Topic:

MID <[email protected]>
http://marc.theaimsgroup.com/?l=linux-kernel&m=107913498220501&w=2

and

MID <[email protected]>
http://marc.theaimsgroup.com/?l=linux-kernel&m=108111101522751&w=2

you will notice that the reboot method is unrelated to the problem.

> I personally use a custom script. Attached.
> Hardwired to be in /app/shutdown-0.0.6/script,

Nice, but not relevant to the problem.

> Try it and track down what exactly does not work.

As I pointed out in my former mails: what hangs is the assembler code
called from machine_restart() -- this is the exact point of failture.
But the reason for the problem must be somewhere else, for the
failing rebootcode hasn't changed since 2.4.x which reboots on my
system just fine.

cheers
sascha
--
Sascha Wilde
To become a Jedi, use Emacs you have to.