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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>