While booting UML in skas mode, I've noticed occasional glitches in the console output during the boot process. At first I thought this was related to bug #260111, but now that Allen Chan has found the cause, I'm still having this problem after using the move_console_write patch. Sometimes the console output shows up like this: NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes I've tracked this back to calls to tcsetattr failing in generic_console_write. It returns -1, and sets errno to 4 (EINTR). I don't know if failed calls should be restarted or not, but I'm pretty sure ignoring the errors isn't a good idea. Since the problem is intermittent, I created a GDB command file to automate my testing. I've attached the command file, should you want to try this yourself. Here's output from one of my sessions (yes, running it without a root image is the intent, the problem is visible before you get that far): GNU gdb 6.1.1 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i486-slackware-linux"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) source watch-tcsetattr.txt 0xa01130f0 : 0x83e58955 Breakpoint 1 at 0xa0113134: file string.h, line 486. Breakpoint 2 at 0xa000b707: file panic.c, line 60. Checking for the skas3 patch in the host...found Checking for /proc/mm...found Checking for /dev/anon on the host...Not available (open failed with errno 2) Linux version 2.4.26-2um (matt@aida) (gcc version 3.3.4) #8 Wed Aug 4 00:09:08 PDT 2004 On node 0 totalpages: 8192 zone(0): 8192 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: con=xterm root=/dev/ubd0 Calibrating delay loop... 3322.67 BogoMIPS Memory: 30152k available Dentry cache hash table entries: 4096 (order: 3, 32768 bytes) Inode cache hash table entries: 2048 (order: 2, 16384 bytes) Mount cache hash table entries: 512 (order: 0, 4096 bytes) Buffer cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 8192 (order: 3, 32768 bytes) Checking for host processor cmov support...Yes Checking for host processor xmm support...No Checking that ptrace can change system call numbers...OK Checking that host ptys support output SIGIO...Yes Checking that host ptys support SIGIO on close...No, enabling workaround POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd pty: 256 Unix98 ptys configured SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256). loop: loaded (max 8 devices) PPP generic driver version 2.4.2 Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky Initializing software serial port version 1 mconsole (version 2) initialized on /home/matt/.uml/kdiP2e/mconsole unable to open root_fs for validation ubd : Synchronous mode Initializing stdio console driver *** tcsetattr failed, returned = -1, errno = 4 *** *** tcsetattr failed, returned = -1, errno = 4 *** *** tcsetattr failed, returned = -1, errno = 4 *** *** tcsetattr failed, returned = -1, errno = 4 *** *** tcsetattr failed, returned = -1, errno = 4 *** *** tcsetattr failed, returned = -1, errno = 4 *** *** tcsetattr failed, returned = -1, errno = 4 *** Breakpoint 2, panic (fmt=0xa0162440 "VFS: Unable to mount root fs on %s") at panic.c:60 60 bust_spinlocks(1); (gdb) c Continuing. *** tcsetattr failed, returned = -1, errno = 4 *** *** tcsetattr failed, returned = -1, errno = 4 *** Breakpoint 2, panic (fmt=0xa015e8ea "Segfault with no mm") at panic.c:60 60 bust_spinlocks(1); (gdb) c Continuing. Program exited with code 01. (gdb) q