linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Scott Wood <scottwood@freescale.com>
To: Timur Tabi <timur@freescale.com>
Cc: linuxppc-dev@ozlabs.org, Roland Dreier <rdreier@cisco.com>
Subject: Re: [PATCH v5] introduce macro spin_event_timeout()
Date: Wed, 11 Mar 2009 16:00:07 -0500	[thread overview]
Message-ID: <49B82657.9050709@freescale.com> (raw)
In-Reply-To: <ed82fe3e0903111345m2962f5b5wdfc9e2efae1c33ae@mail.gmail.com>

Timur Tabi wrote:
> On Wed, Mar 11, 2009 at 2:22 PM, Scott Wood <scottwood@freescale.com> wrote:
> 
>> I was under the impression that we were only talking about timeouts, and
>> that the common case was significantly shorter than that.
> 
> I think one of the concerns that Alan Cox raised is that the existence
> of this macro would encourage people to spin for long durations.

Yes, and I've already stated my response to that line of thinking.  I 
just don't see anyone who would have done something better than a spin 
loop changing their mind because doing a spin loop becomes a little 
easier -- the spin loop is *already* easier than the alternatives.

What if another variant were added that did msleep between iterations, 
for longer expected completion times?  Or if we want to be really fancy, 
combine them into one function that starts with small udelays, then 
switches to msleep of progressively larger intervals up to some maximum?

>> If it's atomic because preemption was disabled, yes -- but even a rare
>> extended spin in such a context would be bad for hard realtime.  If
>> interrupts are disabled, or the code is executing from a timer interrupt (or
>> possibly other interrupts depending on the hardware and its priority
>> scheme), no.
> 
> So in that case, I can't rely on jiffies.  

Or you can say that atomic context is outside the scope of this macro.

-Scott

  reply	other threads:[~2009-03-11 21:00 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-10 22:11 [PATCH v5] introduce macro spin_event_timeout() Timur Tabi
2009-03-10 22:33 ` Scott Wood
2009-03-10 22:37   ` Josh Boyer
2009-03-10 22:58     ` Scott Wood
2009-03-11  0:32       ` Josh Boyer
2009-03-10 23:59     ` Benjamin Herrenschmidt
2009-03-11  0:22       ` Timur Tabi
2009-03-11  0:24         ` Benjamin Herrenschmidt
2009-03-11 17:10           ` Grant Likely
2009-03-11 21:49             ` Benjamin Herrenschmidt
2009-03-11 21:54               ` Timur Tabi
2009-03-11 22:49                 ` Scott Wood
2009-03-11  5:09         ` Roland Dreier
2009-03-11 16:31           ` Timur Tabi
2009-03-11 16:51             ` Scott Wood
2009-03-11 19:14               ` Timur Tabi
2009-03-11 19:22                 ` Scott Wood
2009-03-11 20:45                   ` Timur Tabi
2009-03-11 21:00                     ` Scott Wood [this message]
2009-03-11 21:02                       ` Timur Tabi
2009-03-11 21:03                         ` Scott Wood
2009-03-11  0:44       ` Josh Boyer
2009-03-10 23:58 ` Benjamin Herrenschmidt

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=49B82657.9050709@freescale.com \
    --to=scottwood@freescale.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=rdreier@cisco.com \
    --cc=timur@freescale.com \
    /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;
as well as URLs for NNTP newsgroup(s).