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 97D83C3DA4A for ; Mon, 29 Jul 2024 04:51:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1BB7D6B00A1; Mon, 29 Jul 2024 00:51:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 16D036B00A2; Mon, 29 Jul 2024 00:51:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 033DB6B00A4; Mon, 29 Jul 2024 00:51:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id DA3246B00A1 for ; Mon, 29 Jul 2024 00:51:50 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 9BBC4160325 for ; Mon, 29 Jul 2024 04:51:50 +0000 (UTC) X-FDA: 82391567580.08.1375E46 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf09.hostedemail.com (Postfix) with ESMTP id 51364140017 for ; Mon, 29 Jul 2024 04:51:48 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=VLz7vnJI; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=82ZFy6vm; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=VLz7vnJI; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=82ZFy6vm; spf=pass (imf09.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=osalvador@suse.de; dmarc=pass (policy=none) header.from=suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1722228655; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=GMAZjehoO29HQoqXjdysHaghsK50aOmzflUJmNQYR/g=; b=Dx0ZgkbI7PvAb42jXljICI0qyOZqKQ/aFIjiySIeadv3JWFmQ8MvR51HBpI1fq+izxJwEi 4rGdTPo8IuPl2GX6BSVkgfFMtPp2an5yQBLONxzDQ/iEnG69oJDbYSP2ye6boZGp2dvoaq lEgi7QZzKmXLSBQwCAGxBBhWRprlOJc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722228655; a=rsa-sha256; cv=none; b=GRNnO92bWcbuLv0FhJ2Gm3UgGJfJ3PH3vMVGOE+jL8wrT53dLtdwfRveGM119byz25tECc ZxFzdwulr2cjB7Hr+oK0DmG13Y74omKUUaNxIm59C2WSkn652IVERARBI1u//9F3/c2QG9 /XsUyH1dHJC0F6vEGogqLGPTtLlgHfs= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=VLz7vnJI; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=82ZFy6vm; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=VLz7vnJI; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=82ZFy6vm; spf=pass (imf09.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.130 as permitted sender) smtp.mailfrom=osalvador@suse.de; dmarc=pass (policy=none) header.from=suse.de Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 5B78621AFC; Mon, 29 Jul 2024 04:51:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1722228706; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=GMAZjehoO29HQoqXjdysHaghsK50aOmzflUJmNQYR/g=; b=VLz7vnJIKV0eiJCERYr4DeiQf3TTVYc2ot+aem/eVLPsGzlREl1wPhiqR3xsUsb768sflV d21vHXpLyDL3rcsF7viCCe/R41z2ayDc9OEScSezdAsG/uEKCCUCcnyAIH/Jtj5dDwTQ+C EPmO5KBni+PyXLToZtG2gn9JhShN2dg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1722228706; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=GMAZjehoO29HQoqXjdysHaghsK50aOmzflUJmNQYR/g=; b=82ZFy6vmLYogQY87I9dVuW6Wip6844LrQ3Io3fy5tzgv3JbOIZzlKpsAKhSPO/zHxvTUR5 AyW3Fc4d1V/HeaDg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1722228706; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=GMAZjehoO29HQoqXjdysHaghsK50aOmzflUJmNQYR/g=; b=VLz7vnJIKV0eiJCERYr4DeiQf3TTVYc2ot+aem/eVLPsGzlREl1wPhiqR3xsUsb768sflV d21vHXpLyDL3rcsF7viCCe/R41z2ayDc9OEScSezdAsG/uEKCCUCcnyAIH/Jtj5dDwTQ+C EPmO5KBni+PyXLToZtG2gn9JhShN2dg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1722228706; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=GMAZjehoO29HQoqXjdysHaghsK50aOmzflUJmNQYR/g=; b=82ZFy6vmLYogQY87I9dVuW6Wip6844LrQ3Io3fy5tzgv3JbOIZzlKpsAKhSPO/zHxvTUR5 AyW3Fc4d1V/HeaDg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 6A2A91368A; Mon, 29 Jul 2024 04:51:45 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id JuF2E+Efp2auPQAAD6G6ig (envelope-from ); Mon, 29 Jul 2024 04:51:45 +0000 Date: Mon, 29 Jul 2024 06:51:39 +0200 From: Oscar Salvador To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Muchun Song , Peter Xu , stable@vger.kernel.org Subject: Re: [PATCH v1 2/2] mm/hugetlb: fix hugetlb vs. core-mm PT locking Message-ID: References: <20240725183955.2268884-1-david@redhat.com> <20240725183955.2268884-3-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240725183955.2268884-3-david@redhat.com> X-Rspamd-Action: no action X-Stat-Signature: srkywnnzi6kifarnzeprnw7n1po63kgn X-Rspamd-Queue-Id: 51364140017 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1722228708-914457 X-HE-Meta: U2FsdGVkX19DamZJz76TwhcT9kE2Bv8F7QF3nzkaw5U9w3zJ1ZkDMMBxJfrtjYMIAWx2y5IBtVAF/88Hgg57v8bvUBu0f5/qwd0Ereih/Tye4oAP+NzhcX3U0F5x8rCHl85mih+WGh7Xyz0EE55iHFJhOYt1lZPwKcXMeXkqRgkCCFut4qZaQRq1U2CEfkHNvUJWn2DRFqQaS7LKLul+/Ttf1w2sGhIdF/UBjf1CQ08SyXFDviw6kcWVmCU0kFiM8xaceJSHij4V4X40s/GOEH4dyK8mBkjfKluHpOV4PjB6Zs5ho+THpu4s7kf1dhZqD/YyeFvI7liaGTaknjcpiuzMKcPtkBvi3flQFVNqx6jqdRnelQXVpZyVrzkN5+jzksZ+20NlgBUa4Npc/ZvjlKwzutC1EHoEMM+ZZuNfcyCuPmNtEmU6VRLaKzwDmzI9fiezzCZGg75LMG9KVHBw4pTTTrYU/RYVZZl2tLygk0wZoA0lHRLkO+aL+j4cnKJFkXteVRqLLa0Pcdrz7u1CTCpOtuJxhd1qjoS9H7u7vhw66gO9jjeSpKt+ZqPm9yVHbT4C8XGZNFVsfEqtfc02suYCSZapHUDd1l7H1NEM1OxrbQnhfvvO7yHHWfEL/LhCVT7cLWHYnuWf44ehPM8zjNWi1rdXu/DEleUswe1B2oIEf2w6Yn3Q5X5fIfMhiPjA6nbuz27+8jFRZO1axKvnxB0D6citJX3s/L3bHh8V+V1H1Aj1hDHFNN8mjv1RB4StSdjXJNSr/34b94AG0gWxLcHQYkgn1N2aGE1mrH05xxAYeryOKLbXBlsiN09Ft58B+mblL0x1mM24m7c/ikekKL5UiwwbhUul5pOqijxz3WC3YniZZ8rgAns+1w0yWc+ldFlF0WlnRkePw/2QVQo8pRWhsIphAKAEFiNwpokYxFvbW7uWgQxON7oTm2/B3bFTCg0aswyBy24eXvEwkzi EgfLRKDJ 3codebCilc7RI9wDV+2Y9jsqiBWGkLrzyboYcJMmAd/Vgh3/hDu58uGF+r8HFnJLTsjl5TzB7pfVe8c71V6JGJ20BrS3CaBvzn0xiig2+W78XZ7fwwHP3kIyBp7ZwDIZQDHGhfTSmlqcDtiKGzMiGo3WnD6BGyf6TUs0zzF78bA01ss/AVRUzm+kGrUQ1kRZuH7E4OOK85AgeOhV+RXETImenhcViNKgAg6onWMvsQOBkC1gnuDmHSR4Z0ACDvzntwonWhMCpTLJZWD8XQwHEuVQFWOBj/uHdMeLeXNR/89iSRhewfLBkt0yGHDmmB0Cukq8I 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 Thu, Jul 25, 2024 at 08:39:55PM +0200, David Hildenbrand wrote: > We recently made GUP's common page table walking code to also walk > hugetlb VMAs without most hugetlb special-casing, preparing for the > future of having less hugetlb-specific page table walking code in the > codebase. Turns out that we missed one page table locking detail: page > table locking for hugetlb folios that are not mapped using a single > PMD/PUD. > > Assume we have hugetlb folio that spans multiple PTEs (e.g., 64 KiB > hugetlb folios on arm64 with 4 KiB base page size). GUP, as it walks the > page tables, will perform a pte_offset_map_lock() to grab the PTE table > lock. > > However, hugetlb that concurrently modifies these page tables would > actually grab the mm->page_table_lock: with USE_SPLIT_PTE_PTLOCKS, the > locks would differ. Something similar can happen right now with hugetlb > folios that span multiple PMDs when USE_SPLIT_PMD_PTLOCKS. > > Let's make huge_pte_lockptr() effectively uses the same PT locks as any > core-mm page table walker would. > > There is one ugly case: powerpc 8xx, whereby we have an 8 MiB hugetlb > folio being mapped using two PTE page tables. While hugetlb wants to take > the PMD table lock, core-mm would grab the PTE table lock of one of both > PTE page tables. In such corner cases, we have to make sure that both > locks match, which is (fortunately!) currently guaranteed for 8xx as it > does not support SMP. > > Fixes: 9cb28da54643 ("mm/gup: handle hugetlb in the generic follow_page_mask code") > Cc: > Signed-off-by: David Hildenbrand Reviewed-by: Oscar Salvador -- Oscar Salvador SUSE Labs