From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Thu, 29 Jan 2004 17:20:52 +1100 From: Nathan Scott Subject: Re: Fix sleep_on abuse in XFS, Was: Re: 2.6.2-rc2-mm1 (Breakage?) Message-ID: <20040129062052.GC2474@frodo> References: <20040127233402.6f5d3497.akpm@osdl.org> <200401281313.03790.ender@debian.org> <200401281225.37234.s0348365@sms.ed.ac.uk> <20040128133357.A28038@infradead.org> <1075300114.1633.156.camel@hades.cambridge.redhat.com> <20040128150206.A28974@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040128150206.A28974@infradead.org> Sender: owner-linux-mm@kvack.org Return-Path: To: Christoph Hellwig , David Woodhouse , Alistair John Strachan , linux-kernel@vger.kernel.org, David =?iso-8859-1?Q?Mart=EDnez?= Moreno , Andrew Morton , linux-mm@kvack.org List-ID: 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: aart@kvack.org