cgroup-bin should not move kthreadd into a default cgroup
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libcgroup (Ubuntu) |
Confirmed
|
High
|
Unassigned |
Bug Description
Steps to reproduce:
1. Install cgroup-bin from universe on a stock Lucid machine (I've only tested amd64, but I suspect it shouldn't matter)
2. Load an arbitrary module (e.g. modprobe rds)
3. Unload the module loaded in (2) (e.g. rmmod rds)
The 'rmmod' process will hang unkillably in the kernel.
Here's an example `dmesg` output from the hung-task watchdog for rmmod:
INFO: task rmmod:1608 blocked for more than 120 seconds.
"echo 0 > /proc/sys/
rmmod D 0000000000000000 0 1608 1440 0x00000000
ffff880014245c78 0000000000000082 0000000000015bc0 0000000000015bc0
ffff880014804890 ffff880014245fd8 0000000000015bc0 ffff8800148044d0
0000000000015bc0 ffff880014245fd8 0000000000015bc0 ffff880014804890
Call Trace:
[<ffffffff815
[<ffffffff812
[<ffffffff810
[<ffffffff815
[<ffffffff810
[<ffffffff815
[<ffffffff810
[<ffffffff810
[<ffffffff810
[<ffffffff810
[<ffffffff810
[<ffffffff810
[<ffffffff810
[<ffffffff810
[<ffffffff810
The process is waiting on kstop/0 to wake up and service the stop_cpu workqueue work item that it has queued. kstop/0 is marked as TASK_RUNNABLE, but doesn't appear to ever be getting scheduled:
$ ps -f 1609
UID PID PPID C STIME TTY STAT TIME CMD
root 1609 2 0 14:47 ? R 0:00 [kstop/0]
$ cat /proc/1609/stack
[<ffffffff8
[<ffffffff8
[<ffffffff8
[<fffffffff
I tracked this behavior down and reported it to the upstream kernel, but they say it's not a bug and that it's libcgroup's fault for moving kthreadd into a cgroup without RT privs: https:/
Changed in libcgroup (Ubuntu): | |
status: | New → Confirmed |
importance: | Undecided → High |
Changed in libcgroup (Ubuntu): | |
assignee: | Jon Bernard (jbernard) → nobody |
The bug is somehow related to how cgroup puts every process into a default cgroup. You can un-wedge the hung 'rmmod' via
pgrep kstop > /mnt/cgroup/ cpu/tasks