From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752152AbcJKIBw (ORCPT ); Tue, 11 Oct 2016 04:01:52 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:36370 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750847AbcJKIBv (ORCPT ); Tue, 11 Oct 2016 04:01:51 -0400 Date: Tue, 11 Oct 2016 10:01:08 +0200 From: Michal Hocko To: Minchan Kim Cc: Andrew Morton , Mel Gorman , Vlastimil Babka , Joonsoo Kim , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Sangseok Lee Subject: Re: [PATCH 3/4] mm: unreserve highatomic free pages fully before OOM Message-ID: <20161011080108.GE31996@dhcp22.suse.cz> References: <1475819136-24358-1-git-send-email-minchan@kernel.org> <1475819136-24358-4-git-send-email-minchan@kernel.org> <20161007090917.GA18447@dhcp22.suse.cz> <20161007144345.GC3060@bbox> <20161010074139.GB20420@dhcp22.suse.cz> <20161011050141.GB30973@bbox> <20161011065048.GB31996@dhcp22.suse.cz> <20161011070945.GA21238@bbox> <20161011072605.GD31996@dhcp22.suse.cz> <20161011073716.GA22314@bbox> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161011073716.GA22314@bbox> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue 11-10-16 16:37:16, Minchan Kim wrote: > On Tue, Oct 11, 2016 at 09:26:06AM +0200, Michal Hocko wrote: > > On Tue 11-10-16 16:09:45, Minchan Kim wrote: [...] > > > @@ -2154,12 +2156,24 @@ static void unreserve_highatomic_pageblock(const struct alloc_context *ac) > > > * may increase. > > > */ > > > set_pageblock_migratetype(page, ac->migratetype); > > > - move_freepages_block(zone, page, ac->migratetype); > > > - spin_unlock_irqrestore(&zone->lock, flags); > > > - return; > > > + ret = move_freepages_block(zone, page, > > > + ac->migratetype); > > > + /* > > > + * By race with page freeing functions, !highatomic > > > + * pageblocks can have free pages in highatomic free > > > + * list so if drain is true, try to unreserve every > > > + * free pages in highatomic free list without bailing > > > + * out. > > > + */ > > > + if (!drain) { > > > > if (ret) > > > + spin_unlock_irqrestore(&zone->lock, flags); > > > + return ret; > > > + } > > > > arguably this would work better also for !drain case which currently > > tries to unreserve but in case of the race it would do nothing. > > I thought it but I was afraid if you say again it's over complicated. Well, maybe there is even better/easier solution. Anyway, if I were you I would just split it into two patches. The first to unreserve from shoudl_reclaim_retry and the later to make unreserve_highatomic_pageblock more reliable. > I will do it with your SOB in next spin. ok, thanks! -- Michal Hocko SUSE Labs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f71.google.com (mail-lf0-f71.google.com [209.85.215.71]) by kanga.kvack.org (Postfix) with ESMTP id CD51A6B0038 for ; Tue, 11 Oct 2016 04:01:11 -0400 (EDT) Received: by mail-lf0-f71.google.com with SMTP id x23so8928921lfi.0 for ; Tue, 11 Oct 2016 01:01:11 -0700 (PDT) Received: from mail-lf0-f66.google.com (mail-lf0-f66.google.com. [209.85.215.66]) by mx.google.com with ESMTPS id c67si1189509lfe.227.2016.10.11.01.01.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Oct 2016 01:01:10 -0700 (PDT) Received: by mail-lf0-f66.google.com with SMTP id p80so2258522lfp.1 for ; Tue, 11 Oct 2016 01:01:10 -0700 (PDT) Date: Tue, 11 Oct 2016 10:01:08 +0200 From: Michal Hocko Subject: Re: [PATCH 3/4] mm: unreserve highatomic free pages fully before OOM Message-ID: <20161011080108.GE31996@dhcp22.suse.cz> References: <1475819136-24358-1-git-send-email-minchan@kernel.org> <1475819136-24358-4-git-send-email-minchan@kernel.org> <20161007090917.GA18447@dhcp22.suse.cz> <20161007144345.GC3060@bbox> <20161010074139.GB20420@dhcp22.suse.cz> <20161011050141.GB30973@bbox> <20161011065048.GB31996@dhcp22.suse.cz> <20161011070945.GA21238@bbox> <20161011072605.GD31996@dhcp22.suse.cz> <20161011073716.GA22314@bbox> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161011073716.GA22314@bbox> Sender: owner-linux-mm@kvack.org List-ID: To: Minchan Kim Cc: Andrew Morton , Mel Gorman , Vlastimil Babka , Joonsoo Kim , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Sangseok Lee On Tue 11-10-16 16:37:16, Minchan Kim wrote: > On Tue, Oct 11, 2016 at 09:26:06AM +0200, Michal Hocko wrote: > > On Tue 11-10-16 16:09:45, Minchan Kim wrote: [...] > > > @@ -2154,12 +2156,24 @@ static void unreserve_highatomic_pageblock(const struct alloc_context *ac) > > > * may increase. > > > */ > > > set_pageblock_migratetype(page, ac->migratetype); > > > - move_freepages_block(zone, page, ac->migratetype); > > > - spin_unlock_irqrestore(&zone->lock, flags); > > > - return; > > > + ret = move_freepages_block(zone, page, > > > + ac->migratetype); > > > + /* > > > + * By race with page freeing functions, !highatomic > > > + * pageblocks can have free pages in highatomic free > > > + * list so if drain is true, try to unreserve every > > > + * free pages in highatomic free list without bailing > > > + * out. > > > + */ > > > + if (!drain) { > > > > if (ret) > > > + spin_unlock_irqrestore(&zone->lock, flags); > > > + return ret; > > > + } > > > > arguably this would work better also for !drain case which currently > > tries to unreserve but in case of the race it would do nothing. > > I thought it but I was afraid if you say again it's over complicated. Well, maybe there is even better/easier solution. Anyway, if I were you I would just split it into two patches. The first to unreserve from shoudl_reclaim_retry and the later to make unreserve_highatomic_pageblock more reliable. > I will do it with your SOB in next spin. ok, thanks! -- Michal Hocko SUSE Labs -- 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: email@kvack.org