Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2963229imu; Wed, 7 Nov 2018 02:37:39 -0800 (PST) X-Google-Smtp-Source: AJdET5fewFnERHcO291IcZqyW66EjayFlp9l5ClvRfWlVG3GsTNq308H0D1MqCWWHhiNBECNeQQ+ X-Received: by 2002:a62:ca4d:: with SMTP id n74-v6mr1307060pfg.10.1541587059884; Wed, 07 Nov 2018 02:37:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541587059; cv=none; d=google.com; s=arc-20160816; b=TY0fDPGDBWOeXwsqx1zreg5jDDtXJsDQR91jALo1hBAd0HfSXuUGp3ftpq5QShTtle UT3BQVyYvL4GSghuLrEj5AzVrMIm3v0gDClBCC4HhDU2HfGcX0UAycXH+aF5HsJU3LIE mKi5hLEjD7Up5XStEn9r0EgeeCleN/+yhxJDg5xKYD/PXKZlI1KP5+pmV1+TQ6J9rOcY AyHWGz85oAazTzQElHmPrD8e17MfgtujLwdbvHpzMqi8f0b+ahS7mDJzqtZm/5CGkfzk ZfA+iyHLtQ3V4HeVShHAstEkys05GBl+sWTk14kMFPLiQ/jsLksxe+crurVgcgPBAMaf 4Yzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=nR4uRMeUvOKuV0utTd7fDyVFGjfXIpL1QpFB3Ocy5Hg=; b=SorrjxH8cwACdzS/l3SD6OItNuEIGYSt5rYy2GgqpAzJqrLHhEEuOeWebKLCdzZTua tCPgjNoogJhzdH4U+ImTmDXo2c4oKxRI4NjM1Nj+SmFXPkS3R2xTJjcuAEztWVDXRK3Y OSaOZsd/esCuN2OD/2wkxb3fh8Ufqz9FVIZZVCho5jsNxLyTJ1JL2U0AMKi94TOt6KSE wvnz5ppzw3EfiWtSsuDen9ANr8lLfmwFT0GrEawILuZ24SxwOkVRRUgOIiZbOGIYU4ez G1oJWLG4VLdfdcVxuN4VjVkMQX/K6zctZQQv5VjIfC71LQk8MNKw9tbJ7eOxbsgUpiDb F9Ag== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 22si180184pgt.216.2018.11.07.02.37.24; Wed, 07 Nov 2018 02:37:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730461AbeKGUG2 (ORCPT + 99 others); Wed, 7 Nov 2018 15:06:28 -0500 Received: from mx2.suse.de ([195.135.220.15]:60868 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726218AbeKGUG2 (ORCPT ); Wed, 7 Nov 2018 15:06:28 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 623E4B6A0; Wed, 7 Nov 2018 10:36:41 +0000 (UTC) Date: Wed, 7 Nov 2018 11:36:30 +0100 From: Michal Hocko To: Arun KS Cc: keescook@chromium.org, khlebnikov@yandex-team.ru, minchan@kernel.org, getarunks@gmail.com, gregkh@linuxfoundation.org, akpm@linux-foundation.org, mhocko@kernel.org, vbabka@suse.cz, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Arun KS Subject: Re: [PATCH v1 4/4] mm: Remove managed_page_count spinlock Message-ID: <20181107103630.GF2453@dhcp22.suse.cz> References: <1540551662-26458-1-git-send-email-arunks@codeaurora.org> <1540551662-26458-5-git-send-email-arunks@codeaurora.org> <20181106141732.GR27423@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181106141732.GR27423@dhcp22.suse.cz> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [for some reason I have dropped the rest of the cc list. Restored] On Tue 06-11-18 15:17:32, Michal Hocko wrote: > On Fri 26-10-18 16:31:02, Arun KS wrote: > > Now totalram_pages and managed_pages are atomic varibles. No need > > of managed_page_count spinlock. > > Yes this is the real improvement. The lock had really a weak consistency > guarantee. It hasn't been used for anything but the update but no reader > actually cares about all the values being updated to be in sync. I > haven't really done an excavation work to see whether it used to be used > in other contexts in the past but it simply doesn't have any meaning > anymore. > > > Signed-off-by: Arun KS > > Acked-by: Michal Hocko > > Thanks for getting through all the hassles to reach to this end point. > > > --- > > include/linux/mmzone.h | 6 ------ > > mm/page_alloc.c | 5 ----- > > 2 files changed, 11 deletions(-) > > > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > > index 597b0c7..aa960f6 100644 > > --- a/include/linux/mmzone.h > > +++ b/include/linux/mmzone.h > > @@ -428,12 +428,6 @@ struct zone { > > * Write access to present_pages at runtime should be protected by > > * mem_hotplug_begin/end(). Any reader who can't tolerant drift of > > * present_pages should get_online_mems() to get a stable value. > > - * > > - * Read access to managed_pages should be safe because it's unsigned > > - * long. Write access to zone->managed_pages and totalram_pages are > > - * protected by managed_page_count_lock at runtime. Idealy only > > - * adjust_managed_page_count() should be used instead of directly > > - * touching zone->managed_pages and totalram_pages. > > */ > > atomic_long_t managed_pages; > > unsigned long spanned_pages; > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > > index af832de..e29e78f 100644 > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -122,9 +122,6 @@ > > }; > > EXPORT_SYMBOL(node_states); > > > > -/* Protect totalram_pages and zone->managed_pages */ > > -static DEFINE_SPINLOCK(managed_page_count_lock); > > - > > atomic_long_t _totalram_pages __read_mostly; > > unsigned long totalreserve_pages __read_mostly; > > unsigned long totalcma_pages __read_mostly; > > @@ -7062,14 +7059,12 @@ static int __init cmdline_parse_movablecore(char *p) > > > > void adjust_managed_page_count(struct page *page, long count) > > { > > - spin_lock(&managed_page_count_lock); > > atomic_long_add(count, &page_zone(page)->managed_pages); > > totalram_pages_add(count); > > #ifdef CONFIG_HIGHMEM > > if (PageHighMem(page)) > > totalhigh_pages_add(count); > > #endif > > - spin_unlock(&managed_page_count_lock); > > } > > EXPORT_SYMBOL(adjust_managed_page_count); > > > > -- > > 1.9.1 > > -- > Michal Hocko > SUSE Labs -- Michal Hocko SUSE Labs