[Splashy-devel] My Tests.

Pat Suwalski pats at xandros.com
Sat Feb 17 07:27:03 CET 2007


Hello,

I never got around to doing the splashy tests at lunch a few days ago,
but I did take a few hours tonight.

What I have found is that there are many things that are suboptimal,
that I don't have easy solutions for. My technique was to use "sh -x"
extensively, combined with strace iteratively.

First, on a clean "unstable" install, the progress locks up on
rcS.d/S05keymap.sh, which calls start_unicode, which in turn calls
vt-is-UTF8. This attempts to open the console, write 3 bytes, and see
how many characters actually were printed (thus UTF-8 or not). The
problem is that splashy is holding the console, so it's not getting very
far.

In case people haven't noticed, you can just Escape splashy and go to
Alt-F2 console, see the junk that vt-is-UTF8 spit out, and hit Enter to
continue (so it reads its last byte). I believe it breaks because the
init script uses fgconsole, which doesn't actually work as expected due
to aforementioned resources being occupied by splashy. More on this later.

If we remove S05keymap, it still gets started later on in init, on my
clean install it happens right between sysklog and klog in rc2. Probably
something to do with the LSB dependency field in the init scripts.
Anyway, this results in a progress bar that advances very very slowly.

Now, I have commented before about how splashy seems to use tty0 and
tty2. The latter is used for apparently no reason. This has struck me as
odd before, about a year ago, iirc.

I have attached an lsof output from initramfs right before init
executes. You can see that splashy has many open files, but particularly
tty0, tty2, and vcs1. Also, unless I am mistaken, there are seven (7!)
splashy processes. I expected 2: one parent, one child. The child has
spawned 5 processes of its own; this is highly suspect.

Long story short, what I witnessed tonight is exactly what I witnessed a
year ago: resource contention. Splashy takes two ttys, stays on one of
them, init is forced to take another, things expect to be on the tty
that init is on, there is a lock.

Something I had meant to experiment with last year (never got the
chance), was to make splashy open a higher tty by default, say tty6 or
tty9. Perhaps if init is on tty0 it will be happier. Maybe there could
be some experimentation whether a tty even needs to be opened?

The line that opens the tty has a blatant error, btw:
"O_RDONLY|O_WRONLY" makes no sense whatsoever. It should be either-or,
or O_RDWR. This might be another source of problems if it does not run
as designed.

Sorry about the long eMail. Perhaps something useful will come of this.
I feel we will be a big step closer when we figure out why tty2 is used,
amongst other things.

It's all in the tty's, folks.
--Pat
-------------- next part --------------

COMMAND    PID USER   FD      TYPE     DEVICE    SIZE     NODE NAME
init         1 root  cwd       DIR        0,1       0        3 /
init         1 root  rtd       DIR        0,1       0        3 /
init         1 root  txt       REG        0,1  418112      354 /bin/sh
init         1 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
init         1 root  mem       REG        0,1               27 /lib/libc.so.6 (path dev=8,1, inode=591470)
init         1 root  mem       REG        0,1               12 /lib/libm.so.6 (path dev=8,1, inode=591474)
init         1 root  mem       REG        0,1               13 /lib/libcrypt.so.1 (path dev=8,1, inode=591472)
init         1 root  mem       REG        0,1              238 /lib/ld-linux.so.2 (path dev=8,1, inode=591466)
init         1 root    0u      CHR        5,1                6 /dev/console (deleted)
init         1 root    1w      REG        0,1       1     3459 /log
init         1 root    2u      CHR        5,1                6 /dev/console (deleted)
init         1 root   10r      REG        0,1    3349      246 /init
init         1 root   11u      CHR        5,1                6 /dev/console (deleted)
ksoftirqd    2 root  cwd       DIR        0,1       0        3 /
ksoftirqd    2 root  rtd       DIR        0,1       0        3 /
ksoftirqd    2 root  txt   unknown                             /proc/2/exe
events/0     3 root  cwd       DIR        0,1       0        3 /
events/0     3 root  rtd       DIR        0,1       0        3 /
events/0     3 root  txt   unknown                             /proc/3/exe
khelper      4 root  cwd       DIR        0,1       0        3 /
khelper      4 root  rtd       DIR        0,1       0        3 /
khelper      4 root  txt   unknown                             /proc/4/exe
kthread      5 root  cwd       DIR        0,1       0        3 /
kthread      5 root  rtd       DIR        0,1       0        3 /
kthread      5 root  txt   unknown                             /proc/5/exe
kblockd/0    8 root  cwd       DIR        0,1       0        3 /
kblockd/0    8 root  rtd       DIR        0,1       0        3 /
kblockd/0    8 root  txt   unknown                             /proc/8/exe
kacpid       9 root  cwd       DIR        0,1       0        3 /
kacpid       9 root  rtd       DIR        0,1       0        3 /
kacpid       9 root  txt   unknown                             /proc/9/exe
kseriod     95 root  cwd       DIR        0,1       0        3 /
kseriod     95 root  rtd       DIR        0,1       0        3 /
kseriod     95 root  txt   unknown                             /proc/95/exe
pdflush    137 root  cwd       DIR        0,1       0        3 /
pdflush    137 root  rtd       DIR        0,1       0        3 /
pdflush    137 root  txt   unknown                             /proc/137/exe
pdflush    138 root  cwd       DIR        0,1       0        3 /
pdflush    138 root  rtd       DIR        0,1       0        3 /
pdflush    138 root  txt   unknown                             /proc/138/exe
kswapd0    139 root  cwd       DIR        0,1       0        3 /
kswapd0    139 root  rtd       DIR        0,1       0        3 /
kswapd0    139 root  txt   unknown                             /proc/139/exe
aio/0      140 root  cwd       DIR        0,1       0        3 /
aio/0      140 root  rtd       DIR        0,1       0        3 /
aio/0      140 root  txt   unknown                             /proc/140/exe
splashy    389 root  cwd       DIR        0,1       0        3 /
splashy    389 root  rtd       DIR        0,1       0        3 /
splashy    389 root  txt       REG        0,1 1843384      310 /sbin/splashy
splashy    389 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
splashy    389 root  mem       CHR       29,0              931 /dev/fb0
splashy    389 root    0u      CHR       29,0              931 /dev/fb0
splashy    389 root    1r      CHR        4,0              937 /dev/tty0
splashy    389 root    2u      CHR        5,1                6 /dev/console (deleted)
splashy    389 root    3u      CHR        4,2              943 /dev/tty2
splashy    389 root    4r     FIFO        0,5             1604 pipe
splashy    389 root    5w     FIFO        0,5             1604 pipe
splashy    389 root    6u      CHR       29,0              931 /dev/fb0
splashy    389 root    7r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    389 root    8r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    389 root    9u     unix 0xdfb3fc80             1788 socket
splashy    389 root   10r      CHR        7,1             2088 /dev/vcs1
splashy    492 root  cwd       DIR        0,1       0        3 /
splashy    492 root  rtd       DIR        0,1       0        3 /
splashy    492 root  txt       REG        0,1 1843384      310 /sbin/splashy
splashy    492 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
splashy    492 root  mem       CHR       29,0              931 /dev/fb0
splashy    492 root    0u      CHR       29,0              931 /dev/fb0
splashy    492 root    1r      CHR        4,0              937 /dev/tty0
splashy    492 root    2u      CHR        5,1                6 /dev/console (deleted)
splashy    492 root    3u      CHR        4,2              943 /dev/tty2
splashy    492 root    4r     FIFO        0,5             1604 pipe
splashy    492 root    5w     FIFO        0,5             1604 pipe
splashy    492 root    6u      CHR       29,0              931 /dev/fb0
splashy    492 root    7r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    492 root    8r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    492 root    9u     unix 0xdfb3fc80             1788 socket
splashy    492 root   10r      CHR        7,1             2088 /dev/vcs1
splashy    493 root  cwd       DIR        0,1       0        3 /
splashy    493 root  rtd       DIR        0,1       0        3 /
splashy    493 root  txt       REG        0,1 1843384      310 /sbin/splashy
splashy    493 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
splashy    493 root  mem       CHR       29,0              931 /dev/fb0
splashy    493 root    0u      CHR       29,0              931 /dev/fb0
splashy    493 root    1r      CHR        4,0              937 /dev/tty0
splashy    493 root    2u      CHR        5,1                6 /dev/console (deleted)
splashy    493 root    3u      CHR        4,2              943 /dev/tty2
splashy    493 root    4r     FIFO        0,5             1604 pipe
splashy    493 root    5w     FIFO        0,5             1604 pipe
splashy    493 root    6u      CHR       29,0              931 /dev/fb0
splashy    493 root    7r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    493 root    8r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    493 root    9u     unix 0xdfb3fc80             1788 socket
splashy    493 root   10r      CHR        7,1             2088 /dev/vcs1
splashy    494 root  cwd       DIR        0,1       0        3 /
splashy    494 root  rtd       DIR        0,1       0        3 /
splashy    494 root  txt       REG        0,1 1843384      310 /sbin/splashy
splashy    494 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
splashy    494 root  mem       CHR       29,0              931 /dev/fb0
splashy    494 root    0u      CHR       29,0              931 /dev/fb0
splashy    494 root    1r      CHR        4,0              937 /dev/tty0
splashy    494 root    2u      CHR        5,1                6 /dev/console (deleted)
splashy    494 root    3u      CHR        4,2              943 /dev/tty2
splashy    494 root    4r     FIFO        0,5             1604 pipe
splashy    494 root    5w     FIFO        0,5             1604 pipe
splashy    494 root    6u      CHR       29,0              931 /dev/fb0
splashy    494 root    7r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    494 root    8r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    494 root    9u     unix 0xdfb3fc80             1788 socket
splashy    494 root   10r      CHR        7,1             2088 /dev/vcs1
splashy    545 root  cwd       DIR        0,1       0        3 /
splashy    545 root  rtd       DIR        0,1       0        3 /
splashy    545 root  txt       REG        0,1 1843384      310 /sbin/splashy
splashy    545 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
splashy    545 root  mem       CHR       29,0              931 /dev/fb0
splashy    545 root    0u      CHR       29,0              931 /dev/fb0
splashy    545 root    1r      CHR        4,0              937 /dev/tty0
splashy    545 root    2u      CHR        5,1                6 /dev/console (deleted)
splashy    545 root    3u      CHR        4,2              943 /dev/tty2
splashy    545 root    4r     FIFO        0,5             1604 pipe
splashy    545 root    5w     FIFO        0,5             1604 pipe
splashy    545 root    6u      CHR       29,0              931 /dev/fb0
splashy    545 root    7r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    545 root    8r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    545 root    9u     unix 0xdfb3fc80             1788 socket
splashy    545 root   10r      CHR        7,1             2088 /dev/vcs1
splashy    546 root  cwd       DIR        0,1       0        3 /
splashy    546 root  rtd       DIR        0,1       0        3 /
splashy    546 root  txt       REG        0,1 1843384      310 /sbin/splashy
splashy    546 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
splashy    546 root  mem       CHR       29,0              931 /dev/fb0
splashy    546 root    0u      CHR       29,0              931 /dev/fb0
splashy    546 root    1r      CHR        4,0              937 /dev/tty0
splashy    546 root    2u      CHR        5,1                6 /dev/console (deleted)
splashy    546 root    3u      CHR        4,2              943 /dev/tty2
splashy    546 root    4r     FIFO        0,5             1604 pipe
splashy    546 root    5w     FIFO        0,5             1604 pipe
splashy    546 root    6u      CHR       29,0              931 /dev/fb0
splashy    546 root    7r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    546 root    8r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    546 root    9u     unix 0xdfb3fc80             1788 socket
splashy    546 root   10r      CHR        7,1             2088 /dev/vcs1
splashy    547 root  cwd       DIR        0,1       0        3 /
splashy    547 root  rtd       DIR        0,1       0        3 /
splashy    547 root  txt       REG        0,1 1843384      310 /sbin/splashy
splashy    547 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
splashy    547 root  mem       CHR       29,0              931 /dev/fb0
splashy    547 root    0u      CHR       29,0              931 /dev/fb0
splashy    547 root    1r      CHR        4,0              937 /dev/tty0
splashy    547 root    2u      CHR        5,1                6 /dev/console (deleted)
splashy    547 root    3u      CHR        4,2              943 /dev/tty2
splashy    547 root    4r     FIFO        0,5             1604 pipe
splashy    547 root    5w     FIFO        0,5             1604 pipe
splashy    547 root    6u      CHR       29,0              931 /dev/fb0
splashy    547 root    7r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    547 root    8r      REG        0,1  324242      253 /etc/splashy/themes/default/background.png
splashy    547 root    9u     unix 0xdfb3fc80             1788 socket
splashy    547 root   10r      CHR        7,1             2088 /dev/vcs1
khpsbpkt   635 root  cwd       DIR        0,1       0        3 /
khpsbpkt   635 root  rtd       DIR        0,1       0        3 /
khpsbpkt   635 root  txt   unknown                             /proc/635/exe
knodemgrd  638 root  cwd       DIR        0,1       0        3 /
knodemgrd  638 root  rtd       DIR        0,1       0        3 /
knodemgrd  638 root  txt   unknown                             /proc/638/exe
khubd      654 root  cwd       DIR        0,1       0        3 /
khubd      654 root  rtd       DIR        0,1       0        3 /
khubd      654 root  txt   unknown                             /proc/654/exe
ata/0      665 root  cwd       DIR        0,1       0        3 /
ata/0      665 root  rtd       DIR        0,1       0        3 /
ata/0      665 root  txt   unknown                             /proc/665/exe
ata_aux    673 root  cwd       DIR        0,1       0        3 /
ata_aux    673 root  rtd       DIR        0,1       0        3 /
ata_aux    673 root  txt   unknown                             /proc/673/exe
scsi_eh_0  747 root  cwd       DIR        0,1       0        3 /
scsi_eh_0  747 root  rtd       DIR        0,1       0        3 /
scsi_eh_0  747 root  txt   unknown                             /proc/747/exe
scsi_eh_1  748 root  cwd       DIR        0,1       0        3 /
scsi_eh_1  748 root  rtd       DIR        0,1       0        3 /
scsi_eh_1  748 root  txt   unknown                             /proc/748/exe
kjournald 1029 root  cwd       DIR        0,1       0        3 /
kjournald 1029 root  rtd       DIR        0,1       0        3 /
kjournald 1029 root  txt   unknown                             /proc/1029/exe
lsof      1162 root  cwd       DIR        8,1    4096        2 /
lsof      1162 root  rtd       DIR        8,1    4096        2 /
lsof      1162 root  txt       REG        8,1  106324  5082930 /usr/bin/lsof
lsof      1162 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
lsof      1162 root  mem       REG        8,1 1241392   607135 /lib/tls/i686/cmov/libc-2.3.6.so
lsof      1162 root  mem       REG        8,1   88164   591466 /lib/ld-2.3.6.so
lsof      1162 root    0u      CHR        5,1                6 /dev/console (deleted)
lsof      1162 root    1w      REG        0,1       1     3459 /log
lsof      1162 root    2u      CHR        5,1                6 /dev/console (deleted)
lsof      1162 root    3r      DIR        0,3       0        1 /proc
lsof      1162 root    4r      DIR        0,3       0 76152841 /proc/1162/fd
lsof      1162 root    5w     FIFO        0,5             3464 pipe
lsof      1162 root    6r     FIFO        0,5             3465 pipe
lsof      1163 root  cwd       DIR        8,1    4096        2 /
lsof      1163 root  rtd       DIR        8,1    4096        2 /
lsof      1163 root  txt       REG        8,1  106324  5082930 /usr/bin/lsof
lsof      1163 root  mem       REG        0,0                0 [heap] (stat: No such file or directory)
lsof      1163 root  mem       REG        8,1 1241392   607135 /lib/tls/i686/cmov/libc-2.3.6.so
lsof      1163 root  mem       REG        8,1   88164   591466 /lib/ld-2.3.6.so
lsof      1163 root    4r     FIFO        0,5             3464 pipe
lsof      1163 root    7w     FIFO        0,5             3465 pipe


More information about the Splashy-devel mailing list