Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755611AbbG1McQ (ORCPT ); Tue, 28 Jul 2015 08:32:16 -0400 Received: from mx2.suse.de ([195.135.220.15]:44328 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932094AbbG1McM (ORCPT ); Tue, 28 Jul 2015 08:32:12 -0400 Subject: Re: [PATCH 04/10] mm, page_alloc: Remove unnecessary taking of a seqlock when cpusets are disabled To: Mel Gorman , Linux-MM References: <1437379219-9160-1-git-send-email-mgorman@suse.com> <1437379219-9160-5-git-send-email-mgorman@suse.com> Cc: Johannes Weiner , Rik van Riel , Pintu Kumar , Xishi Qiu , Gioh Kim , LKML , Mel Gorman From: Vlastimil Babka Message-ID: <55B77649.5010301@suse.cz> Date: Tue, 28 Jul 2015 14:32:09 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <1437379219-9160-5-git-send-email-mgorman@suse.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1548 Lines: 49 On 07/20/2015 10:00 AM, Mel Gorman wrote: > From: Mel Gorman > > There is a seqcounter that protects spurious allocation fails when a task > is changing the allowed nodes in a cpuset. There is no need to check the > seqcounter until a cpuset exists. If cpusets become enabled betwen _begin and _retry, then it will retry due to comparing with 0, but not crash, so it's safe. > Signed-off-by: Mel Gorman Acked-by: Vlastimil Babka > --- > include/linux/cpuset.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h > index 1b357997cac5..6eb27cb480b7 100644 > --- a/include/linux/cpuset.h > +++ b/include/linux/cpuset.h > @@ -104,6 +104,9 @@ extern void cpuset_print_task_mems_allowed(struct task_struct *p); > */ > static inline unsigned int read_mems_allowed_begin(void) > { > + if (!cpusets_enabled()) > + return 0; > + > return read_seqcount_begin(¤t->mems_allowed_seq); > } > > @@ -115,6 +118,9 @@ static inline unsigned int read_mems_allowed_begin(void) > */ > static inline bool read_mems_allowed_retry(unsigned int seq) > { > + if (!cpusets_enabled()) > + return false; > + > return read_seqcount_retry(¤t->mems_allowed_seq, seq); > } > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/