Messages in this thread | | | Date | Tue, 21 Jun 2005 12:39:48 +0100 (BST) | From | "Maciej W. Rozycki" <> | Subject | Re: [patch 04/12] block/xd: replace schedule_timeout() with msleep() |
| |
On Mon, 20 Jun 2005 domen@coderock.org wrote:
> From: Nishanth Aravamudan <nacc@us.ibm.com> > > > > 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.
Maciej - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |