[Top] [All Lists]

Re: set_buffer_dirty_uptodate

To: Russell Cattelan <cattelan@xxxxxxxxxxx>
Subject: Re: set_buffer_dirty_uptodate
From: Marcelo Tosatti <marcelo@xxxxxxxxxxxxxxxx>
Date: Tue, 19 Dec 2000 20:27:39 -0200 (BRST)
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <3A3FFA5F.10AA0526@xxxxxxxxxxx>
Sender: owner-linux-xfs@xxxxxxxxxxx

On Tue, 19 Dec 2000, Russell Cattelan wrote:

> Marcelo Tosatti wrote:
> > Hi,
> >
> > I was looking at the pagebuf code while I noted that
> > set_buffer_dirty_uptodate (pagebuf/page_buf_io.c:1188) may sleep waiting
> > for bdflush to clean some dirty buffers because it calls balance_dirty().
> >
> > set_buffer_dirty_update is called by functions which are part of the XFS's
> > writepage codepath, which basically starts at linvfs_write_full_page
> > (xfs/linux/xfs_iops.c).
> >
> > The issue is that linvfs_write_full_page() is taking a vnode lock before
> > going through this codepath, meaning that it can sleep waiting for bdflush
> > while holding this lock which seems to be unecessary.
> >
> > If this "vnode lock" suffers from contention because processes sleep while
> > holding it, we can fix it by calling balance_dirty() _after_ we drop the
> > vnode lock.
> >
> > In practice, this vnode lock is a being used concurrently by a lot of
> > users?
> >
> > Thanks!
> Sorry I haven't gotten back to you...

No problem.

> I haven't had a chance to look this over, but yes this might be a problem.
> Have you been able to demonstrate this problem?


I was just reading XFS code and noticed the potential problem.

Dont you people have lockmeter output's of filesystem benchmarks on the
32p o2k?

That may give us a hint. 

<Prev in Thread] Current Thread [Next in Thread>