From patchwork Tue Jun 11 15:32:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Bresticker X-Patchwork-Id: 13693929 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 8B742C27C77 for ; Tue, 11 Jun 2024 15:32:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 04CF16B00A6; Tue, 11 Jun 2024 11:32:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F3EE36B00A8; Tue, 11 Jun 2024 11:32:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E07126B00AB; Tue, 11 Jun 2024 11:32:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id C2A6A6B00A6 for ; Tue, 11 Jun 2024 11:32:25 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 67CE6121577 for ; Tue, 11 Jun 2024 15:32:25 +0000 (UTC) X-FDA: 82218999450.19.6FBACA1 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) by imf09.hostedemail.com (Postfix) with ESMTP id 606FF140031 for ; Tue, 11 Jun 2024 15:32:23 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=RiCMzAMv; spf=pass (imf09.hostedemail.com: domain of abrestic@rivosinc.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=abrestic@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718119943; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=4WBSjvhJreTEtepRDQegBl7/h1bqM/BuRQ3shzErAR0=; b=Mf8K3lKs2azH9imGpMqnO96AtBiSuhsbCm0Fe271psAlA5LCfQ/UPVnAmTVEM76gkEqqPI DcmuYHYOcpDaGcaqUiKnL2xrf9aEgz9BLFDLIRb1HOFngeDvz2JhlJ9FVRLXH4aiPOYZW1 FUZrD11fj6l/GWsk1r98T1ktgJrwhsw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718119943; a=rsa-sha256; cv=none; b=uU4/YPTmj84AYcy6gUBWHo13VyNRaeAOvz+lLi6EFDvVYuMSC3nDsKDKhJ/3OqhPR5M3Eg NkveFP8p0cFBa1TfHANB6mXEIN3TmeZkrELvjujZznhHHUL0YDsWcnR8DUu319OD3aUwzA EhzPO2JL8TR1oVEAsd6xod5vG7tVnOE= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=RiCMzAMv; spf=pass (imf09.hostedemail.com: domain of abrestic@rivosinc.com designates 209.85.210.176 as permitted sender) smtp.mailfrom=abrestic@rivosinc.com; dmarc=none Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-70436ac872aso1192326b3a.1 for ; Tue, 11 Jun 2024 08:32:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1718119942; x=1718724742; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=4WBSjvhJreTEtepRDQegBl7/h1bqM/BuRQ3shzErAR0=; b=RiCMzAMvm8oQFYeNBV5gCaIx7s8Q8hubWhZ05Jos5qvNHSLvI9yFcxiDbZLBBGF6/4 Baz7ifHs9hZP54x8tAf5TriHBF/NkjG3BACIZtU2xYzog+vCB82tIIQgZwEGWRJ6/LUs 572AeW3enzZRXjo79dDVOVilJIQM5jlGFtW90FgQWquM4iWW5GKPd/DLOgBs9ZREfs6M IH9KTSusvFnueoLJDHahdoBd9hKeCnyPGYk6JxBPFbQHecTLLCC9IOxGXBMfk6FJsRnW BMPzcSoDFFIO6m9CNT05AaXSx3og2Dxuvgg6ndxeqCoj7uRlTIMLEqDT299o2iDbHtW0 kg1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718119942; x=1718724742; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=4WBSjvhJreTEtepRDQegBl7/h1bqM/BuRQ3shzErAR0=; b=E79Iszc+Ud/r5GICgrIc2c9BpceKh0zXyR6f6+nYpwDKHOeShaYP/rONt28wz7jbAL j1ktv2LlURQFcjJcr+lr2zQ/EDTZOVCWoZ6mvy3szf641jdtP7Krtb4wvDGQYjNtE9zF g50wCeDcioa4ZgIJm8Yb1b9js1ni3mjiyRb1juVw4rs79HyCN6evv+XQWmVd5awWFVuM uQVj1hV2NgdMwUps4IZW5XdqAWumrawUTAeWSenFyRb6fADi7zLQBD2HzScgFAD9sHI9 w8EXOONnFnAW9/OYZQ7v8pKrd/4+Pz1t4izde/9hnUI4XvzT4bidP+rrc6iF0EImnE+t pFEw== X-Gm-Message-State: AOJu0YxGIeaDBaoPw3+6K9dqST1JDJsbEBVfZnh6uakx8XSaYNxgj+BH osSjionaVnxu5llWNhaPW5I68QVMJhMx7EJSeTvFGypfuoonFTf1oJflTk0qI0JxJVTT2KloANp M X-Google-Smtp-Source: AGHT+IGhdVFCWkzP2rSxEhKbT7GEv+zjGYeBIK0VmSu9eFx7L6rNmuaj3x/L3YiOdz87JL0HvO5Q5A== X-Received: by 2002:a05:6a20:da86:b0:1b8:44af:daba with SMTP id adf61e73a8af0-1b844afdb4bmr4717767637.31.1718119942024; Tue, 11 Jun 2024 08:32:22 -0700 (PDT) Received: from abrestic.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-704173684d1sm7094364b3a.166.2024.06.11.08.32.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jun 2024 08:32:21 -0700 (PDT) From: Andrew Bresticker To: Andrew Morton , David Hildenbrand Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Bresticker Subject: [PATCH v2] mm/memory: Don't require head page for do_set_pmd() Date: Tue, 11 Jun 2024 08:32:16 -0700 Message-Id: <20240611153216.2794513-1-abrestic@rivosinc.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Stat-Signature: 8pbhtysg5x5on4qxzsk3zgaaqjptbzcg X-Rspamd-Queue-Id: 606FF140031 X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1718119943-855736 X-HE-Meta: U2FsdGVkX19IBdKZqIM9QeG8c7R20K92AuusTBMPaXTFNQueF6XvRp/adInmpbHCjxOsH3i6gZhF4+KpMXVdDhQJr9kFrh28owPakn9cpE4lzYxzsL9K+OdZz08MJdTNMk3i0Ap7Kvl4RKzSNwbJUlc7DeefvKkapItzeLkW+9otZ6StNqgthdC3Pt/1aMm57bUgDxuWaP1C1OopZ0evcN6JcI+LV2d+5VLKZeZEw0UIpMaS1hhcLMJk2o1lmvd9vWTqQiWUfrNdqpHGykE6Aigx43FrIpckJtT4mtA0uoaZtupjr7v7KBZuwsMPbZI6OmH0P+avluCSHCGSKrcn7vffzvdOmhg0FMoQAwcKCD/UeGXfmRVMVWLjB7VEB8DL7wFBQfYOh3go9t448XR/Qw0YR5ulgFkdZ7NjuymBk140wWeD0kq05VMjkJcC55H975x5zLK31szaaCljh8XnFcXHyyvahECEHaq6XC4AgYBfP+Bt+SRYCQ/rGLR5diMg/23BJMuZmh5/75IvtygyD70xlVVBcdnnmVjL9PfzRW7uaH67LUfkvtKPoqn5MoD+JL533nmtpHuBL0PjhQQhxMBqeuJY2tPdy0dI5F8NU2rD8FUJG8PaAKHhuffG0BCcRPUq1Xq03xMu+h30T4gjmQ3kJ9E4FBN8FE5uASncZEGinXzNYXfGxxBDXIJ+FFsyDoJnsZ9q2MXJJFfFE8PFr+6Sj4aJhw3N8TpwUglDN8AFmzz27i1xIyv2o5BKGXbNR7+lvZtTUr3oSpJVj6kTwOfUH20sKa3LTxYJWlNJJ/PpWGt/7r+gFd6ARqzx2rn/xWbx9txt02VAmxs33BZIqXTXoWF5sSzbY7FkWDOfGpRnUfULrY4kCOKmnkTsC3YD7w7NufWn2iFhAz5xTjtFLQ8D0kTOHyuzRdtnk4vPAiDqKfYvURJZMYi017DjOju3JBZAAEMImnJqzCXaJZR tXG1z1lX QiiNfWhgy4A6kAQorw+zVMieqwna7v7yNX1n07qE8IJzFTK4fsm5Ikl4OyG63/wkdj1xynFpGqg6auTiDOC5mq1uEit5QmzhY3aFy3hx/MLI9tFw2ssg8eW5Ij+SBx0X5UcfOgOhPLIiXh23Xg1dr8zljBR3Zmm5KeJzfjwC+6fTsrzStOflC4ftorl63ITACIeitO5NFi7KwTYBMHbIHwRQ3P/bGMrn5Qu1r1357Jekj/4x1IEfgov3wDnprMy31DcTbSS8s32WHrJ5X+htlypAbpIw622OLYU+ArGxmOIHwe3/YEU+6SWmzjEs86hXzdve0hb/DBj/onDZuo/IBqQkwBwf1tzW+kZNww4RTIlBeB+yzdffCm7Jri2HrwUkGavl2qvuicPn4t0Hela+sYwHOIQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000006, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: The requirement that the head page be passed to do_set_pmd() was added in commit ef37b2ea08ac ("mm/memory: page_add_file_rmap() -> folio_add_file_rmap_[pte|pmd]()") and prevents pmd-mapping in the finish_fault() and filemap_map_pages() paths if the page to be inserted is anything but the head page for an otherwise suitable vma and pmd-sized page. Fixes: ef37b2ea08ac ("mm/memory: page_add_file_rmap() -> folio_add_file_rmap_[pte|pmd]()") Signed-off-by: Andrew Bresticker Acked-by: David Hildenbrand Acked-by: Hugh Dickins --- mm/memory.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/memory.c b/mm/memory.c index 0f47a533014e..a1fce5ddacb3 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4614,8 +4614,9 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) if (!thp_vma_suitable_order(vma, haddr, PMD_ORDER)) return ret; - if (page != &folio->page || folio_order(folio) != HPAGE_PMD_ORDER) + if (folio_order(folio) != HPAGE_PMD_ORDER) return ret; + page = &folio->page; /* * Just backoff if any subpage of a THP is corrupted otherwise