Messages in this thread | | | Date | Wed, 3 Mar 2004 01:15:10 +0100 | From | Miquel van Smoorenburg <> | Subject | Re: 2.6.4-rc1-mm1: queue-congestion-dm-implementation patch |
| |
On Tue, 02 Mar 2004 23:21:34, Andrew Morton wrote: > Kevin Corry <kevcorry@us.ibm.com> wrote: > > > > > Changing down_read() in dm_any_congested to down_read_trylock() would > > > probably fix it for bdi_*_congested(). If you can tell me how to > > > reproduce it I can try a few things.. > > > > Switching to down_read_trylock() would certainly eliminate this problem, as > > long as you don't *need* to check the congestion of the underlying devices > > each time dm_any_congested() is called. > > It's clear from the trace: we're doing down_read() inside > sync_sb_inodes()'s inode_lock. > > Yes, a trylock would fix it up, but it's a bit sleazy. > > So for two reasons now, it's looking like that semaphore which protects the > devicemapper tables needs to become a spinlock. One which has interesting > ranking properties.
Is that 2.6 material? If so, good. If not, the "passing up" congestion method doesn't seem so bad after all, I think. At least it keeps the backing_dev_info struct completely static ..
(I haven't tried 2.6.4-rc1-mm1 yet - the e1000 driver doesn't work for me in that kernel, so I can't reach the damn boxes).
Mike. - 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/
| |