Subject: Re: [PATCH block/for-3.3/core] block: an exiting task should be allowed to create io_context

From: Tejun Heo <[email-masked]>
Date: Tue, 3 Jan 2012 09:35:00 -0800

Happy new year, guys.

On Wed, Dec 28, 2011 at 01:19:18PM -0800, Tejun Heo wrote:
> > On Wed, Dec 28, 2011 at 9:50 AM, Hugh Dickins <[email-masked]> wrote:
> > > "It's the tmpfs swapping test that I've been running, with variations,
> > > for years.  System booted with mem=700M and 1.5G swap, two repetitious
> > > make -j20 kernel builds (of a 2.6.24 kernel: I stuck with that because
> > > the balance of built to unbuilt source grows smaller with later kernels),
> > > one directly in a tmpfs, the other in a 1k-block ext2 (that I drive with
> > > ext4's CONFIG_EXT4_USE_FOR_EXT23) on /dev/loop0 on a 450MB tmpfs file."
> > >
> > > I doubt much of that (quoted from an older mail to someone else about
> > > one of the many other bugs it's found) is relevant: maybe just plenty
> > > of file I/O and swapping.
> > 
> > Plain -j4 build isn't triggering anything.  I'll try to replicate the condition.
> 
> It's not too reliable but I can reproduce it with -j 22 allmodconfig
> build inside qemu w/ 512M of memory.  I'll try to find out what's
> going on.

I misread the code, the problem is empty cfqq on the cfq prio tree.  I
don't think this is caused by recent io_context changes.  It looks
like somebody is forgetting to remove cfqq from the dispatch prio tree
after emptying a cfqq by removing a request from it.  Jens, any ideas?

Thanks.

-- 
tejun