Oleg Nesterov wrote:Sorry for late reply and thank you for your comment. I understood the mechanism that kill(-1, SIGKILL) can miss the tasks forked by init (and the thread group of the current process, because we don't also send the signal to them). If kill(-1, SIGKILL) finish before the forking init process does list_add_tail_rcu(p->tasks) in copy_process(), the process forked by init appears on the ->tasks list after that. Is that right? If so, I think this problem can happen without my patch. Because even if kill(-1, SIGKILL) take read_lock(&tasklist_lock) in kill_something_info(), it can finish before init process take write_lock(&tasklist_lock) in copy_process(). So the forked process appears after that, too. Now, I noticed the important problem. I found the tasklist lock in kill_something_info() can cause stall when some processes execute kill(-1,SIGCONT) concurrently. It can happen even if a system has only 4 CPUs (and even if a user is not privileged (not root)). This is because the writer cannot take the tasklist lock when a lot of readers exist and keep holding it. This allows a local DoS. So we have to avoid that stall. The conversion from the tasklist lock to rcu_read_lock() can solve this problem. I think my patch doesn't make the new problem because the problem that kill can miss the tasks have originally occurred without my one. If there is no problem, could you ack it? Thanks, -Atsushi Tsuji --
| Linus Torvalds | Linux 2.6.27 |
| Alan Cox | [PATCH 00/76] Queued TTY Patches |
| Greg KH | [patch 10/73] VLAN: Lost rtnl_unlock() in vlan_ioctl() |
| Rusty Russell | Re: [Bug #11342] Linux 2.6.27-rc3: kernel BUG at mm/vmalloc.c - bisected |
git: | |
| Jakub Narebski | Re: [PATCH] RFC: git lazy clone proof-of-concept |
| Johannes Schindelin | cogito and remote#branch, was Re: [PATCH] Git homepage: remove all the references ... |
| Junio C Hamano | Re: Comments on recursive merge.. |
| Scott Chacon | [PATCH] add a 'pre-push' hook |
| Marcos Laufer | dmesg IBM x3650 OpenBSD 4.3 |
| L. V. Lammert | Re: OBSD's perspective on SELinux |
| Richard Stallman | Real men don't attack straw men |
| Juan Miscaro | When will OpenBSD support UTF8? |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Alan Cox | Re: [PATCH] alternative to sys_indirect, part 1 |
| Jarek Poplawski | Re: panic 2.6.27-rc3-git2, qdisc_dequeue_head |
| Patrick McHardy | Re: [PATCH 3/3] netdevice: order of synchronization of IFF_PROMISC and IFF_ALLMULTI |
