From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA1E9C63798 for ; Wed, 28 Aug 2024 19:49:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 780356B0082; Wed, 28 Aug 2024 15:49:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 730446B0083; Wed, 28 Aug 2024 15:49:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5F77F6B0085; Wed, 28 Aug 2024 15:49:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 42B1A6B0082 for ; Wed, 28 Aug 2024 15:49:34 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id DB5DF12078D for ; Wed, 28 Aug 2024 19:49:33 +0000 (UTC) X-FDA: 82502693826.20.14E3C91 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf13.hostedemail.com (Postfix) with ESMTP id 2761020018 for ; Wed, 28 Aug 2024 19:49:32 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="bAqfn67/"; spf=pass (imf13.hostedemail.com: domain of akpm@linux-foundation.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724874551; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3bsIOC8PUA34HtokbEn19ggX4U+A+EQa8iv/kNJTfiY=; b=FncMhZkgtZz0wpp69yvu7VYbozrzfpbwZPWTjFT5Usbxmxr4xUV8pcCJtS43LpATm+w0tc XCStd9uPx3z6kGrM6bJMAMa2XOmDr+clOEdZ1jae5nM8NIswuRGfw7ohe/c3x2YAvbJpDw uTrCzX0VX0IOHKO3/hlufecQlsORiJc= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="bAqfn67/"; spf=pass (imf13.hostedemail.com: domain of akpm@linux-foundation.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724874551; a=rsa-sha256; cv=none; b=yWz7oQr+Q4kTtEMLN1JhLhEkpFh34/ZfnEutNUok0pr5/WH5iq1bGjm1neKs6HfLR2mENw PvIXykDX/6r25FEzexTjd4X8RPIS6ocC3YhvGIKzjVKvb4nKk9BvoVkpik4t5/d+oaLzSw CJCUkJX/nkPb7yQyyYap9sT02Kw5B5A= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 59C5CA425DC; Wed, 28 Aug 2024 19:49:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ADCF1C4CEC0; Wed, 28 Aug 2024 19:49:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1724874571; bh=uDcyA+6qAGpnE7k34XCBcDJUi1OcpU22jJPtmtYD+cE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=bAqfn67/dDcTgES+k7FqIUMgXnc/WDD1hNBIq5/avDt5Vbjx2Eoq+W1RAC9vJWQLP BCOIBFSfrDXHLxehVeIMf6qHDiDbAPhzt/a2QhbzGNHcQhMg6JAH9yzad/8E+6MvEx 9/pTw74pqILRUSjQNKKr3lef+Wn3S9aSiK4kuVPw= Date: Wed, 28 Aug 2024 12:49:29 -0700 From: Andrew Morton To: Mateusz Guzik Cc: muchun.song@linux.dev, dave@stgolabs.net, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] mm/hugetlb: sort out global lock annotations Message-Id: <20240828124929.db332259c2afad1e9e545b1f@linux-foundation.org> In-Reply-To: <20240828160704.1425767-1-mjguzik@gmail.com> References: <20240828160704.1425767-1-mjguzik@gmail.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Stat-Signature: q34b51n1dpi4py4xnqrrw7rmca5k6c8n X-Rspamd-Queue-Id: 2761020018 X-Rspamd-Server: rspam11 X-HE-Tag: 1724874571-959510 X-HE-Meta: U2FsdGVkX18kk9F9UzBxB8HamqsVDiEYuwGn81SL2QyIy0Nln8PbP8qgdjMEHt5app7+J4xKtAca+Zlsp5AzU5GZ2VjGGRlG1lufSL8g8RhZpmvnYhaIbp1HIO4jqJJnaQ22qc1gsMjv004wB6io9FZOFP0Ny1tcjPHaBRU/9whZjna+WcQF2OQeVJUuHpBWQRcPtHL8EWC61cBUmwswluro81GfHsflLEgwPAS/LO9u4xem+TB1Z3DjMPIfSkypN4l3NWzPMRPLpB1pnbO4aA0Sb1DCqvP5b/qRFVfCYZ++2jI8El+25Jy8Ym0tmxi9IvAU1CJc5h/06mStnVCNxvpKBm+QlCJwLAnRDzhbfra4OVL3221wDWqhcM8/KOhFKXytQiSbe++NhHYBXwi4XWlHAi6B9h00x62lYpFfw3ysqdEdT1yKedSbZCYIvFkBtnlWrja+njuB+MfTWg4K65jn7F3l6bh93JLvz/OCIJf3cKziuZlLY87MolJXMU5aSFIZenX9ll3RmR25yupeNltil+2ThqC78mZ1sQmo9sI/OGhbTQYFCJM1qOJVBmv34D569HlxR2eeroGsXPDcjs113UGcQrC/U5pWXIM4dZKPFpHovEdzo3hHR9WKJtoCC9nF2RWIyEu3k1to+g/6UGOjwSOBHQknqyUXrfrAMZTTiLcL3e4A2LxlSdWK/flTfYRsZiX9AysT/Uls2axJz6sPM+BSIrAMtORrAyzJAuvtdIAJlYAc3OmoZKkuvrB8l+oXs7cRfygQFKDzhTKD3Abv4RxuMO7b8v92X0v35eY1CMG0Sd1CrK11IRQGE+mTzaTgJjThiVottcvip9t1ojYtroHeYHgf2eWj49YWTAecGMd0rD6xMM84/krcoMOPDSoHr2iCjzhMwKtA1wTFUAsksvi2AAZniWJZ5ToaUe1YI8VR/dXiq0kSzpgSWXLMeUJb2oWD6S4zN8NGRHt 6aZnXAok b+bzP0ykgDMnjNBXcTDZT1EW0p+vWInLlOew26FivZxbX0t4O3mlWz3jZZ3Zi9Z5uf2eAuhG511xRMHut785BDVyPk4DZ+20f073f2pjGBbDaNvZuO8brxweptpaU3DrA99lyzF5Ig1/lKYNylFPARJSNrDUc8pDx/vB1XyRzTM16xvrdyxOEh26xKXXIs/B1asEXflJtgzmb8c1sMmZgsMqAn66GzuZ2TsmC+cEhpENc28PH9600oEtk8Q== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, 28 Aug 2024 18:07:04 +0200 Mateusz Guzik wrote: > The mutex array pointer shares a cacheline with the spinlock: > ffffffff84187480 B hugetlb_fault_mutex_table > ffffffff84187488 B hugetlb_lock Fair enough. My x86_64 defconfig now has num_fault_mutexes: .zero 4 .globl hugetlb_lock .section .data..cacheline_aligned,"aw" .align 64 .type hugetlb_lock, @object .size hugetlb_lock, 4 hugetlb_lock: .zero 4 .section .init.data .align 32 .type default_hugepages_in_node, @object .size default_hugepages_in_node, 256 default_hugepages_in_node: .zero 256 .type parsed_default_hugepagesz, @object .size parsed_default_hugepagesz, 1 which looks good. > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -72,14 +72,14 @@ static unsigned int default_hugepages_in_node[MAX_NUMNODES] __initdata; > * Protects updates to hugepage_freelists, hugepage_activelist, nr_huge_pages, > * free_huge_pages, and surplus_huge_pages. > */ > -DEFINE_SPINLOCK(hugetlb_lock); > +__cacheline_aligned_in_smp DEFINE_SPINLOCK(hugetlb_lock); > > /* > * Serializes faults on the same logical page. This is used to > * prevent spurious OOMs when the hugepage pool is fully utilized. > */ > -static int num_fault_mutexes; > -struct mutex *hugetlb_fault_mutex_table ____cacheline_aligned_in_smp; > +static __ro_after_init int num_fault_mutexes; > +__ro_after_init struct mutex *hugetlb_fault_mutex_table; It's conventional (within MM, at least) to put the section thing at the end of the definition, so tweak: --- a/mm/hugetlb.c~mm-hugetlb-sort-out-global-lock-annotations-fix +++ a/mm/hugetlb.c @@ -72,14 +72,14 @@ static unsigned int default_hugepages_in * Protects updates to hugepage_freelists, hugepage_activelist, nr_huge_pages, * free_huge_pages, and surplus_huge_pages. */ -__cacheline_aligned_in_smp DEFINE_SPINLOCK(hugetlb_lock); +DEFINE_SPINLOCK(hugetlb_lock) __cacheline_aligned_in_smp; /* * Serializes faults on the same logical page. This is used to * prevent spurious OOMs when the hugepage pool is fully utilized. */ -static __ro_after_init int num_fault_mutexes; -__ro_after_init struct mutex *hugetlb_fault_mutex_table; +static int num_fault_mutexes __ro_after_init; +struct mutex *hugetlb_fault_mutex_table __ro_after_init; /* Forward declaration */ static int hugetlb_acct_memory(struct hstate *h, long delta); _