INFO: task snmpd:398 blocked for more than 120 seconds.

Joakim Tjernlund joakim.tjernlund at transmode.se
Tue Nov 9 05:22:23 EST 2010


>
> linuxppc-dev-bounces+joakim.tjernlund=transmode.se at lists.ozlabs.org wrote on 2010/11/08 16:05:30:
>
> > From: Joakim Tjernlund <joakim.tjernlund at transmode.se>
> > To: linuxppc-dev at ozlabs.org
> > Date: 2010/11/08 16:12
> > Subject: INFO: task snmpd:398 blocked for more than 120 seconds.
> > Sent by: linuxppc-dev-bounces+joakim.tjernlund=transmode.se at lists.ozlabs.org
> >
> >
> > I can't make out what is causing this hang every now an then:
> >
> > INFO: task snmpd:398 blocked for more than 120 seconds.
> > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> > snmpd         D 0fad1760     0   398      1 0x00000000
> > Call Trace:
> > [c7b5fc70] [c7a49a80] 0xc7a49a80 (unreliable)
> > [c7b5fd30] [c0008608] __switch_to+0x4c/0x6c
> > [c7b5fd40] [c028fed4] schedule+0x184/0x310
> > [c7b5fd70] [c0290e5c] __mutex_lock_slowpath+0xa4/0x150
> > [c7b5fdb0] [c0290c50] mutex_lock+0x44/0x48
> > [c7b5fdc0] [c01eb5b0] rtnl_lock+0x18/0x28
> > [c7b5fdd0] [c01df6c4] dev_ioctl+0x2b4/0x764
> > [c7b5fe60] [c01cafc8] sock_ioctl+0x18c/0x2a0
> > [c7b5fe80] [c009a16c] vfs_ioctl+0xcc/0xe0
> > [c7b5fea0] [c009a998] do_vfs_ioctl+0xc4/0x79c
> > [c7b5ff10] [c009b0b0] sys_ioctl+0x40/0x74
> > [c7b5ff40] [c00117c4] ret_from_syscall+0x0/0x38
> >
> > The dev_ioctl is in SIOCGIFCONF:
> > int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg)
> > {
> >    struct ifreq ifr;
> >    int ret;
> >    char *colon;
> >
> >    /* One special case: SIOCGIFCONF takes ifconf argument
> >       and requires shared lock, because it sleeps writing
> >       to user space.
> >     */
> >
> >    if (cmd == SIOCGIFCONF) {
> >       rtnl_lock();
> >       ret = dev_ifconf(net, (char __user *) arg);
> >       rtnl_unlock();
> >       return ret;
> >    }
> >
> > Any ideas? Kernel is 2.6.35
>
> I tried PROVE_LOCKING but now my kernel doesn't boot at all :)
>
> Something goes very wrong in arch/powerpc/kernel/prom.c:694
> 694      memblock_reserve(PHYSICAL_START, __pa(klimit) - PHYSICAL_START);
>
> (gdb) print klimit
> $8 = 0xc08c9000
>
> What is klimit and can I do something about it?
>
> kernel 2.6.35 on a mpc8321

That was not quite right, turns out that early_init_devtree(*params)
points to a memory that has been zeroed:
print initial_boot_params
$3 = (struct boot_param_header *) 0xc07fa000

Above matches what u-boot writes:
Booting kernel from Legacy Image at 00200000 ...
   Image Name:   oskernel02a:p1a:99
   Created:      2010-11-08  18:09:28 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    1898430 Bytes =  1.8 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 07fdebb0
   Booting using the fdt blob at 0x7fdebb0
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 007fa000, end 007ff327 ... OK

(gdb) print *initial_boot_params
$4 = {magic = 0x0, totalsize = 0x0, off_dt_struct = 0x0, off_dt_strings = 0x0,
  off_mem_rsvmap = 0x0, version = 0x0, last_comp_version = 0x0,
  boot_cpuid_phys = 0x0, dt_strings_size = 0x0, dt_struct_size = 0x0}

 Jocke





More information about the Linuxppc-dev mailing list