Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932739AbcC3I3r (ORCPT ); Wed, 30 Mar 2016 04:29:47 -0400 Received: from mx2.suse.de ([195.135.220.15]:40394 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932564AbcC3I3p (ORCPT ); Wed, 30 Mar 2016 04:29:45 -0400 Subject: Re: [PATCH v2 2/2] mm: rename _count, field of the struct page, to _refcount To: Joonsoo Kim , Andrew Morton References: <1459146601-11448-1-git-send-email-iamjoonsoo.kim@lge.com> <1459146601-11448-2-git-send-email-iamjoonsoo.kim@lge.com> <56FA4A93.6090502@suse.cz> <20160329122313.3c24964faab99f46c960b19b@linux-foundation.org> <20160330082701.GG1678@js1304-P5Q-DELUXE> Cc: Hugh Dickins , Johannes Berg , "David S. Miller" , Sunil Goutham , Chris Metcalf , linux-mm@kvack.org, linux-kernel@vger.kernel.org From: Vlastimil Babka Message-ID: <56FB8E76.50005@suse.cz> Date: Wed, 30 Mar 2016 10:29:42 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0 MIME-Version: 1.0 In-Reply-To: <20160330082701.GG1678@js1304-P5Q-DELUXE> Content-Type: text/plain; charset=windows-1252; 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: 2244 Lines: 45 On 03/30/2016 10:27 AM, Joonsoo Kim wrote: > On Tue, Mar 29, 2016 at 12:23:13PM -0700, Andrew Morton wrote: >> On Tue, 29 Mar 2016 11:27:47 +0200 Vlastimil Babka wrote: >> >>>> v2: change more _count usages to _refcount >>> >>> There's also >>> Documentation/vm/transhuge.txt talking about ->_count >>> include/linux/mm.h: * requires to already have an elevated page->_count. >>> include/linux/mm_types.h: * Keep _count separate from slub cmpxchg_double data. >>> include/linux/mm_types.h: * slab_lock but _count is not. >>> include/linux/pagemap.h: * If the page is free (_count == 0), then _count is untouched, and 0 >>> include/linux/pagemap.h: * is returned. Otherwise, _count is incremented by 1 and 1 is returned. >>> include/linux/pagemap.h: * this allows allocators to use a synchronize_rcu() to stabilize _count. >>> include/linux/pagemap.h: * Remove-side that cares about stability of _count (eg. reclaim) has the >>> mm/huge_memory.c: * tail_page->_count is zero and not changing from under us. But >>> mm/huge_memory.c: /* Prevent deferred_split_scan() touching ->_count */ >>> mm/internal.h: * Turn a non-refcounted page (->_count == 0) into refcounted with >>> mm/page_alloc.c: bad_reason = "nonzero _count"; >>> mm/page_alloc.c: bad_reason = "nonzero _count"; >>> mm/page_alloc.c: * because their page->_count is zero at all time. >>> mm/slub.c: * as page->_count. If we assign to ->counters directly >>> mm/slub.c: * we run the risk of losing updates to page->_count, so >>> mm/vmscan.c: * load is not satisfied before that of page->_count. >>> mm/vmscan.c: * The downside is that we have to touch page->_count against each page. >>> >>> I've arrived at the following command to find this: >>> git grep "[^a-zA-Z0-9_]_count[^_]" >>> >>> Not that many false positives in the output :) >> >> >> From: Andrew Morton >> Subject: mm-rename-_count-field-of-the-struct-page-to-_refcount-fix >> >> fix comments, per Vlastimil > > Andrew and Vlastimil, great thanks! Thanks, Andrew. That leaves just Documentation/vm/transhuge.txt to you, Joonsoo :) > Thanks. >