netdev_run_todo deadlock causes "unregister_netdevice: waiting for XXX to become free. Usage count =X"

Solution Unverified - Updated -

Environment

  • Red Hat Enterprise Linux 5

Issue

  • netdev_run_todo deadlock causes "unregister_netdevice: waiting for XXX to become free. Usage count =X"

Sample dmesg:

 INFO: task dsp.fwdpi.servi:13340 blocked for more than 120 seconds.
 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
 dsp.fwdpi.ser D ffff810009004420     0 13340  12891         13342 13338 (NOTLB)
  ffff81011aecbd48 0000000000000086 ffff81011af77c00 ffff81011af77c00
  0000000000000000 0000000000000009 ffff81011d6600c0 ffffffff80310b60
  002f0a9b603b0d23 0000000000000edc ffff81011d6602a8 0000000000000009
 Call Trace
  [<ffffffff80063c4f>] __mutex_lock_slowpath+0x60/0x9b
  [<ffffffff80063c99>] .text.lock.mutex+0xf/0x14
  [<ffffffff80234c7f>] netdev_run_todo+0x14/0x222
  [<ffffffff802347ac>] dev_ioctl+0x38d/0x465
  [<ffffffff80047656>] sprintf+0x51/0x59
  [<ffffffff8022a58c>] sock_ioctl+0x1d4/0x1e5
  [<ffffffff8004226a>] do_ioctl+0x21/0x6b
  [<ffffffff8003026e>] vfs_ioctl+0x457/0x4b9
  [<ffffffff800b9609>] audit_syscall_entry+0x1a4/0x1cf
  [<ffffffff8004c73b>] sys_ioctl+0x59/0x78
  [<ffffffff8005d28d>] tracesys+0xd5/0xe0

Resolution

  • Update kernel to kernel-2.6.18-274.el5(RHEL5.7) or later.

Root Cause

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments