Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp4153245rwe; Tue, 30 Aug 2022 05:39:44 -0700 (PDT) X-Google-Smtp-Source: AA6agR5JHlphXB4WHgSbsm/FsQB8ArfcEQEHPc4SqPvxGYNoqaspNum3MWj/ueVdEmRuK7MaCqmR X-Received: by 2002:a05:6402:515:b0:447:780c:39d6 with SMTP id m21-20020a056402051500b00447780c39d6mr20553048edv.265.1661863184195; Tue, 30 Aug 2022 05:39:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661863184; cv=none; d=google.com; s=arc-20160816; b=gxnuMXGmhoG8Q5fPkiZUiu1WgqwJbq/gy/W5rCWyVrCNyMpjf0tfbmmVVC9AjmW9vk 37QOMXdv/Z0uLEM80noozRUvtUo2DOZGfMOHRFOns5hi1ZIWoaWO+2wlTg1vptRONHi5 cZFZ3T2RDP1xbrB2tbXpu+Mo0ZHZ4bkOY5kbYS9LZow37rNLJXpk+aOhd9lcvQrDAgIq AKpq9ED0p/RWyscvJBZOsSHAt7xbhPbWPbOQRJ9WHL/94tVZtu6K1GI7LgGzbdGRiLXx EFBXr9NSdN1Qu0U1aGuhFb3hZsgNxl5EzklbLkAfQiqXmgSG3lRuPUfXxHA4e3k/EQ71 ogqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:subject :organization:from:references:cc:to:content-language:user-agent :mime-version:date:message-id:dkim-signature; bh=yHf1R0yRa5PLkeHO3mixZ0igrrsKa53gGZnPGXCHmJs=; b=RE3EXto6XW8ASVXrVcg3jYd2ibm7AZcTN9qVztd6NqyENDjxDLXydBTgsDCgYceerG E8FQu3yZTlqj+Yb2iNHJMzA8ezfnrpXZrVkPgX6KCpEnQN/XRKkMKuxMyS+7SbdzU/WN R4EZM0tIQsMeM4ctyVfBwH+0pQTnBeGCLRpH/ln877gUIYtBUVfxkZO90WVN01tScUUw A4Ja14HamuUu3DnLMoHKzuXktcfwvGUN65AGDBPGUoo2TO3F0tKZbrt2d+Mmi4wcqt+2 EwGwBbSFh64xZS3bI8+idBwstESqepvuyejP1LknnAteZI8NgM7RknjRcBt40PyH+7Cu xLQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=BFM2lJNG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hv22-20020a17090760d600b0073d82e941desi7644055ejc.735.2022.08.30.05.39.18; Tue, 30 Aug 2022 05:39:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=BFM2lJNG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229737AbiH3Mdu (ORCPT + 99 others); Tue, 30 Aug 2022 08:33:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39416 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229477AbiH3Mdr (ORCPT ); Tue, 30 Aug 2022 08:33:47 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 044ED58B71 for ; Tue, 30 Aug 2022 05:33:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1661862826; h=from:from: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; bh=yHf1R0yRa5PLkeHO3mixZ0igrrsKa53gGZnPGXCHmJs=; b=BFM2lJNG3+LDGh87uEfZgCi3/++4XDuZ8zsCRjoMsHEN11MjfElI15xh6/hL2K/pEIvdy3 k+I+/MaykJtY8VvAZ8sXJFX9o5PoJfXpHPCk0tZvedgKXMzkfXaWJv+bmani6YcTX+R2q6 Dnt9ZQAI3C9RVjooy1jfxPCQ3ux+nlY= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-611-hvLkGwitNmifizLHGyM18Q-1; Tue, 30 Aug 2022 08:33:45 -0400 X-MC-Unique: hvLkGwitNmifizLHGyM18Q-1 Received: by mail-wm1-f72.google.com with SMTP id i132-20020a1c3b8a000000b003a537064611so6574515wma.4 for ; Tue, 30 Aug 2022 05:33:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:subject:organization:from :references:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc; bh=yHf1R0yRa5PLkeHO3mixZ0igrrsKa53gGZnPGXCHmJs=; b=dWWBmI+oZL22WYiup4arOajz/+BJRCFIy5SX+ZUg2danNJWe2JeiCPdcwWz+V1E56x e/7joxhBQAGmzSsnhVvMSJHD99aXiNxa/akcTA7fm8sJsoE5fkFLKxJ1MCknblhAj6LE 6yPSXjiIxEyzKgnY4vLxaIkTSsc90KUh1amSBnNwZETeJrc4/v4JU7WUU+uqXNzt+K65 G5kPgM8MtgQBOxUt9Xn7cOtetGty2iH1MaVvIY4NoEsAUlrMGwy2XGp+qwOgRVCW2HuN bji2nesrmhfyFOmew5Z/VSbRrFY3V1lUYDS7DveEYoSZepG45y/SeJnyuAUayT6flOUq lkjg== X-Gm-Message-State: ACgBeo3w0ocOtAREk42Hnq0LI9MANtKavj7/Su09kmr70acI1Yh6sRwX 4gXq+3nXS1kDuwxlysI3yKU5bj4IwETZMYEazPScaX/eHNRq1mwv9Eu/jKFa9lQhZCvXhsqKUjD /vilyTWraL8eoogoyPvIfD5Yo X-Received: by 2002:a05:600c:22c8:b0:3a5:c134:1f50 with SMTP id 8-20020a05600c22c800b003a5c1341f50mr9791111wmg.55.1661862823822; Tue, 30 Aug 2022 05:33:43 -0700 (PDT) X-Received: by 2002:a05:600c:22c8:b0:3a5:c134:1f50 with SMTP id 8-20020a05600c22c800b003a5c1341f50mr9791098wmg.55.1661862823512; Tue, 30 Aug 2022 05:33:43 -0700 (PDT) Received: from ?IPV6:2003:cb:c70a:1000:ecb4:919b:e3d3:e20b? (p200300cbc70a1000ecb4919be3d3e20b.dip0.t-ipconnect.de. [2003:cb:c70a:1000:ecb4:919b:e3d3:e20b]) by smtp.gmail.com with ESMTPSA id i2-20020a5d55c2000000b00226dd738b9dsm4519579wrw.46.2022.08.30.05.33.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 Aug 2022 05:33:43 -0700 (PDT) Message-ID: <00f2dee2-ebc1-e732-f230-bc5b17da9f80@redhat.com> Date: Tue, 30 Aug 2022 14:33:42 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Content-Language: en-US To: Rik van Riel , alexlzhu@fb.com, linux-mm@kvack.org Cc: willy@infradead.org, hannes@cmpxchg.org, akpm@linux-foundation.org, kernel-team@fb.com, linux-kernel@vger.kernel.org References: <490fcdd204ae129a2e43614a569a1cf4bdde9196.1661461643.git.alexlzhu@fb.com> <6448b9a8dba8ef39e42e56a3c0ce0633fff7c6a6.camel@surriel.com> <42c164c6-8c69-7b4b-d965-ac62d1607061@redhat.com> <37db29410990991555362154a371b58f47d3cb0c.camel@surriel.com> From: David Hildenbrand Organization: Red Hat Subject: Re: [RFC 2/3] mm: changes to split_huge_page() to free zero filled tail pages In-Reply-To: <37db29410990991555362154a371b58f47d3cb0c.camel@surriel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 29.08.22 15:17, Rik van Riel wrote: > On Mon, 2022-08-29 at 12:02 +0200, David Hildenbrand wrote: >> On 26.08.22 23:18, Rik van Riel wrote: >>> On Fri, 2022-08-26 at 12:18 +0200, David Hildenbrand wrote: >>>> On 25.08.22 23:30, alexlzhu@fb.com wrote: >>>>> From: Alexander Zhu >>> >>> I could see wanting to maybe consolidate the scanning between >>> KSM and this thing at some point, if it could be done without >>> too much complexity, but keeping this change to split_huge_page >>> looks like it might make sense even when KSM is enabled, since >>> it will get rid of the unnecessary memory much faster than KSM >>> could. >>> >>> Keeping a hundred MB of unnecessary memory around for longer >>> would simply result in more THPs getting split up, and more >>> memory pressure for a longer time than we need. >> >> Right. I was wondering if we want to map the shared zeropage instead >> of >> the "detected to be zero" page, similar to how KSM would do it. For >> example, with userfaultfd there would be an observable difference. >> >> (maybe that's already done in this patch set) >> > The patch does not currently do that, but I suppose it could? > It would be interesting to know why KSM decided to replace the mapped page with the shared zeropage instead of dropping the page and letting the next read fault populate the shared zeropage. That code predates userfaultfd IIRC. > What exactly are the userfaultfd differences here, and how does > dropping 4kB pages break things vs. using the shared zeropage? Once userfaultfd (missing mode) is enabled on a VMA: 1) khugepaged will no longer collapse pte_none(pteval), independent of khugepaged_max_ptes_none setting -- see __collapse_huge_page_isolate. [it will also not collapse zeropages, but I recall that that's not actually required] So it will not close holes, because the user space fault handler is in charge of making a decision when something will get mapped there and with which content. 2) Page faults will no longer populate a THP -- the user space handler is notified instead and has to decide how the fault will be resolved (place pages). If you unmap something (resulting in pte_none()) where previously something used to be mapped in a page table, you might suddenly inform the user space fault handler about a page fault that it doesn't expect, because it previously placed a page and did not zap that page itself (MADV_DONTNEED). So at least with userfaultfd I think we have to be careful. Not sure if there are other corner cases (again, KSM behavior is interesting) -- Thanks, David / dhildenb