Michael Richardson wrote:
> I don't know whether to blame a recent update to debian testing from stable
> --- likely it would be a glibc issue, but...
> I did run into the _syscall0() problem after that, and I found that I could
> get around it by appropriately #define
> _KERNEL prior to #include <linux/unistd.h>. What I don't get about the remark
> of Paolo is that _syscall0() is a userland
> thing, not a kernel thing.
>
> I.e. any user program should be able to use _syscall() to get an open coded
> call to the kernel.
>
> Anyway, my problem: 2.6.15, 2.6.17.13 (both patched as above), and 2.6.19-rc3
> all fail during ifup -a:
>
> + echo -n 'Configuring network interfaces: '
> Configuring network interfaces: + ifup -a
> BUG: soft lockup detected on CPU#0!
> 083bf9f0: [<080632a2>] dump_stack+0x22/0x30
> 083bfa08: [<080a25c4>] softlockup_tick+0x84/0xa0
> 083bfa20: [<0808ca32>] run_local_timers+0x12/0x20
> 083bfa28: [<0808c796>] update_process_times+0x36/0x90
> 083bfa48: [<080636fc>] timer_handler+0x3c/0x70
> 083bfa64: [<080798f9>] sig_handler_common_skas+0xa9/0x100
> 083bfa88: [<08075413>] real_alarm_handler+0x23/0x60
> 083bfaa0: [<080754a2>] alarm_handler+0x52/0x70
> 083bfabc: [<08077eda>] hard_handler+0x1a/0x20
> 083bfacc: [<ffffe420>] _etext+0xf7df5404/0x0
> 083bfe14: [<081a3431>] inet_ioctl+0x61/0xa0
> 083bfe2c: [<081525a4>] sock_ioctl+0x144/0x2b0
I've tracked this down to a number of places. It looks like the ifa->ifa_dev is
not
valid when the notification chain is called:
08707a08: [<08074329>] sig_handler_common_skas+0xa9/0x120
08707a30: [<0806ff25>] sig_handler+0x35/0x70
08707a4c: [<080728ea>] hard_handler+0x1a/0x20
08707a5c: [<ffffe420>] _etext+0xf7defac0/0x0
08707d64: [<0808bcdc>] notifier_call_chain+0x6c/0x90
08707d94: [<0808beb0>] blocking_notifier_call_chain+0x30/0x50
08707db0: [<081a2d14>] __inet_insert_ifa+0xd4/0x160
08707dd4: [<081a2dbd>] inet_insert_ifa+0x1d/0x20
The stack item <ffffe420>] _etext+0xf7defac0/0x0, seems to be bogus. I
instrumented
kernel/sys.c, to print the functions which notifier_call_chain was calling,
and learnt that it was crashing in arch/um/drivers/net_kern.c because of:
struct net_device *dev = ifa->ifa_dev->dev;
in uml_inetaddr_event.
sure enough, ifa->ifa_dev was NULL. Naturally, if I run things manually, or
under GDB, it fails.
Furthermore, this happens with 2.6.15 and 2.6.17.13 (patched to compile on
etch), and
with 2.6.19-rc3 (which I'm using as my debug base). I tried with gcc-3.3 and
with gcc-4.1.2.
So, whatever is going on is related somehow to the glibc, (my guess), but
represents some
real bug that has been hidden for awhile.
I patched around the problem in uml_inetaddr_event (return immediately if
ifa_dev==NULL), and found
the next instance of it net/ipv4/fib_frontend.c, in fib_netdev_event.
Clearly, either we aren't initializing something right, or it's getting blown
away at some point.
Perhaps a different malloc policy in this glibc?
I will spend the rest of today on this (I'm at IETF in San Diego), but
afterwards,
I'll begin to start reverting to sarge (if I can), so that I can continue
working on my real problem.
I should be on IRC and in jabber. ([EMAIL PROTECTED], [EMAIL PROTECTED]).
(Hmm. I'm trying Mozilla news for gmane.org reading. I don't like the composer
much, I have no
idea what column I'm on...)
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel