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 B5670C54EE9 for ; Thu, 22 Sep 2022 22:17:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C3CB5940009; Thu, 22 Sep 2022 18:17:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BEBE7940007; Thu, 22 Sep 2022 18:17:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AB432940009; Thu, 22 Sep 2022 18:17:51 -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 9BA68940007 for ; Thu, 22 Sep 2022 18:17:51 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 6C894AB169 for ; Thu, 22 Sep 2022 22:17:51 +0000 (UTC) X-FDA: 79941134742.10.CF6979F Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) by imf28.hostedemail.com (Postfix) with ESMTP id 2BBA6C0022 for ; Thu, 22 Sep 2022 22:17:50 +0000 (UTC) Received: by mail-oi1-f178.google.com with SMTP id o184so14134226oif.13 for ; Thu, 22 Sep 2022 15:17:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=iYaHVzjvnWuiAdLHpHQjuVH25BB+nrb3AFoKuMeoJ4g=; b=h6wEvYIyWcSR6y7PYdL+fOB0j/DHzshBqWrmDLyw7xSlsjbayWU97Q6o6g7G6FJNzc zcHVZGS6YInFLUS0CXtCBO/U9SIBHgFwzeYzITVagKdD/YD4U6CiQ8B6oSBAFhqu++ta uO5da54Exf8lBCuQdsTS3fULWP5UWPcy9o9lJiLTi/CFvfGazibRkUZ4yCmxygXbpQMu 1BXQyFgZLzxNts1jVtxI2VS9VvPJqmGfiYyEus66w6FlaBTFjAAml2nyP6B+3+eqrNXW phXbbfZzTTeTz5Rml7p73UWCR3mAjtSb9iLOkkMTmRMohF7w5KIPsz5W8zYOwEf+BXmH ccwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=iYaHVzjvnWuiAdLHpHQjuVH25BB+nrb3AFoKuMeoJ4g=; b=J5Q0lHvUHk9iwcARJT9Xp/rmb1ILcFa1odYZ1MDi6WT80L9lK96x93hHr03KK7Hik5 LsnBTtIvKWmqAFmWWYL0QjkPlS356+FgQFR0azF4C5FLuXy1K3yKbwshsE92HHPYCjge fJIMR2BbEonG4cHQPp8MU5/0ItRPngnMOOkxR2vr83vcFVFVSRpDnCrCJXjycvMntuC1 3Dx582KsNZUgaXHs+s4JIxz5E8mCZofUtJqJzTWz8stjzBtwXlfWvkU3AZI+cMI19rmi cxk4wwq31NTr9hLRH+smQAafe6FfeEc/Y55BBHLrE5lytM8SvicaLO/BGqQgZe+9Y3AU uMBw== X-Gm-Message-State: ACrzQf1xW59cBwn0O7d6IcUg2Q0zDxEzHeTJzNnmi6cTX239M3wT5IMA FObAip8a9MgHTwnRLebnb6n2XLJC+3d/pV/py/7/eg== X-Google-Smtp-Source: AMsMyM41W5fGAg5U4duD4hdhgyBjNTZKqfsSUNheD4xbkmg1oPfAXe575uTagk1qyASgBQp7z2LDHz7VmK30nUmhmO8= X-Received: by 2002:a05:6808:30b:b0:350:653c:fa5c with SMTP id i11-20020a056808030b00b00350653cfa5cmr2638494oie.123.1663885069996; Thu, 22 Sep 2022 15:17:49 -0700 (PDT) MIME-Version: 1.0 References: <20220921221043.547580-1-zokeefe@google.com> In-Reply-To: From: "Zach O'Keefe" Date: Thu, 22 Sep 2022 15:17:14 -0700 Message-ID: Subject: Re: [PATCH] mm/khugepaged: check compound_order() in collapse_pte_mapped_thp() To: Andrew Morton Cc: Yang Shi , linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1663885071; a=rsa-sha256; cv=none; b=fpYm9YOg0LjE2MgUNfm/PdjnbTNHJ90jNYPxSOqOHQOdQ6BR2wXap3i4I35U46AHG6eci+ QW5Q7l+eaEwrib+z8ZWlGfOo0fTayC59fjVSCzVtXSf/t05yLb+udHwuZz3dQfLYjQD6V3 ka3mmWUiTPqK4y1rv8pXFwK9u6SZrGc= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=h6wEvYIy; spf=pass (imf28.hostedemail.com: domain of zokeefe@google.com designates 209.85.167.178 as permitted sender) smtp.mailfrom=zokeefe@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1663885071; 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=iYaHVzjvnWuiAdLHpHQjuVH25BB+nrb3AFoKuMeoJ4g=; b=6c6yYjizdLMgVmcYPx9etzseOje72qkF6LhRTil+PlUKOTlZ0LamyuHAQ9XoWrbIqycpuL WO1Gg1yVbnjHREoN8jmzSIvmRlPDMDSi4AJri1jUELSnAAWNwh3M5PYuInB4KhyV9j6Kbl CmUDowPk/xjlZBcW9BhZOMydYdpredY= Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=h6wEvYIy; spf=pass (imf28.hostedemail.com: domain of zokeefe@google.com designates 209.85.167.178 as permitted sender) smtp.mailfrom=zokeefe@google.com; dmarc=pass (policy=reject) header.from=google.com X-Rspam-User: X-Stat-Signature: ap7f3in7ijph5bn765fw4pibzqm88b7x X-Rspamd-Queue-Id: 2BBA6C0022 X-Rspamd-Server: rspam02 X-HE-Tag: 1663885070-727638 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: On Wed, Sep 21, 2022 at 3:39 PM Zach O'Keefe wrote: > > On Wed, Sep 21, 2022 at 3:10 PM Zach O'Keefe wrote: > > > > 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. > > > > Suggested-by: Yang Shi > > Signed-off-by: Zach O'Keefe > > --- > > > > Andrew, could you please take this into mm-unstable as a prerequisite > > patch for the "mm: add file/shmem support to MADV_COLLAPSE" series? > > Thank you. > > > > mm/khugepaged.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/mm/khugepaged.c b/mm/khugepaged.c > > index 122cb72435e3..30f35d646f11 100644 > > --- a/mm/khugepaged.c > > +++ b/mm/khugepaged.c > > @@ -1448,6 +1448,11 @@ int collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr, > > goto drop_hpage; > > } > > > > + if (compound_order(hpage) != HPAGE_PMD_ORDER) { > > + result = SCAN_PAGE_COMPOUND; > > + goto drop_hpage; > > + } > > + > > result = find_pmd_or_thp_or_none(mm, haddr, &pmd); > > switch (result) { > > case SCAN_SUCCEED: > > -- > > 2.37.3.998.g577e59143f-goog > > > > Apologies, I forgot the relevant Link tag: > > Link: https://lore.kernel.org/linux-mm/CAHbLzkon+2ky8v9ywGcsTUgXM_B35jt5NThYqQKXW2YV_GUacw@mail.gmail.com/ Apologies x2 ; I mentioned this was a prerequisite for the "mm: add file/shmem support to MADV_COLLAPSE" series, but it's based on the current mm-unstable (which includes said series, and thus doesn't even compile). I'll send a v2 of this patch emminitely, along with a v4 of the "mm: add file/shmem support to MADV_COLLAPSE" series - applied in the correct order.