Re: Fix sleep_on abuse in XFS, Was: Re: 2.6.2-rc2-mm1 (Breakage?)
From: Nathan Scott
Date: Thu Jan 29 2004 - 01:26:05 EST
On Wed, Jan 28, 2004 at 03:02:06PM +0000, Christoph Hellwig wrote:
> ...
> INIT_LIST_HEAD(&tmp);
> do {
> /* swsusp */
> if (current->flags & PF_FREEZE)
> refrigerator(PF_IOTHREAD);
>
> - if (pbd_active == 1) {
> - mod_timer(&pb_daemon_timer,
> - jiffies + pb_params.flush_interval.val);
> - interruptible_sleep_on(&pbd_waitq);
> - }
> -
> - if (pbd_active == 0) {
> - del_timer_sync(&pb_daemon_timer);
> - }
> + schedule_timeout(pb_params.flush_interval.val);
After a bit more testing, looks like we'll also need a
current->state = TASK_INTERRUPTIBLE;
line before the schedule_timeout call, else pagebufd eats
a whole lot of system time on one CPU.
I'll send an XFS update to Linus and Andrew tomorrow after
some further testing.
thanks.
--
Nathan
-
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/