Re: [PATCH 1/3] mm: vmscan: Do use use PF_SWAPWRITE from zone_reclaim

From: Minchan Kim
Date: Tue Jul 12 2011 - 05:27:18 EST


Hi Mel,

On Mon, Jul 11, 2011 at 10:01 PM, Mel Gorman <mgorman@xxxxxxx> wrote:
> Zone reclaim is similar to direct reclaim in a number of respects.
> PF_SWAPWRITE is used by kswapd to avoid a write-congestion check
> but it's set also set for zone_reclaim which is inappropriate.
> Setting it potentially allows zone_reclaim users to cause large IO
> stalls which is worse than remote memory accesses.

As I read zone_reclaim_mode in vm.txt, I think it's intentional.
It has meaning of throttle the process which are writing large amounts
of data. The point is to prevent use of remote node's free memory.

And we has still the comment. If you're right, you should remove comment.
" * and we also need to be able to write out pages for RECLAIM_WRITE
* and RECLAIM_SWAP."


And at least, we should Cc Christoph and KOSAKI.

>
> Signed-off-by: Mel Gorman <mgorman@xxxxxxx>
> ---
> Âmm/vmscan.c | Â Â4 ++--
> Â1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index 4f49535..ebef213 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -3063,7 +3063,7 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
> Â Â Â Â * and we also need to be able to write out pages for RECLAIM_WRITE
> Â Â Â Â * and RECLAIM_SWAP.
> Â Â Â Â */
> - Â Â Â p->flags |= PF_MEMALLOC | PF_SWAPWRITE;
> + Â Â Â p->flags |= PF_MEMALLOC;
> Â Â Â Âlockdep_set_current_reclaim_state(gfp_mask);
> Â Â Â Âreclaim_state.reclaimed_slab = 0;
> Â Â Â Âp->reclaim_state = &reclaim_state;
> @@ -3116,7 +3116,7 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
> Â Â Â Â}
>
> Â Â Â Âp->reclaim_state = NULL;
> - Â Â Â current->flags &= ~(PF_MEMALLOC | PF_SWAPWRITE);
> + Â Â Â current->flags &= ~PF_MEMALLOC;
> Â Â Â Âlockdep_clear_current_reclaim_state();
> Â Â Â Âreturn sc.nr_reclaimed >= nr_pages;
> Â}
> --
> 1.7.3.4
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@xxxxxxxxxx ÂFor more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
> Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>
>



--
Kind regards,
Minchan Kim
--
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/