Problem with kexec on i386, linux-3.5
Eric W. Biederman
ebiederm at xmission.com
Mon Aug 13 23:31:59 EDT 2012
Christian Schaubschläger <christian.schaubschlaeger at gmx.at> writes:
> Hello list,
> I'm not sure if this is the correct place to post this; if it's not,
> I'd like to apologize.
> Here's a short description of my problem:
> I have a tiny protected-/real mode program, which I start using kexec
> (kexec-tools 2.0.3 released 05 April 2012). At some point this program
> makes a call to extended-int13 to read data from the disk. Now
> starting with linux-3.5-rc1 (and at least up to linux-3.5) this
> extended int13 call does not work any more. Apparently the call
> returns with error code 0x80, which means "timeout (not ready)".
> I have two machines here, both with Intel chipsets (one CougarPoint,
> one older ICH7-M), and I see the same behaviour on both machines.
> When I use older kernels (starting from 2.6.something up to 3.4.6),
> everything works fine.
> Now I'm not sure if this is a kernel issue, or a kexec issue, or a
> mistake by myself. Maybe someone has a hint for me...
> If required, of course, I can provide more detailed information about
> my hardware, kernel config, etc. (since I'm not sure if this is the
> correct place, I wanted to keep this message short for now).
That is a tricky issue. Sometimes the slightest things can set
something like this off.
Somewhere someone changed something in one of the drivers that made it
so that the hardware winds up in a state the int 13 disk driver does not
like it after kexec.
If you want to track this down I would recommend a bisect between 3.4
and 3.5-rc1 to see which change breaks your setup.
Once we know what kernel change caused this we can start to think about
how fixable your failure is.
Ideally we fix these kinds of things, in practice many times things are
just too hard to track down and things like this break.
More information about the kexec