Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933265AbbD2QLQ (ORCPT ); Wed, 29 Apr 2015 12:11:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47019 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933223AbbD2QLP (ORCPT ); Wed, 29 Apr 2015 12:11:15 -0400 Message-ID: <5541029C.60207@redhat.com> Date: Wed, 29 Apr 2015 18:11:08 +0200 From: Jerome Marchand User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: "Kirill A. Shutemov" , Andrew Morton , Andrea Arcangeli , Hugh Dickins CC: Dave Hansen , Mel Gorman , Rik van Riel , Vlastimil Babka , Christoph Lameter , Naoya Horiguchi , Steve Capper , "Aneesh Kumar K.V" , Johannes Weiner , Michal Hocko , Sasha Levin , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCHv5 16/28] mm, thp: remove compound_lock References: <1429823043-157133-1-git-send-email-kirill.shutemov@linux.intel.com> <1429823043-157133-17-git-send-email-kirill.shutemov@linux.intel.com> In-Reply-To: <1429823043-157133-17-git-send-email-kirill.shutemov@linux.intel.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="RASj1PwBrQ8btWvopfh4g1jPWTkiUJ3BL" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4969 Lines: 155 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --RASj1PwBrQ8btWvopfh4g1jPWTkiUJ3BL Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 04/23/2015 11:03 PM, Kirill A. Shutemov wrote: > We are going to use migration entries to stabilize page counts. It mean= s By "stabilize" do you mean "protect" from concurrent access? I've seen that you use the same term in seemingly the same sense several times (at least in patches 15, 16, 23, 24 and 28). Jerome > we don't need compound_lock() for that. >=20 > Signed-off-by: Kirill A. Shutemov > Tested-by: Sasha Levin > --- > include/linux/mm.h | 35 ----------------------------------- > include/linux/page-flags.h | 12 +----------- > mm/debug.c | 3 --- > 3 files changed, 1 insertion(+), 49 deletions(-) >=20 > diff --git a/include/linux/mm.h b/include/linux/mm.h > index dd1b5f2b1966..dad667d99304 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -393,41 +393,6 @@ static inline int is_vmalloc_or_module_addr(const = void *x) > =20 > extern void kvfree(const void *addr); > =20 > -static inline void compound_lock(struct page *page) > -{ > -#ifdef CONFIG_TRANSPARENT_HUGEPAGE > - VM_BUG_ON_PAGE(PageSlab(page), page); > - bit_spin_lock(PG_compound_lock, &page->flags); > -#endif > -} > - > -static inline void compound_unlock(struct page *page) > -{ > -#ifdef CONFIG_TRANSPARENT_HUGEPAGE > - VM_BUG_ON_PAGE(PageSlab(page), page); > - bit_spin_unlock(PG_compound_lock, &page->flags); > -#endif > -} > - > -static inline unsigned long compound_lock_irqsave(struct page *page) > -{ > - unsigned long uninitialized_var(flags); > -#ifdef CONFIG_TRANSPARENT_HUGEPAGE > - local_irq_save(flags); > - compound_lock(page); > -#endif > - return flags; > -} > - > -static inline void compound_unlock_irqrestore(struct page *page, > - unsigned long flags) > -{ > -#ifdef CONFIG_TRANSPARENT_HUGEPAGE > - compound_unlock(page); > - local_irq_restore(flags); > -#endif > -} > - > /* > * The atomic page->_mapcount, starts from -1: so that transitions > * both from it and to it can be tracked, using atomic_inc_and_test > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > index 91b7f9b2b774..74b7cece1dfa 100644 > --- a/include/linux/page-flags.h > +++ b/include/linux/page-flags.h > @@ -106,9 +106,6 @@ enum pageflags { > #ifdef CONFIG_MEMORY_FAILURE > PG_hwpoison, /* hardware poisoned page. Don't touch */ > #endif > -#ifdef CONFIG_TRANSPARENT_HUGEPAGE > - PG_compound_lock, > -#endif > __NR_PAGEFLAGS, > =20 > /* Filesystems */ > @@ -683,12 +680,6 @@ static inline void ClearPageSlabPfmemalloc(struct = page *page) > #define __PG_MLOCKED 0 > #endif > =20 > -#ifdef CONFIG_TRANSPARENT_HUGEPAGE > -#define __PG_COMPOUND_LOCK (1 << PG_compound_lock) > -#else > -#define __PG_COMPOUND_LOCK 0 > -#endif > - > /* > * Flags checked when a page is freed. Pages being freed should not h= ave > * these flags set. It they are, there is a problem. > @@ -698,8 +689,7 @@ static inline void ClearPageSlabPfmemalloc(struct p= age *page) > 1 << PG_private | 1 << PG_private_2 | \ > 1 << PG_writeback | 1 << PG_reserved | \ > 1 << PG_slab | 1 << PG_swapcache | 1 << PG_active | \ > - 1 << PG_unevictable | __PG_MLOCKED | __PG_HWPOISON | \ > - __PG_COMPOUND_LOCK) > + 1 << PG_unevictable | __PG_MLOCKED | __PG_HWPOISON ) > =20 > /* > * Flags checked when a page is prepped for return by the page allocat= or. > diff --git a/mm/debug.c b/mm/debug.c > index 3eb3ac2fcee7..9dfcd77e7354 100644 > --- a/mm/debug.c > +++ b/mm/debug.c > @@ -45,9 +45,6 @@ static const struct trace_print_flags pageflag_names[= ] =3D { > #ifdef CONFIG_MEMORY_FAILURE > {1UL << PG_hwpoison, "hwpoison" }, > #endif > -#ifdef CONFIG_TRANSPARENT_HUGEPAGE > - {1UL << PG_compound_lock, "compound_lock" }, > -#endif > }; > =20 > static void dump_flags(unsigned long flags, >=20 --RASj1PwBrQ8btWvopfh4g1jPWTkiUJ3BL Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJVQQKcAAoJEHTzHJCtsuoCqAYH+wREHT26pjunMcFq9mEt8Ugg r25N+EVlCNGa4/opsLRk9EeUqPtrDNsvSAYtN3gM0FUh9+HjeQZitJlDsWLlvW+k KgwPEMe6g+TwGYNcPaQDmLreeGVoiaLtFcCVJ/U5Sr2jTa7q4+Fe2DEkHBKu8KzW +TQz5h+VqWLt9xcLPD7WgrSWRbdlEqGtb1CrGoRBINO+Yyz04qiGQn+AAF/L5csr D0m4+HZM0ZdGi8/ORTzMZnxwZQ4gLBMNfkZVIQAkFmsMgo/0H4YAt5sLSCGfjUP8 M/pYTkVbwuzxVMtJTgffp+7+vlKl2DLEBUC/j6Smj4sudSF7baKcmGlY7F3mLSc= =dY0Y -----END PGP SIGNATURE----- --RASj1PwBrQ8btWvopfh4g1jPWTkiUJ3BL-- -- 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/