lkml.org 
[lkml]   [2006]   [Jan]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [ 06/23] [Suspend2] Disable usermode helper invocations when the freezer is on.
Date
Hi,

On Tuesday 31 January 2006 04:24, Nigel Cunningham wrote:
> On Tuesday 31 January 2006 08:05, Rafael J. Wysocki wrote:
> > On Thursday 26 January 2006 04:45, Nigel Cunningham wrote:
> > > Disable usermode helper invocations when the freezer is on. This avoids
> > > deadlocks due to hotplug events occuring while processes are frozen.
> > >
> > > Signed-off-by: Nigel Cunningham <nigel@suspend2.net>
> > >
> > > kernel/kmod.c | 4 ++++
> > > 1 files changed, 4 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/kernel/kmod.c b/kernel/kmod.c
> > > index 51a8920..12afa2c 100644
> > > --- a/kernel/kmod.c
> > > +++ b/kernel/kmod.c
> > > @@ -36,6 +36,7 @@
> > > #include <linux/mount.h>
> > > #include <linux/kernel.h>
> > > #include <linux/init.h>
> > > +#include <linux/freezer.h>
> > > #include <asm/uaccess.h>
> > >
> > > extern int max_threads;
> > > @@ -249,6 +250,9 @@ int call_usermodehelper_keys(char *path,
> > > if (!khelper_wq)
> > > return -EBUSY;
> > >
> > > + if (freezer_is_on())
> > > + return 0;
> > > +
> > > if (path[0] == '\0')
> > > return 0;
> >
> > Disabling the usermode helper while freeze_processes() is executed seems to
> > be a good idea to me, but I think it should be done with a mutex or
> > something like that.
>
> With the refrigerator code you guys are using at the moment, ouldn't that
> result in deadlocks when we later try to freeze the process in preparation
> for the atomic restore? (Or perhaps you don't freeze processes at that
> point?)

I'm not sure what you mean. I said "mutex" because you seem to have a race
here (the freezer may be started right after the freezer_is_on() check). IMO
the freezer should disable the invocations of new usermode helpers and
wait util all of the already running helpers are finished. For this purpose
two variables would be needed and a lock.

Greetings,
Rafael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-01-31 12:00    [W:0.068 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site