Thread (66 messages) 66 messages, 8 authors, 2010-10-29

Re: [PATCH 03/10] writeback: Do not congestion sleep if there are no congested BDIs or significant writeback

From: Minchan Kim <hidden>
Date: 2010-09-13 10:20:37
Also in: linux-fsdevel, lkml

On Mon, Sep 13, 2010 at 7:07 PM, Mel Gorman [off-list ref] wrote:
On Mon, Sep 13, 2010 at 06:48:10PM +0900, Minchan Kim wrote:
quoted
quoted
quoted
quoted
quoted
quoted
<SNIP>
I'm not saying it is. The objective is to identify a situation where
sleeping until the next write or congestion clears is pointless. We have
already identified that we are not congested so the question is "are we
writing a lot at the moment?". The assumption is that if there is a lot
of writing going on, we might as well sleep until one completes rather
than reclaiming more.

This is the first effort at identifying pointless sleeps. Better ones
might be identified in the future but that shouldn't stop us making a
semi-sensible decision now.
nr_bdi_congested is no problem since we have used it for a long time.
But you added new rule about writeback.
Yes, I'm trying to add a new rule about throttling in the page allocator
and from vmscan. As you can see from the results in the leader, we are
currently sleeping more than we need to.
I can see the about avoiding congestion_wait but can't find about
(writeback < incative / 2) hueristic result.
See the leader and each of the report sections entitled
"FTrace Reclaim Statistics: congestion_wait". It provides a measure of
how sleep times are affected.

"congest waited" are waits due to calling congestion_wait. "conditional waited"
are those related to wait_iff_congested(). As you will see from the reports,
sleep times are reduced overall while callers of wait_iff_congested() still
go to sleep. The reports entitled "FTrace Reclaim Statistics: vmscan" show
how reclaim is behaving and indicators so far are that reclaim is not hurt
by introducing wait_iff_congested().
I saw  the result.
It was a result about effectiveness _both_ nr_bdi_congested and
(writeback < inactive/2).
What I mean is just effectiveness (writeback < inactive/2) _alone_.
I didn't measured it because such a change means that wait_iff_congested()
ignored BDI congestion. If we were reclaiming on a NUMA machine for example,
it could mean that a BDI gets flooded with requests if we only checked the
ratios of one zone if little writeback was happening in that zone at the
time. It did not seem like a good idea to ignore congestion.
You seem to misunderstand my word.
Sorry for not clear sentence.

I don't mean ignore congestion.
First of all, we should consider congestion of bdi.
My meant is whether we need adding up (nr_writeback < nr_inacive /2)
heuristic plus congestion bdi.
It wasn't previous version in your patch but it showed up in this version.
So I thought apparently you have any evidence why we should add such heuristic.
quoted
If we remove (writeback < inactive / 2) check and unconditionally
return, how does the behavior changed?
Based on just the workload Johannes sent, scanning and completion times both
increased without any improvement in the scanning/reclaim ratio (a bad result)
hence why this logic was introduced to back off where there is some
writeback taking place even if the BDI is not congested.
Yes. That's what I want. At least, comment of function should have it
to understand the logic.  In addition, It would be better to add the
number to show how it back off well.

--
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab


-- 
Kind regards,
Minchan Kim

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help