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 571C5ECAAD8 for ; Thu, 22 Sep 2022 22:27:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6C1BA940008; Thu, 22 Sep 2022 18:27:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 67153940007; Thu, 22 Sep 2022 18:27:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5612C940008; Thu, 22 Sep 2022 18:27:38 -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 49461940007 for ; Thu, 22 Sep 2022 18:27:38 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 225B11C60B5 for ; Thu, 22 Sep 2022 22:27:38 +0000 (UTC) X-FDA: 79941159396.17.D571328 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by imf11.hostedemail.com (Postfix) with ESMTP id CE78C40010 for ; Thu, 22 Sep 2022 22:27:37 +0000 (UTC) Received: by mail-pl1-f202.google.com with SMTP id c7-20020a170902d48700b00176be258f23so6883695plg.15 for ; Thu, 22 Sep 2022 15:27:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date; bh=8YMUL0FVa0sCN4hYRBkAR0GdFJKGFJDxy7cfh2Ku00M=; b=GxCIgKXXof+Nc1T7aMheFo24jSTlAdUYLhlUKLMmXR9+ICGxw8zXQNfk4c9o8Yjbu/ EkPViSyrifR793cxS4Bd8v0nEluyg1/KF2cq6Xh9VPXt8cGYgk5grLxVZfI8z9hiRLcZ bRnqMG9fYuLLci+nUUBsrqofMFDXfIQtGHX4aJRTGSdJaTNh9f7FXJGgxESBC4WmY1XK YYZT/Gdz5c03KrCIcK1aIAj5bJgKYZkMD6i67rsdLG6UR7SdnaLTE++TcwgU6W7sMto3 dJ3CSx2Vhb4Xir3k/4rRT11Ap6YReg5Mya5TuuBAa1KyQFItwzsEjAPmHuqIyMhZrwRj gv9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date; bh=8YMUL0FVa0sCN4hYRBkAR0GdFJKGFJDxy7cfh2Ku00M=; b=Cf+hItX49kfaxCzFfouDWESY9JGTcO7brzlacG8XRPalQdDZqTxCGxMJtIliijEjMt NGNwR63Q8wfbmvP3x4/98r3jt3xfJPGTkRlemB78l7KOgyblZK1IEbtwIk9d/E2yKf02 M/MnvYf+K7l2xpx9e4nB21M/Bare3SQh5GnvqJor8Yekz1udBNq93l7i28h9MIYw6YxJ 1y1ChzNdwTq8Grr1hoyQ+VQVQ8gjEg2oyHkd7Imgbu4OkJKq9rStgwqb9Y3stjhbbzpO UMjTDCCwJaufZIJ6Hle5VTWTi9aM16PY3h8ZO3tyI1MFiR9L0g3Vdl39O+cteupT7uu3 YzQg== X-Gm-Message-State: ACrzQf1try+np8siv2Iw0tNJY+6fPOmumLfOvgQHHA88wqaAyy+O5h35 J0Rf3mT1KdvRPPaAD0gXIYNTziSLLYfA X-Google-Smtp-Source: AMsMyM4lz4LngwtW5bKeatn9p8mkBaH92oP8GzZIeoNt2yae7aJwr1RNyAlkEhH5fioM7BgDFYlKSflSmZDi X-Received: from zokeefe3.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:1b6]) (user=zokeefe job=sendgmr) by 2002:a17:90b:3ec9:b0:203:27a3:166f with SMTP id rm9-20020a17090b3ec900b0020327a3166fmr17514011pjb.109.1663885656516; Thu, 22 Sep 2022 15:27:36 -0700 (PDT) Date: Thu, 22 Sep 2022 15:27:31 -0700 Mime-Version: 1.0 X-Mailer: git-send-email 2.37.3.998.g577e59143f-goog Message-ID: <20220922222731.1124481-1-zokeefe@google.com> Subject: [PATCH v2] mm/khugepaged: check compound_order() in collapse_pte_mapped_thp() From: "Zach O'Keefe" To: Andrew Morton Cc: linux-mm@kvack.org, Yang Shi , "Zach O'Keefe" Content-Type: text/plain; charset="UTF-8" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1663885657; 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: references:dkim-signature; bh=8YMUL0FVa0sCN4hYRBkAR0GdFJKGFJDxy7cfh2Ku00M=; b=sPi3UqqlbjoLuLiu9SwdApJAhrjQj0//skYxounyj482XbOX/eKjkAmxDNUpFdnLZhzXis SQ83E7/UIP0AxH0+VfLUS6YurKldKWjxkVv6Ie1FMY1Xzww7j4J49wvRtx9CMS7O8/xSTI sKBGZ0OMWclIBenCTZeH32V9tdm3Hao= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=GxCIgKXX; spf=pass (imf11.hostedemail.com: domain of 3WOEsYwcKCO0odZTTUTVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--zokeefe.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3WOEsYwcKCO0odZTTUTVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--zokeefe.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1663885657; a=rsa-sha256; cv=none; b=b44wk0v3Cwra5gTYUlGX2GzwtNHrwSBQbaoTJXeb4f0h9IAe98WzoLejDBMBjse3MHOEce 6LsD302AGMPWq3cGd4Wtqak0BvmWYlEl6yG36NlRJGwXmlwvuFpTsrhEW7HU07yYa5DCqe 7i5VlMbb8K7vkhBLmGw/S/Q8lk3+t94= Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=GxCIgKXX; spf=pass (imf11.hostedemail.com: domain of 3WOEsYwcKCO0odZTTUTVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--zokeefe.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3WOEsYwcKCO0odZTTUTVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--zokeefe.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com X-Rspam-User: X-Stat-Signature: qeqkpf5k86tbd9nh1fyctp3ty3nyxq6d X-Rspamd-Queue-Id: CE78C40010 X-Rspamd-Server: rspam07 X-HE-Tag: 1663885657-70264 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: By the time we lock a page in collapse_pte_mapped_thp(), the page mapped by the address pushed onto the slot's .pte_mapped_thp[] array might have changed arbitrarily since we last looked at it. We revalidate that the page is still the head of a compound page, but we don't revalidate if the compound page is of order HPAGE_PMD_ORDER before applying rmap and page table updates. Since the kernel now supports large folios of arbitrary order, and since replacing page's pte mappings by a pmd mapping only makes sense for compound pages of order HPAGE_PMD_ORDER, revalidate that the compound order is indeed of order HPAGE_PMD_ORDER before proceeding. Link: https://lore.kernel.org/linux-mm/CAHbLzkon+2ky8v9ywGcsTUgXM_B35jt5NThYqQKXW2YV_GUacw@mail.gmail.com/ Suggested-by: Yang Shi Signed-off-by: Zach O'Keefe --- mm/khugepaged.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 57af2c841b41..40fd9f7b3ed3 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1399,6 +1399,9 @@ void collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr) if (!PageHead(hpage)) goto drop_hpage; + if (compound_order(hpage) != HPAGE_PMD_ORDER) + goto drop_hpage; + if (find_pmd_or_thp_or_none(mm, haddr, &pmd) != SCAN_SUCCEED) goto drop_hpage; -- 2.37.3.998.g577e59143f-goog