Re: [v5][PATCH 6/6] mm: vmscan: drain batch list during long operations

Dave Hansen
2013-06-04T23:31:18Z

On 06/04/2013 04:23 PM, Minchan Kim wrote:
> On Tue, Jun 04, 2013 at 08:24:38AM -0700, Dave Hansen wrote:
>> On 06/03/2013 11:05 PM, Minchan Kim wrote:
>>>>> This ensures that we drain the batch if we are about to perform a
>>>>> pageout() or congestion_wait(), either of which will take some
>>>>> time. We expect this to help mitigate the worst of the latency
>>>>> increase that the batching could cause.
>>> Nice idea but I could see drain before pageout but congestion_wait?
>>
>> That comment managed to bitrot a bit :(
>>
>> The first version of these had the drain before pageout() only. Then,
>> Mel added a congestion_wait() call, and I modified the series to also
>> drain there. But, some other patches took the congestion_wait() back
>> out, so I took that drain back out.
>
> I am looking next-20130530 and it has still a congestion_wait.
> I'm confusing. :(
>
>
> if (PageWriteback(page)) {
> /* Case 1 above */
> if (current_is_kswapd() &&
> PageReclaim(page) &&
> zone_is_reclaim_writeback(zone)) {
> congestion_wait(BLK_RW_ASYNC, HZ/10);
> zone_clear_flag(zone, ZONE_WRITEBACK);
>>
>> I _believe_ the only congestion_wait() left in there is a cgroup-related
>> one that we didn't think would cause very much harm.
>
> The congestion_wait I am seeing is not cgroup-related one.

Yeah, sorry for the confusion. There's been a whole lot of activity in
there. My set is also done on top of a couple of fixes that Mel posted
later on, including this one:

https://patchwork.kernel.org/patch/2619901/

*That* one removes the congestion_wait() you noticed.