All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Peter Zijlstra <peterz@infradead.org>
Cc: len.brown@intel.com, linux-kernel@vger.kernel.org,
	tglx@linutronix.de, mingo@kernel.org,
	torvalds@linux-foundation.org, rjw@rjwysocki.net, hpa@zytor.com,
	linux-tip-commits@vger.kernel.org
Subject: Re: [tip:sched/core] sched/wait: Reimplement wait_event_freezable()
Date: Thu, 13 Nov 2014 15:03:26 +0100	[thread overview]
Message-ID: <20141113140326.GA18995@amd> (raw)
In-Reply-To: <20141105081838.GN10501@worktop.programming.kicks-ass.net>

Hi!

> > Did you test it with suspend/hibernation? Because I can't really see
> > how it works.
> 
> It calls try_to_freeze() after each schedule(). But no, I've not
> actually tried.
> 
> If we're stuck in the schedule, waiting for the event, freeze_task()
> will wake us up and then we'll find freeing() true and call into
> __refrigerator().
> 
> If we're not stuck in schedule() we're running and the freezer
> can see us running and will wait for us to hit another freeze point.

Ok, let me try it here.

> > > +#define __wait_event_freezable(wq, condition)				\
> > > +	___wait_event(wq, condition, TASK_INTERRUPTIBLE, 0, 0,		\
> > > +			    schedule(); try_to_freeze())
> > > +
> 
> > _Three_ underscores. And two underscore version exists, too,
> > fortunately it at least has different number of arguments.
> 
> Hehe, yeah, there was a discount on underscores that day. The double
> underscore variants can be used in code along with the no underscores
> variants. The tripple one is implementation goo.

Lets see, add 5 underscore variant, and we have contestant for
obfuscated C code contest...

Anyway, it seems it works for me (tested suspend, not hibernation).

Test-by: Pavel Machek <pavel@ucw.cz>

									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

      reply	other threads:[~2014-11-13 14:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-04 16:08 [tip:sched/core] sched/wait: Reimplement wait_event_freezable() tip-bot for Peter Zijlstra
2014-11-04 20:12 ` Pavel Machek
2014-11-05  8:18   ` Peter Zijlstra
2014-11-13 14:03     ` Pavel Machek [this message]

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=20141113140326.GA18995@amd \
    --to=pavel@ucw.cz \
    --cc=hpa@zytor.com \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.