Re: merging the per-bdi writeback patchset

From: Jens Axboe
Date: Tue Jun 23 2009 - 04:55:21 EST


On Tue, Jun 23 2009, Andrew Morton wrote:
> On Tue, 23 Jun 2009 10:11:56 +0200 Jens Axboe <jens.axboe@xxxxxxxxxx> wrote:
>
> > Things are looking good for this patchset and it's been in -next for
> > almost a week without any reports of problems. So I'd like to merge it
> > for 2.6.31 if at all possible. Any objections?
>
> erk. I was rather expecting I'd have time to have a look at it all.

OK, we can wait if we have to, just trying to avoid having to keep this
fresh for one full cycle. I have posted this patchset 11 times though
over months, so it's not like it's a new piece of work :-)

> It's unclear to me actually _why_ the performance changes which were
> observed have actually occurred. In fact it's a bit unclear (to me)
> why the patchset was written and what it sets out to achieve :(

It started out trying to get rid of the pdflush uneven writeout. If you
look at various pdflush intensive workloads, even on a single disk you
often have 5 or more pdflush threads working the same device. It's just
not optimal. Another issue was starvation with request allocation. Given
that pdflush does non-blocking writes (it has to, by design), pdflush
can potentially be starved if someone else is working the device.

> A long time ago the XFS guys (Dave Chinner iirc) said that XFS needs
> more than one thread per device to keep the device saturated. Did that
> get addressed?

It supports up to 32-threads per device, but Chinner et all have been
silent. So the support is there and there's a
super_operations->inode_get_wb() to map a dirty inode to a writeback
device. Nobody is doing that yet though.

> (kthread_run() returns an ERR_PTR() on error, btw - not NULL.)

Oh thanks, will fix that up.

--
Jens Axboe

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