[PATCH 1/3] [PATCH i386] during VM oom condition, kill all threads in process group
Will Schmidt
will_schmidt at vnet.ibm.com
Sat Jun 9 05:19:18 EST 2007
On Thu, 2007-06-07 at 17:10 -0700, Andrew Morton wrote:
> On Thu, 7 Jun 2007 18:16:21 -0500
> Anton Blanchard <anton at samba.org> wrote:
>
> >
> > Hi,
> >
> > > zap_other_threads() requires tasklist_lock.
Yup, I missed that. Thanks for pointing it out.
> > >
> > > If we're going to do this then we should probably create some new function
> > > (with a better name) which takes tasklsit_lock and then calls
> > > zap_other_threads().
I expect this will be a write_lock_irq() since zap_other_threads will be
doing a bit more than just reading the task info.
This will be down in a do-page-fault failure path (see
arch/*/mm/fault.c). I wonder if calling write_lock is going to be safe,
or if its possible to get into a deadlock? i.e. should I branch back up
to the survive: label if I can't take the lock? Would that even be
sufficient? or is it not an issue here?
> > >
> > > Does this patch fix any observed-in-the-real-world problem? If so, please
> > > describe it.
> >
> > Yeah we have had complaints where threaded apps have only one thread
> > shot down instead of the entire process. This leaves the application in
> > a bad state, whereas if it had been killed cleanly the application could
> > have restarted.
> >
> > My understanding is that fatal signals should kill all threads in the
> > group.
> >
>
> OK, well could we please get all that info appropriatelt captured in #2's
> changelog?
Yup, next spin I'll add more to the changelog.
>
> Other architectures will probably need to implement this.
-Will
More information about the Linuxppc-dev
mailing list