[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: WAPBL patch for testing
On Fri, Oct 31, 2008 at 03:10:24PM -0400, Thor Lancelot Simon wrote:
> On Fri, Oct 31, 2008 at 08:03:32PM +0100, Juergen Hannken-Illjes wrote:
> > On Fri, Oct 31, 2008 at 07:03:59PM +0100, Joerg Sonnenberger wrote:
> > > Hi all,
> > > the attached patch is supposed to fix both hangs (wchan tstile) and
> > > performance issues with WAPBL. Please test it and report any issues.
> > > I'd like to see some review for this too. I can't find a reason why the
> > > WAPBL lock should be hold in that places nor can I find a code path from
> > > UFS itself to getpages with lock already being hold, but I could be
> > > wrong.
> > >
> > > Joerg
> > The reason for these wapbl locks is ffs snapshots. VOP_PUTPAGES() may
> > need to copy-on-write which needs to run inside a wapbl transaction
> > as we allocate blocks here.
> Would this problem be any easier to solve if the snapshot and wapbl
> code used the same notion of a "transaction"? I was very surprised
> to see that wapbl brought in an a whole new idea of a "fs transaction"
> when the snapshot code already seemed to have one.
I must admit my knowledge of wapbl internals is vague.
Maybe it is possible to use fstrans for wapbl transactions by:
- Make the wapbl transaction per-lwp, collecting all meta data changes during
a fstrans transaction (that usually covers one VOP).
- On the last fstrans_done() on a mount, if we collected some data, send
it to a seperate kernel thread to process this wapbl transaction.
Such a produser-consumer model may be better for wapbl than taking
(exclusive) locks to start or end a transaction.
Juergen Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig
Main Index |
Thread Index |