Messages in this thread |  | | | Date | Tue, 16 Jul 2002 10:48:56 +0200 | | From | Jens Axboe <> | | Subject | Re: [BUG] loop.c oopses |
| |
On Tue, Jul 16 2002, Andrew Morton wrote: > Jens Axboe wrote: > > > > On Tue, Jul 16 2002, Andrew Morton wrote: > > > William Lee Irwin III wrote: > > > > > > > > loop.c oopses when bio_copy() returns NULL. This was encountered while > > > > running dbench 16 on a loopback-mounted reiserfs filesystem. > > > > > > ugh. GFP_NOIO is evil. I guess it's better to add __GFP_HIGH > > > there, but it's not a happy solution. > > > > GFP_NOIO has __GFP_WAIT set, so bio_copy -> bio_alloc -> mempool_alloc > > should never fail. Puzzled. > > > > Presumably the loop driver was called from within shrink_cache(), > as PF_MEMALLOC. Those allocations can fail.
Maybe I'm being dense, but I don't see how PF_MEMALLOC would prevent mempool_alloc() from doing the right thing still. In the end we'll just end up stalling on our own pool.
> That's maybe wrong - if there are a decent number of pages > under writeback then we should be able to just wait it out. > But it gets tricky with the loop driver...
Indeed
-- Jens Axboe
- 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/
|  |