2010-04-17 15:18:59

by Frans Pop

[permalink] [raw]
Subject: [regression,bisected] Missing boot messages with VESAFB after VT initialization

Initially all messages from init scripts are displayed correctly, but after
the init script to set up the VT1-VT6 is run, messages from init scripts
are no longer displayed. Instead the display is blank with only a cursor.

However, if I switch back to VT1 from X.Org after the boot has completed,
the missing messages are visible.

System is x86_64 running Debian stable ("Lenny"). I'm using VESAFB (vga=791)
and no KMS.

I've bisected this to the following commit:
commit 477346ff74f4c2aed50e8a0db96a61069f3e5b80
Author: Dave Airlie <[email protected]>
Date: Thu Jan 7 17:04:54 2010 +1000
x86-64: Allow fbdev primary video code

Kernel config is available in: http://lkml.org/lkml/2010/4/16/230

Relevant part of the boot log (I boot with 'quiet'):
[...]
Sat Apr 17 16:52:07 2010: Starting portmap daemon...Already running..
Sat Apr 17 16:52:07 2010: Starting NFS common utilities: statd idmapd.
Sat Apr 17 16:52:08 2010: Setting sensors limits.
Sat Apr 17 16:52:08 2010: Setting console screen modes and fonts.
[Messages after this point are not displayed]
Sat Apr 17 16:52:08 2010: Setting up ALSA...done.
Sat Apr 17 16:52:09 2010: INIT: Entering runlevel: 2
Sat Apr 17 16:52:09 2010: Loading cpufreq kernel modules...done (acpi-cpufreq).
Sat Apr 17 16:52:10 2010: Starting system log daemon....
Sat Apr 17 16:52:10 2010: Starting kernel log daemon....
Sat Apr 17 16:52:10 2010: Starting ACPI services....
Sat Apr 17 16:52:10 2010: Starting system message bus: dbus.
Sat Apr 17 16:52:11 2010: Starting OpenBSD Secure Shell server: sshd.
Sat Apr 17 16:52:11 2010: CPUFreq Utilities: Setting ondemand CPUFreq governor...CPU0...CPU1...done.
Sat Apr 17 16:52:11 2010: Starting HTTP server: boa.
Sat Apr 17 16:52:11 2010: Starting Common Unix Printing System: cupsd.
Sat Apr 17 16:52:13 2010: Starting DirMngr: dirmngr.
Sat Apr 17 16:52:13 2010: Starting MTA: exim4.
Sat Apr 17 16:52:14 2010: Starting LAN Information Server: lisa.
Sat Apr 17 16:52:14 2010: Setting up Machine Check Exceptions trigger... done.
Sat Apr 17 16:52:14 2010: Running Machine Check Exceptions decoder... done.
Sat Apr 17 16:52:14 2010: Starting NFS common utilities: statd idmapd.
Sat Apr 17 16:52:14 2010: Not starting internet superserver: no services enabled.
Sat Apr 17 16:52:14 2010: Setting sysfs variables....
Sat Apr 17 16:52:15 2010: Starting file alteration monitor: FAM.
Sat Apr 17 16:52:15 2010: Starting Hardware abstraction layer: hald.
Sat Apr 17 16:52:17 2010: Starting bluetooth: disabled. see /etc/default/bluetooth.
Sat Apr 17 16:52:17 2010: Starting /usr/sbin/chronyd...
Sat Apr 17 16:52:18 2010: chronyd is running and online.
Sat Apr 17 16:52:18 2010: Starting anac(h)ronistic cron: anacron.
Sat Apr 17 16:52:18 2010: Starting deferred execution scheduler: atd.
Sat Apr 17 16:52:19 2010: Starting periodic command scheduler: crond.
Sat Apr 17 16:52:19 2010: Starting K Display Manager: kdm.

The "Setting console screen modes and fonts" message comes from the init
script /etc/rcS.d/S48console-screen.sh. When that script is run the 2 tux
logos for my 2 CPU cores also disappear.

Cheers,
FJP


2010-04-18 21:13:48

by David Airlie

[permalink] [raw]
Subject: Re: [regression,bisected] Missing boot messages with VESAFB after VT initialization

On Sat, 2010-04-17 at 17:18 +0200, Frans Pop wrote:
> Initially all messages from init scripts are displayed correctly, but after
> the init script to set up the VT1-VT6 is run, messages from init scripts
> are no longer displayed. Instead the display is blank with only a cursor.
>
> However, if I switch back to VT1 from X.Org after the boot has completed,
> the missing messages are visible.
>
> System is x86_64 running Debian stable ("Lenny"). I'm using VESAFB (vga=791)
> and no KMS.
>
> I've bisected this to the following commit:
> commit 477346ff74f4c2aed50e8a0db96a61069f3e5b80
> Author: Dave Airlie <[email protected]>
> Date: Thu Jan 7 17:04:54 2010 +1000
> x86-64: Allow fbdev primary video code

Can you diff dmesg with/without this?

It shouldn't do anything unless you have multiple framebuffer drivers.

Dave.

>
> Kernel config is available in: http://lkml.org/lkml/2010/4/16/230
>
> Relevant part of the boot log (I boot with 'quiet'):
> [...]
> Sat Apr 17 16:52:07 2010: Starting portmap daemon...Already running..
> Sat Apr 17 16:52:07 2010: Starting NFS common utilities: statd idmapd.
> Sat Apr 17 16:52:08 2010: Setting sensors limits.
> Sat Apr 17 16:52:08 2010: Setting console screen modes and fonts.
> [Messages after this point are not displayed]
> Sat Apr 17 16:52:08 2010: Setting up ALSA...done.
> Sat Apr 17 16:52:09 2010: INIT: Entering runlevel: 2
> Sat Apr 17 16:52:09 2010: Loading cpufreq kernel modules...done (acpi-cpufreq).
> Sat Apr 17 16:52:10 2010: Starting system log daemon....
> Sat Apr 17 16:52:10 2010: Starting kernel log daemon....
> Sat Apr 17 16:52:10 2010: Starting ACPI services....
> Sat Apr 17 16:52:10 2010: Starting system message bus: dbus.
> Sat Apr 17 16:52:11 2010: Starting OpenBSD Secure Shell server: sshd.
> Sat Apr 17 16:52:11 2010: CPUFreq Utilities: Setting ondemand CPUFreq governor...CPU0...CPU1...done.
> Sat Apr 17 16:52:11 2010: Starting HTTP server: boa.
> Sat Apr 17 16:52:11 2010: Starting Common Unix Printing System: cupsd.
> Sat Apr 17 16:52:13 2010: Starting DirMngr: dirmngr.
> Sat Apr 17 16:52:13 2010: Starting MTA: exim4.
> Sat Apr 17 16:52:14 2010: Starting LAN Information Server: lisa.
> Sat Apr 17 16:52:14 2010: Setting up Machine Check Exceptions trigger... done.
> Sat Apr 17 16:52:14 2010: Running Machine Check Exceptions decoder... done.
> Sat Apr 17 16:52:14 2010: Starting NFS common utilities: statd idmapd.
> Sat Apr 17 16:52:14 2010: Not starting internet superserver: no services enabled.
> Sat Apr 17 16:52:14 2010: Setting sysfs variables....
> Sat Apr 17 16:52:15 2010: Starting file alteration monitor: FAM.
> Sat Apr 17 16:52:15 2010: Starting Hardware abstraction layer: hald.
> Sat Apr 17 16:52:17 2010: Starting bluetooth: disabled. see /etc/default/bluetooth.
> Sat Apr 17 16:52:17 2010: Starting /usr/sbin/chronyd...
> Sat Apr 17 16:52:18 2010: chronyd is running and online.
> Sat Apr 17 16:52:18 2010: Starting anac(h)ronistic cron: anacron.
> Sat Apr 17 16:52:18 2010: Starting deferred execution scheduler: atd.
> Sat Apr 17 16:52:19 2010: Starting periodic command scheduler: crond.
> Sat Apr 17 16:52:19 2010: Starting K Display Manager: kdm.
>
> The "Setting console screen modes and fonts" message comes from the init
> script /etc/rcS.d/S48console-screen.sh. When that script is run the 2 tux
> logos for my 2 CPU cores also disappear.
>
> Cheers,
> FJP

2010-04-19 12:03:16

by Frans Pop

[permalink] [raw]
Subject: Re: [regression,bisected] Missing boot messages with VESAFB after VT initialization

On Sunday 18 April 2010, you wrote:
> On Sat, 2010-04-17 at 17:18 +0200, Frans Pop wrote:
> > Initially all messages from init scripts are displayed correctly, but
> > after the init script to set up the VT1-VT6 is run, messages from init
> > scripts are no longer displayed. Instead the display is blank with
> > only a cursor.
> >
> > However, if I switch back to VT1 from X.Org after the boot has
> > completed, the missing messages are visible.
> >
> > System is x86_64 running Debian stable ("Lenny"). I'm using VESAFB
> > (vga=791) and no KMS.
> >
> > I've bisected this to the following commit:
> > commit 477346ff74f4c2aed50e8a0db96a61069f3e5b80
> > Author: Dave Airlie <[email protected]>
> > Date: Thu Jan 7 17:04:54 2010 +1000
> > x86-64: Allow fbdev primary video code
>
> Can you diff dmesg with/without this?

There is no relevant difference between the dmesg for 477346ff ("bisect-5":
bad) and its predecessor b0483e78 ("bisect-6": good). See attachment.

> It shouldn't do anything unless you have multiple framebuffer drivers.

Unfortunately "shouldn't" isn't always the same as "doesn't" :-)

$ cat /proc/fb
0 VESA VGA

00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile
GM965/GL960 Integrated Graphics Controller [8086:2a02] (rev 0c)
00:02.1 Display controller [0380]: Intel Corporation Mobile
GM965/GL960 Integrated Graphics Controller [8086:2a03] (rev 0c)

Cheers,
FJP


Attachments:
(No filename) (1.40 kB)
dmesg_2.6.34-bisect.diff (35.90 kB)
Download all attachments

2010-04-19 12:57:17

by Frans Pop

[permalink] [raw]
Subject: Re: [regression,bisected] Missing boot messages with VESAFB after VT initialization

On Monday 19 April 2010, Frans Pop wrote:
> On Sunday 18 April 2010, Dave Airlie wrote:
> > On Sat, 2010-04-17 at 17:18 +0200, Frans Pop wrote:
> > > I've bisected this to the following commit:
> > > commit 477346ff74f4c2aed50e8a0db96a61069f3e5b80
> > > Author: Dave Airlie <[email protected]>
> > > Date: Thu Jan 7 17:04:54 2010 +1000
> > > x86-64: Allow fbdev primary video code

Hmm. A straight revert of that commit on top of -rc4 does not fix the
problem. I'll investigate a bit more.

2010-04-30 18:45:37

by Frans Pop

[permalink] [raw]
Subject: Re: [regression,bisected] Missing boot messages with VESAFB after VT initialization

On Thursday 29 April 2010, Frans Pop wrote:
> * commit eec9fe7d1ab4a0dfac4cb43047a7657fffd0002f
> Author: Ari Entlich <[email protected]>
> tty: Add a new VT mode which is like VT_PROCESS but doesn't
> require a VT_RELDISP
>
> The last one is probably the most likely as the issue occurs after an
> init script loops over all VTs to run 'consolechars' and/or 'charset'.

I just see this patch has already been reverted, so that can't be it.
I'm still seeing the problem with v2.6.34-rc5-270-gbc113f1.

2010-04-30 18:46:05

by Frans Pop

[permalink] [raw]
Subject: Re: [regression,bisected] Missing boot messages with VESAFB after VT initialization

On Saturday 17 April 2010, Frans Pop wrote:
> Initially all messages from init scripts are displayed correctly, but
> after the init script to set up the VT1-VT6 is run, messages from init
> scripts are no longer displayed. Instead the display is blank with only
> a cursor.
>
> However, if I switch back to VT1 from X.Org after the boot has
> completed, the missing messages are visible.
>
> System is x86_64 running Debian stable ("Lenny"). I'm using VESAFB
> (vga=791) and no KMS.

I've done a new bisection for this issue (with cold boots instead of
reboots) and now end up in the following merge:
commit 94468080220162f74dc6ce5c3e95e5fec8022902
Merge: fb7b096 137ee2f
Author: Linus Torvalds <[email protected]>
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6

Unfortunately I cannot bisect into that merge as I get a NULL pointer bug
after typing the passphrase for my encrypted partition.

I suspect one of the following commits from that merge:
* commit 638b9648ab51c9c549ff5735d3de519ef6199df3
Author: Alan Cox <[email protected]>
tty: Fix the ldisc hangup race
* commit 4165fe4ef7305609a96c7f248cefb9c414d0ede5
Author: Alan Cox <[email protected]>
tty: Fix up char drivers request_room usage
* commit d9661adfb8e53a7647360140af3b92284cbe52d4
Author: Alan Cox <[email protected]>
tty: Keep the default buffering to sub-page units
* commit eec9fe7d1ab4a0dfac4cb43047a7657fffd0002f
Author: Ari Entlich <[email protected]>
tty: Add a new VT mode which is like VT_PROCESS but doesn't require a
VT_RELDISP

The last one is probably the most likely as the issue occurs after an init
script loops over all VTs to run 'consolechars' and/or 'charset'.

See http://lkml.org/lkml/2010/4/17/48 for my original mail with some
additional details.

Cheers,
FJP