Re: [patch 04/12] block/xd: replace schedule_timeout() with msleep()

From: Domen Puncer
Date: Tue Jun 21 2005 - 08:39:55 EST


On 21/06/05 12:39 +0100, Maciej W. Rozycki wrote:
> On Mon, 20 Jun 2005 domen@xxxxxxxxxxxx wrote:
>
> > From: Nishanth Aravamudan <nacc@xxxxxxxxxx>
> >
> >
> >
> > Use msleep() instead of schedule_timeout() to guarantee the task
> > delays as expected. The current code wishes to sleep for 1 jiffy, but I am not
> > sure if this is actually intended, as with the change to HZ=1000, the time
> > equivalent of 1 jiffy changed from 10ms to 1ms. I have assumed the former in
> > this case; however the patch can be easily changed to assume the latter.
> [...]
> > @@ -529,10 +530,8 @@ static inline u_char xd_waitport (u_shor
> > int success;
> >
> > xdc_busy = 1;
> > - while ((success = ((inb(port) & mask) != flags)) && time_before(jiffies, expiry)) {
> > - set_current_state(TASK_UNINTERRUPTIBLE);
> > - schedule_timeout(1);
> > - }
> > + while ((success = ((inb(port) & mask) != flags)) && time_before(jiffies, expiry))
> > + msleep(10);
> > xdc_busy = 0;
> > return (success);
> > }
>
> I think it's obvious what this code intends and this makes the function
> to busy-loop instead of giving up the CPU friendly. The change makes no
> sense -- the code is correct as is.

mdelay - busy loop
msleep - schedule

>
> Maciej
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/