2003-03-01 14:04:30

by George Spelvin

[permalink] [raw]
Subject: Playing with 2.5.63: APM blanking and "bio too big"

I've decided that things appear to have settled down enough to try using
2.5 on my personal "real work" machines. I generally used development
kernels (1.1, 1.3, 2.1, 2.3) on my personal machines, but early 2.5 was
causing so much disk corruption that I got scared off.

Anyway, a few early observations about the 2.4.20 -> 2.5.63 jump.

* It feels quite peppy! Disk-intensive operations don't mess up interactive
response nearly as much as they do in 2.4.

* I'm having some trouble with mouse double-clicks not being recognized
in X (PS/2 -> /dev/input/mice -> gpm -Rraw -> Xfree86), but I haven't
chased it enough to blame the kernel yet.

* I had real problems with APM screen blanking enabled. It reliably
and repeatedly locked the machine HARD (no keyboard, no SysRq, no ping)
when the scren blanker kicked in or trying to switch from X. This is
an Athlon on a KT133 Motherboard. No problems in 2.4. APM can corectly
power the machine off, however.

* And finally, should I be worried about the following messages?
Nothing *seems* to be dying horribly, but discussion last December talked
about corruption and seemed to treat this message as a serious bug in 2.5.50.

bio too big device ide0(3,4) (256 > 255)
bio too big device ide1(22,4) (256 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (328 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (488 > 255)
bio too big device ide1(22,4) (424 > 255)
bio too big device ide0(3,4) (288 > 255)
bio too big device ide0(3,4) (456 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (256 > 255)
bio too big device ide1(22,4) (296 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (376 > 255)
bio too big device ide1(22,4) (336 > 255)
bio too big device ide0(3,4) (384 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide0(3,4) (376 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (344 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide1(22,4) (256 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide1(22,4) (456 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide1(22,4) (256 > 255)
bio too big device ide1(22,4) (256 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide1(22,4) (256 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide0(3,4) (256 > 255)
bio too big device ide0(3,4) (256 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (360 > 255)
bio too big device ide0(3,4) (424 > 255)
bio too big device ide0(3,4) (272 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)
bio too big device ide1(22,4) (512 > 255)
bio too big device ide0(3,4) (512 > 255)

There's a 2-way RAID0 with 256K stripe size, which might have something
to do with the popularity of the number 512.


Thanks for all the hard work and great code!


2003-03-01 16:48:16

by Mikael Pettersson

[permalink] [raw]
Subject: Re: Playing with 2.5.63: APM blanking and "bio too big"

On 1 Mar 2003 14:14:45 -0000, [email protected] wrote:
>* I had real problems with APM screen blanking enabled. It reliably
> and repeatedly locked the machine HARD (no keyboard, no SysRq, no ping)
> when the scren blanker kicked in or trying to switch from X. This is
> an Athlon on a KT133 Motherboard. No problems in 2.4. APM can corectly
> power the machine off, however.

Do you have CONFIG_X86_UP_APIC=y?

I used to have problems with 2.5 causing hangs at X shutdown or
when the regular console screen blanker kicked in. Recently I
also got these on a new machine with 2.4.

I traced it down to CONFIG_APM_DISPLAY_BLANK. It invokes the BIOS
without disabling the local APIC first. If one is unlucky, the
local APIC timer may interrupt while the machine is running in BIOS,
which typically causes a complete hang.

This is more likely to happen in 2.5 since it increased the timer
interrupt rate by a factor of 10, but it can happen in 2.4 too.

To verify, hack apic.c and ensure that "dont_enable_local_apic_timer"
is initialised to 1. Also don't enable the NMI watchdog.

Another option, which is what I use now on all my local-APIC capable
machines, is to disable APM_DISPLAY_BLANK.

I really despise BIOS writers.

/Mikael

2003-03-01 17:15:22

by George Spelvin

[permalink] [raw]
Subject: Re: Playing with 2.5.63: APM blanking and "bio too big"

>>* I had real problems with APM screen blanking enabled. It reliably
>> and repeatedly locked the machine HARD (no keyboard, no SysRq, no ping)
>> when the scren blanker kicked in or trying to switch from X. This is
>> an Athlon on a KT133 Motherboard. No problems in 2.4. APM can corectly
>> power the machine off, however.

> Do you have CONFIG_X86_UP_APIC=y?

Right in one!

> To verify, hack apic.c and ensure that "dont_enable_local_apic_timer"
> is initialised to 1. Also don't enable the NMI watchdog.

I'll try that. Thanks!

> Another option, which is what I use now on all my local-APIC capable
> machines, is to disable APM_DISPLAY_BLANK.

What I'm running now, and now that I understand, probably preferable.
Maybe a warning in Configure.help?

--- arch/i386/Kconfig 2003-02-24 14:05:10.000000000 -0500
+++ arch/i386/Kconfig.new 2003-03-01 12:23:59.000000000 -0500
@@ -922,6 +922,10 @@
backlight at all, or it might print a lot of errors to the console,
especially if you are using gpm.

+ This also tends to interact badly with use of the local APIC.
+ You probably don't want this option unless you are building
+ for a laptop that you intend to use in text mode.
+
config APM_RTC_IS_GMT
bool "RTC stores time in GMT"
depends on APM


Or should Linux mask the APIC timer before making the APM call?

> I really despise BIOS writers.

The BIOS interface is... non-obvious.