From: Jan H. <bu...@uc...> - 2002-10-05 11:38:01
|
Hello, I unpacked a clean linux archive and applied uml-patch-2.4.19-8 and compiled _without_ CONFIG_SMP. It failed still the same way. From the point init is launched, lots of errors like: Failed to forward 0 to pid 27059, errno = 9 forward_ipi: F_SETOWN failed, fd = 0, me = 27078, target = 27059, errno = 9 First three made it to the terminal just before INIT: did. The funny thing about it is, that fcntl(F_SETOWN) can return 9 (EBADF) only if fget fails on the descriptor, which means stdin is not open at that point. When I checked later with lsof, all the threads shared a single unix socket open on stdin. I checked in the point xterms were up (they did not respond to anything however) and the errors stopped. So to me it seems, that the fcntl is called before stdin is set up. What kind of thing should I look for that could be useful to resolve this bug? ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bu...@uc...> |
From: Jeff D. <jd...@ka...> - 2002-10-05 14:03:17
|
bu...@uc... said: > What kind of thing should I look for that could be useful to resolve > this bug? Don't bother. Just get -9, which has this fixed. Jeff |
From: Jan H. <bu...@uc...> - 2002-10-05 15:04:26
|
On Sat, Oct 05, 2002 at 10:07:08AM -0500, Jeff Dike wrote: > bu...@uc... said: > > What kind of thing should I look for that could be useful to resolve > > this bug? > > Don't bother. Just get -9, which has this fixed. > > Jeff > Well, does not work:-(. Only half of the bug went away. It still spits a lot of those: Failed to forward 0 to pid 13725, errno = 9 The ordering with INIT: is arbitrary. Now I ran it with debuger. It's failing from _switch_to from schedule after init is started. I put a breakpoint at where the message is printed. None of the linux threads seem to have stdin set up. Once consoles are started, all threads have it set up. The errors seem to appear everytime init is doing something. Several of them come up around `INIT: version 2.84 booting' and some more come up around `INIT: entering runlevel 2'. There are none between messages from system rc script. When the consoles come up, they don't respond to any input, but they print `/#' prompt.. ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bu...@uc...> |
From: Jeff D. <jd...@ka...> - 2002-10-05 16:07:25
|
bu...@uc... said: > None of the linux threads seem to have stdin set up. Once consoles are > started, all threads have it set up. What's the UML command line? Jeff |
From: Jan H. <bu...@uc...> - 2002-10-05 16:10:23
|
On Sat, Oct 05, 2002 at 12:11:12PM -0500, Jeff Dike wrote: > bu...@uc... said: > > None of the linux threads seem to have stdin set up. Once consoles are > > started, all threads have it set up. > > What's the UML command line? > > Jeff > Still the same: eth0=tuntap,,fe:fd:0:0:0:1,192.168.1.254 umid=schizofrenia ubd1=./swap_dev mem=32M root=/dev/ubd0 (this is what umlinux itself prints when it starts) ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bu...@uc...> |
From: Jeff D. <jd...@ka...> - 2002-10-05 18:06:14
|
bu...@uc... said: > eth0=tuntap,,fe:fd:0:0:0:1,192.168.1.254 umid=schizofrenia ubd1=./ > swap_dev mem=32M root=/dev/ubd0 How about the whole thing, including any redirection? Jeff |
From: Jan H. <bu...@uc...> - 2002-10-05 18:20:36
|
On Sat, Oct 05, 2002 at 02:09:58PM -0500, Jeff Dike wrote: > bu...@uc... said: > > eth0=tuntap,,fe:fd:0:0:0:1,192.168.1.254 umid=schizofrenia ubd1=./ > > swap_dev mem=32M root=/dev/ubd0 > > How about the whole thing, including any redirection? > > Jeff > No redirections. Nothing but the command and arguments. From an xterm (aterm actually) and with a simple shell script. The actual command that starts umlinux is: ../umlinux/linux eth0=tuntap,,fe:fd:0:0:0:1,192.168.1.254 umid=schizofrenia ubd1=$DIR/swap_dev mem=32M But the console logging is on if that can be considered a redirect. The script in full is: R=`dirname $0` echo $$ >$DIR/linux.pid /sbin/fsck.ext2 -a $DIR/root_fs stty -g >$DIR/termsetting unset $gdb if [ -e $DIR/gdb.pid ]; then gdb="debug gdb-pid=`cat $DIR/gdb.pid`" rm $DIR/gdb.pid fi $DIR/../umlinux/linux eth0=tuntap,,fe:fd:0:0:0:1,192.168.1.254 umid=schizofrenia ubd1=$DIR/swap_dev mem=32M $gdb "$@" killall xterm killall port-helper rm $DIR/linux.pid stty `cat $DIR/termsetting` echo And it's run simply by it's name: ./runlinux ------------------------------------------------------------------------------- Jan 'Bulb' Hudec <bu...@uc...> |