Hi. I have a configuration for simulating a network which seems to be 
triggering a bug somewhere.

The UML is configured with three adapters, which are connected to three 
separate uml_switch daemons. One is for a management interface (eth0). 
The other two (eth1, eth2) are configured in a bridge. Like this

(within UML)

(none):~# brctl addbr br0
(none):~# brctl addif br0 eth1
device eth1 entered promiscuous mode
(none):~# brctl addif br0 eth2
device eth2 entered promiscuous mode
(none):~# brctl setfd br0 1
(none):~# brctl sethello br0 1
(none):~# brctl stp br0 off
(none):~# ifconfig -a
br0       Link encap:Ethernet  HWaddr FE:FD:00:00:00:02
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

eth0      Link encap:Ethernet  HWaddr FE:FD:00:00:00:06
          inet addr:192.168.100.3  Bcast:192.168.100.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:5

eth1      Link encap:Ethernet  HWaddr FE:FD:00:00:00:04
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:5

eth2      Link encap:Ethernet  HWaddr FE:FD:00:00:00:02
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:5

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

(none):~# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.fefd00000002       no              eth1
                                                        eth2
(none):~# ifconfig br0 up
(none):~# ifconfig eth1 up
br0: port 1(eth1) entering learning state
(none):~# ifconfig eth2 up
br0: port 2(eth2) entering learning state

Shortly after this, we get

br0: topology change detected, propagating
br0: port 1(eth1) entering forwarding state
BUG: soft lockup detected on CPU#0!
081b7c34:  [<08074658>] update_process_times+0x3a/0x60
081b7c44:  [<08056f3b>] timer_handler+0x1d/0x46
081b7c54:  [<080660b5>] sig_handler_common_skas+0xc1/0xd9
081b7c78:  [<080638d4>] unblock_signals+0x6b/0x71
081b7c88:  [<080638fd>] set_signals+0x1d/0x34
081b7c90:  [<08064e61>] hard_handler+0x11/0x14
081b7df4:  [<08052db5>] _einittext+0x1138/0x1b53
081b7e14:  [<08053236>] _einittext+0x15b9/0x1b53
081b7e20:  [<0805259c>] _einittext+0x91f/0x1b53
081b7e28:  [<08052f5b>] _einittext+0x12de/0x1b53
081b7eb4:  [<08052f5b>] _einittext+0x12de/0x1b53
081b7ecc:  [<08064021>] switch_timers+0x93/0xb5
081b7f20:  [<0805809c>] switch_to_skas+0x68/0x6c
081b7f30:  [<08055a23>] _switch_to+0x39/0x72
081b7f4c:  [<08167821>] schedule+0x3ff/0x452
081b7f78:  [<08064090>] idle_sleep+0x1e/0x22
081b7f8c:  [<08055bc9>] default_idle+0x20/0x23
081b7f98:  [<080582a0>] init_idle_skas+0x22/0x25
081b7fa4:  [<08049586>] start_kernel+0x194/0x198
081b7fb4:  [<080582cb>] start_kernel_proc+0x28/0x2c
081b7fbc:  [<08062f7a>] run_kernel_thread+0x38/0x42
081b7fd8:  [<08062f5d>] run_kernel_thread+0x1b/0x42
081b7fe4:  [<080580f3>] new_thread_handler+0x53/0x79
081b7fe8:  [<080582a3>] start_kernel_proc+0x0/0x2c

and the UML node stops responding to network traffic or anything on the 
console.

Attaching gdb to the main kernel thread (if I am understanding which one 
that is correctly) suggests that the hung thread is sitting in 
write_sigio_thread().

The kernel version is 2.6.21.5 but I can reproduce the same lockup with 
2.6.18.8 and 2.6.19.2. The host kernel is 2.6.18.

Is this a known bug? I am happy to do any further investigation as 
necessary.

cheers

Nick

Kernel output follows

Checking that ptrace can change system call numbers...OK
Checking syscall emulation patch for ptrace...OK
Checking advanced syscall emulation patch for ptrace...OK
Checking for tmpfs mount on /dev/shm...OK
Checking PROT_EXEC mmap in /dev/shm/...OK
Checking for the skas3 patch in the host:
  - /proc/mm...not found: No such file or directory
  - PTRACE_FAULTINFO...not found
  - PTRACE_LDT...not found
UML running in SKAS0 mode
Checking that ptrace can change system call numbers...OK
Checking syscall emulation patch for ptrace...OK
Checking advanced syscall emulation patch for ptrace...OK
Linux version 2.6.21.5 ([EMAIL PROTECTED]) (gcc version 4.1.2 20061115 
(prerelease) (Debian 4.1.1-21)) #4 Tue Jun 26 16:01:47 BST 2007
Built 1 zonelists.  Total pages: 8128
Kernel command line: eth2=daemon,fe:fd:00:00:00:02,unix,/tmp/.outside.sock 
ubd0=/tmp/cow_node,/tmp/root_fs 
eth1=daemon,fe:fd:00:00:00:04,unix,/tmp/.inside.sock 
eth0=daemon,fe:fd:00:00:00:06,unix,/tmp/.manage.sock root=98:0
PID hash table entries: 128 (order: 7, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 30460k available
Mount-cache hash table entries: 512
Checking for host processor cmov support...Yes
Checking for host processor xmm support...No
Checking that host ptys support output SIGIO...Yes
Checking that host ptys support SIGIO on close...No, enabling workaround
Using 2.6 host AIO
NET: Registered protocol family 16
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
Checking host MADV_REMOVE support...OK
mconsole (version 2) initialized on /home/nd/.uml/node/mconsole
Host TLS support detected
Detected host type: i386
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
loop: loaded (max 8 devices)
nbd: registered device at major 43
Netfilter messages via NETLINK v0.30.
ip_tables: (C) 2000-2006 Netfilter Core Team
arp_tables: (C) 2002 David S. Miller
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Bridge firewalling registered
Initialized stdio console driver
Console initialized on /dev/tty0
Initializing software serial port version 1
Netdevice 2 (fe:fd:00:00:00:02) : daemon backend (uml_switch version 3) - 
unix:/tmp/.outside.sock
Netdevice 1 (fe:fd:00:00:00:04) : daemon backend (uml_switch version 3) - 
unix:/tmp/.inside.sock
Netdevice 0 (fe:fd:00:00:00:06) : daemon backend (uml_switch version 3) - 
unix:/tmp/.manage.sock
Creating "/tmp/cow_node" as COW file for "/tmp/root_fs"
 ubda: unknown partition table
kjournald starting.  Commit interval 5 second
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
line_ioctl: tty0: ioctl KDSIGACCEPT called
INIT: version 2.86 booting
hostname: the specified hostname is invalid
Activating swap...done.
Checking root file system...fsck 1.40-WIP (14-Nov-2006)
/lib/init/rw/rootdev: clean, 15838/131072 files, 79141/262144 blocks
done.
EXT3 FS on ubda, internal journal
Setting the system clock..
hwclock is unable to get I/O port access:  the iopl(3) call failed.
Cleaning up ifupdown....
Loading device-mapper support.
Checking file systems...fsck 1.40-WIP (14-Nov-2006)
done.
Setting kernel variables...done.
Mounting local filesystems...^[[31mfailed.^[[39;49m
Activating swapfile swap...done.
Setting up networking....
Configuring network interfaces...done.
INIT: Entering runlevel: 2
Starting system log daemon: syslogd.
Starting kernel log daemon: klogd.
Not starting internet superserver: no services enabled.
Starting OpenBSD Secure Shell server: sshd.
Starting periodic command scheduler: crond.

(login prompt)

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
User-mode-linux-user mailing list
User-mode-linux-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user

Reply via email to