From: Nishanth Aravamudan <nacc@us.ibm.com>
To: "Maciej W. Rozycki" <macro@linux-mips.org>
Cc: Domen Puncer <domen@coderock.org>,
axboe@suse.de, linux-kernel@vger.kernel.org
Subject: Re: [patch 04/12] block/xd: replace schedule_timeout() with msleep()
Date: Tue, 21 Jun 2005 11:29:51 -0700 [thread overview]
Message-ID: <20050621182951.GB2664@us.ibm.com> (raw)
In-Reply-To: <Pine.LNX.4.61L.0506211729160.17779@blysk.ds.pg.gda.pl>
On 21.06.2005 [17:43:53 +0100], Maciej W. Rozycki wrote:
> On Tue, 21 Jun 2005, Nishanth Aravamudan wrote:
>
> > schedule_timeout(1) is ambiguous in older/unchanged code since 2.4, as
> > it indicated a 10 millisecond sleep then. Now, in 2.6, it indicates a 1
> > millisecond sleep (HZ==1000). I am trying to prevent issues like this
> > coming up in the future (CONFIG_HZ has hit -mm, e.g.) and msleep() is a
> > good way to do so.
>
> Well, HZ has never been consistent across platforms, e.g. 1024 for
> the Alpha or even within certain platforms, e.g. 128 vs 100 for MIPS for
> different configurations, so relying on jiffies to provide any absolute
> time measurement has always been a misconception. But assuming all code
> authors have failed to observe it is probably going a little bit too far,
> so I'd always assume a given piece of code is correct unless I had reasons
> to decide it does something silly.
Right, I agree HZ is inconsistent. That is why I am trying to get users
to use human-time interfaces, that way when HZ becomes dynamic (think
tickless!) or variable at compile-time (already in -mm with efforts to
get it merged to mainline via CONFIG_HZ). I know code authors have
failed to observe the brokenness of ticks as time and am trying my
hardest to fix up as many callers as possible. If nothing else, use
schedule_timeout({msecs,usecs,nsecs}_to_jiffies(some_time_value));
I'm not saying your code is incorrect, by the way, I am just trying to
make it maintainable and work on a kerneljanitor TODO.
> > If you are trying to sleep for the shortest amount of time possible (a
> > tick), though, then the code is fine, I guess. A comment may be useful,
> > though.
>
> This is obviously the case -- the code waits for a condition of an I/O
> device to change and does not want to hog the CPU for the duration as the
> device is slooow. I don't think any comment is needed -- it speaks for
> itself: "I'm giving up now, but let me proceed at the next opportunity."
Ok, there isn't much point in arguing this further then. My point was
simply this: there is *a lot* of code that has not been updated since
2.4 wrt. to sleep times. Thus, I cannot tell by reading the code,
necessarily, whether a schedule_timeout(1) is referring to 1 millisecond
or 1 tick. But that just may be me being confused.
I appreciate all your feedback, Maciej.
Thanks,
Nish
prev parent reply other threads:[~2005-06-21 18:30 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-20 21:51 [patch 04/12] block/xd: replace schedule_timeout() with msleep() domen
2005-06-21 11:39 ` Maciej W. Rozycki
2005-06-21 13:21 ` Domen Puncer
2005-06-21 13:53 ` Maciej W. Rozycki
2005-06-21 16:14 ` Nishanth Aravamudan
2005-06-21 16:43 ` Maciej W. Rozycki
2005-06-21 18:29 ` Nishanth Aravamudan [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=20050621182951.GB2664@us.ibm.com \
--to=nacc@us.ibm.com \
--cc=axboe@suse.de \
--cc=domen@coderock.org \
--cc=linux-kernel@vger.kernel.org \
--cc=macro@linux-mips.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.