Re: [PATCH] Fix queueing work if !bdi_cap_writeback_dirty()

From: Jan Kara
Date: Mon Sep 17 2012 - 11:54:03 EST


On Mon 17-09-12 19:37:46, OGAWA Hirofumi wrote:
> Jan Kara <jack@xxxxxxx> writes:
>
> > On Mon 17-09-12 18:39:05, OGAWA Hirofumi wrote:
> >> Jan Kara <jack@xxxxxxx> writes:
> >>
> >> >> I think you know how to solve it though. You can add the periodic flush
> >> >> in own task. And you can check bdi->dirty_exceeded in any handlers.
> >> > Sure, you can have your private thread. That is possible but you will
> >> > have to duplicate flusher logic and you will still get odd behavior e.g.
> >> > when your filesystem is on one partition and another filesystem is on a
> >> > different partition of the same disk.
> >>
> >> Right. But it is what current FSes are doing more or less.
> > It's not. Page writeback is respected by all filesystems in most cases
> > AFAIK. Inode writeback is a different issue but that's not so interesting
> > from mm point of view...
>
> Duplicate flusher - many FSes has own task to flush. Odd behavior in
> the case of partition - agree, but I'm not sure why metadata is ok, and
> it is not odd behavior.
Well, because there is much more of data pages then there is metadata. So
when you do strange things (like refuse to write / reclaim) with metadata,
it usually ends up in the noise. But when you start doing similar things
with data pages, people will notice.

> Sorry, I'm not sure your point in latest comment. You are just saying FS
> must flush pages on writepages()?
Yes.

> And if alternative plan is acceptable, maybe I will not have interest to
> this anymore.
Yes, the alternative plan looks better to me. But all in all I don't want
to stop you from your experiments :) I mostly just wanted to point out that
disabling flusher thread for a filesystem has a complex consequences which
IMHO bring more bad than good.

Honza
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
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/