From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Pavel Machek <pavel@ucw.cz>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
pm list <linux-pm@lists.linux-foundation.org>,
Oleg Nesterov <oleg@tv-sign.ru>,
Miklos Szeredi <miklos@szeredi.hu>
Subject: Re: [RFC][PATCH -mm 4/7] Freezer: Introduce freezer-firendly waiting macros
Date: Thu, 12 Jul 2007 12:33:14 +0200 [thread overview]
Message-ID: <200707121233.15239.rjw@sisk.pl> (raw)
In-Reply-To: <20070711225636.GC11127@elf.ucw.cz>
On Thursday, 12 July 2007 00:56, Pavel Machek wrote:
> Hi!
>
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > Introduce freezer-friendly wrappers around wait_event_interruptible() and
> > wait_event_interruptible_timeout(), originally defined in <linux/wait.h>, to
> > be used in freezable kernel threads. Make some of the freezable kernel threads
> > use them.
> >
> > This is necessary for the freezer to stop sending signals to kernel threads,
> > which is implemented in the next patch.
> >
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
>
> ACK, but...
>
> > +/*
> > + * Freezer-friendly wrappers around wait_event_interruptible() and
> > + * wait_event_interruptible_timeout(), originally defined in <linux/wait.h>
> > + */
> > +
> > +#define wait_event_freezable(wq, condition) \
> > +({ \
> > + int __ret; \
> > + do { \
> > + __ret = wait_event_interruptible(wq, \
> > + (condition) || freezing(current)); \
> > + try_to_freeze(); \
> > + } while (!(condition)); \
> > + __ret; \
> > +})
>
> ...
>
> > Index: linux-2.6.22-rc6-mm1/drivers/media/dvb/dvb-core/dvb_frontend.c
> > ===================================================================
> > --- linux-2.6.22-rc6-mm1.orig/drivers/media/dvb/dvb-core/dvb_frontend.c 2007-07-11 20:48:04.000000000 +0200
> > +++ linux-2.6.22-rc6-mm1/drivers/media/dvb/dvb-core/dvb_frontend.c 2007-07-11 20:51:14.000000000 +0200
> > @@ -528,7 +528,8 @@ static int dvb_frontend_thread(void *dat
> > up(&fepriv->sem); /* is locked when we enter the thread... */
> > restart:
> > timeout = wait_event_interruptible_timeout(fepriv->wait_queue,
> > - dvb_frontend_should_wakeup(fe) || kthread_should_stop(),
> > + dvb_frontend_should_wakeup(fe) || kthread_should_stop()
> > + || freezing(current),
> > fepriv->delay);
>
> Should this use the new helper? This change does not seem to match the rest.
Yes, because it uses something like the new helper already, but with some code
in between., so I decided to add the freezing(current) only to it.
BTW, please see the updated patch in the reply to Oleg (the macros have been
fixed).
Greetings,
Rafael
--
"Premature optimization is the root of all evil." - Donald Knuth
next prev parent reply other threads:[~2007-07-12 10:33 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-11 22:06 [RFC][PATCH -mm 0/7] Freezer update (updated) Rafael J. Wysocki
2007-07-11 22:08 ` [RFC][PATCH -mm 1/7] Freezer: Document relationship with memory shrinking Rafael J. Wysocki
2007-07-11 22:10 ` [RFC][PATCH -mm 2/7] Freezer: Do not sync filesystems from freeze_processes Rafael J. Wysocki
2007-07-11 22:42 ` Pavel Machek
2007-07-11 22:12 ` [RFC][PATCH -mm 3/7] Freezer: Prevent new tasks from inheriting TIF_FREEZE set Rafael J. Wysocki
2007-07-11 22:25 ` Nigel Cunningham
2007-07-11 22:13 ` [RFC][PATCH -mm 4/7] Freezer: Introduce freezer-firendly waiting macros Rafael J. Wysocki
2007-07-11 22:56 ` Pavel Machek
2007-07-12 10:33 ` Rafael J. Wysocki [this message]
2007-07-11 23:02 ` Oleg Nesterov
2007-07-12 10:30 ` [RFC][PATCH -mm 4/7] Freezer: Introduce freezer-firendly waiting macros (updated) Rafael J. Wysocki
2007-07-12 12:23 ` [RFC][PATCH -mm 4/7] Freezer: Introduce freezer-firendly waiting macros (updated 2x) Rafael J. Wysocki
2007-07-11 22:14 ` [RFC][PATCH -mm 5/7] Freezer: Do not send signals to kernel threads (updated) Rafael J. Wysocki
2007-07-11 22:16 ` [RFC][PATCH -mm 6/7] Freezer: Be more verbose Rafael J. Wysocki
2007-07-11 22:58 ` Pavel Machek
2007-07-12 10:39 ` [RFC][PATCH -mm 6/7] Freezer: Be more verbose (updated) Rafael J. Wysocki
2007-07-11 22:17 ` [RFC][PATCH -mm 7/7] Freezer: Use freezing timeout more efficiently Rafael J. Wysocki
2007-07-12 10:38 ` [RFC][PATCH -mm 7/7] Freezer: Use freezing timeout more efficiently (updated) Rafael J. Wysocki
2007-07-13 23:43 ` [RFC][PATCH -mm 7/7] Freezer: Use freezing timeout more efficiently Pavel Machek
2007-07-14 9:20 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200707121233.15239.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=linux-pm@lists.linux-foundation.org \
--cc=miklos@szeredi.hu \
--cc=mjg59@srcf.ucam.org \
--cc=oleg@tv-sign.ru \
--cc=pavel@ucw.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox