Re: Queue upcall locking (was: [dm-devel] [RFC][PATCH] fixdm_any_congested() to properly sync up with suspend code path)

From: Christoph Hellwig
Date: Mon Nov 10 2008 - 08:54:19 EST


On Mon, Nov 10, 2008 at 08:11:51AM -0500, Mikulas Patocka wrote:
> For upstream Linux developers: you are holding a spinlock and calling
> bdi*_congested functions that can take indefinite amount of time (there
> are even users reporting having 50 disks in one logical volume or so). I
> think it would be good to move these calls out of spinlocks.

Umm, they shouldn't block that long, as that completely defeats their
purpose. These functions are mostly used to avoid throwing more I/O at
a congested device if pdflush could do more useful things instead. But
if it blocks in those functions anyway we wouldn't have to bother using
them. Do you have more details about the uses cases when this happens
and where the routines spend so much time?

--
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/