Linux PARISC architecture development
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@SteelEye.com>
To: dmp@davidmpye.dyndns.org
Cc: PARISC list <parisc-linux@lists.parisc-linux.org>
Subject: Re: [parisc-linux] J5000 LED LCD patch (take 2)
Date: Sat, 26 Mar 2005 09:33:56 -0600	[thread overview]
Message-ID: <1111851236.5711.17.camel@mulgrave> (raw)
In-Reply-To: <200503261514.43287.dmp@davidmpye.dyndns.org>

On Sat, 2005-03-26 at 15:14 +0000, David Pye wrote:
> > I'm still really not clear why there is "flutter".  THe only reasonable
> > case I can think of is flutter is an artifact of the CPU busy doing "real"
> > work and not servicing the LED/LCD wq. i.e. the stress test to excercise
> > networking/disk activity is causing the CPU to work on lots of other tasks
> > and it's taking more than a few jiffies to get back to the LED/LCD wq.
> 
> Yeah, it's a little mysterious. What I think is happening is that when we ask 
> to msleep between the writes, because we're not busy-waiting, we might be put 
> to sleep for far longer than we asked for.  Ditto again, for when we ask to 
> be requeued - we ask to run every 10mS but we might end up waiting for far 
> longer than that.  That's about the best explanation I've come up with so 
> far.  By ensuring that we do not update the io/net symbols more often than 
> necessary, we can save ourselves some of these sleeps, so giving the kernel 
> less opportunity to put us to sleep!

This is a natural consequence of converting from a tasklet to a
workqueue.  workqueues and msleep are controlled by the scheduler.  The
guarantee is not that the task will be awoken at the specified interval,
but that the task will be marked ready to run at the specified interval.
When it actually runs is within the gift of the scheduler and depends
entirely on how many other runnable tasks there are and what priorities
they have.

If you want absolute control of the timings then you have to use a
tasklet or timer (as per the original implementation)

James


_______________________________________________
parisc-linux mailing list
parisc-linux@lists.parisc-linux.org
http://lists.parisc-linux.org/mailman/listinfo/parisc-linux

  reply	other threads:[~2005-03-26 15:33 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-24 18:48 [parisc-linux] J5000 LED LCD patch (take 2) David Pye
2005-03-24 20:01 ` [parisc-linux] A second LCD patch David Pye
2005-03-24 20:05 ` [parisc-linux] J5000 LED LCD patch (take 2) James Bottomley
2005-03-24 21:00   ` David Pye
2005-03-25  6:25     ` Grant Grundler
2005-03-25 17:05       ` David Pye
2005-03-25 21:50         ` David Pye
2005-03-26  7:13           ` Grant Grundler
2005-03-26 15:14             ` David Pye
2005-03-26 15:33               ` James Bottomley [this message]
     [not found]                 ` <200503261545.05372.dmp@davidmpye.dyndns.org>
2005-03-26 15:51                   ` David Pye
2005-03-27  8:53               ` Grant Grundler
2005-03-27  9:38                 ` David Pye
2005-03-27 17:55                   ` David Pye
2005-03-28  1:51                     ` Grant Grundler
2005-03-28  2:13                   ` Grant Grundler

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=1111851236.5711.17.camel@mulgrave \
    --to=james.bottomley@steeleye.com \
    --cc=dmp@davidmpye.dyndns.org \
    --cc=parisc-linux@lists.parisc-linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox