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 X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,MSGID_FROM_MTA_HEADER, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A17BEC433E6 for ; Tue, 2 Mar 2021 01:59:39 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id EEA1C6146B for ; Tue, 2 Mar 2021 01:59:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EEA1C6146B Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=fb.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 69DB38D00CC; Mon, 1 Mar 2021 20:59:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 627B48D0063; Mon, 1 Mar 2021 20:59:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4A10A8D00CC; Mon, 1 Mar 2021 20:59:38 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0162.hostedemail.com [216.40.44.162]) by kanga.kvack.org (Postfix) with ESMTP id 2E5AB8D0063 for ; Mon, 1 Mar 2021 20:59:38 -0500 (EST) Received: from smtpin20.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id DE5468142 for ; Tue, 2 Mar 2021 01:59:37 +0000 (UTC) X-FDA: 77873277594.20.CC47E56 Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) by imf29.hostedemail.com (Postfix) with ESMTP id 9A0CE132 for ; Tue, 2 Mar 2021 01:59:36 +0000 (UTC) Received: from pps.filterd (m0044010.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 1221uge2006905; Mon, 1 Mar 2021 17:59:25 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=date : from : to : cc : subject : message-id : references : content-type : in-reply-to : mime-version; s=facebook; bh=C7irSHlR0ppGcQLlQLEvIi14SW+IWHpwIaN9oZi4L6o=; b=UJw4IhvXqi8XBLHBQPHOazpwULXIx11OxmjTekj31GMa0FePQriQWcSVcLpUKDHdVtCX jlZL7ihf8l6ij5Ehmx4GgL9VuwiEOjmEZ/A6V5XYhtSJtVr/x7xKRJjEQCVDjVRbWtoz VynBUJ82FDvqSiZRqev4lI54gwubhPdnPaY= Received: from maileast.thefacebook.com ([163.114.130.16]) by mx0a-00082601.pphosted.com with ESMTP id 37071t0sb8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Mon, 01 Mar 2021 17:59:25 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (100.104.31.183) by o365-in.thefacebook.com (100.104.36.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Mon, 1 Mar 2021 17:59:23 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nVK3L7D1ZLLIgXaZ1RLNUMCtCYLV1pB/m5JQu8mnb5I5K4uwac+r+5eRvWbq0ssRIyLpwmDrMRWwxh9O84oIHK1UDZZIsOpUEPnWCX7wdos0e5KBZytP2N+3OPu5/5+8tBwClKlMtBj4GwXW9Y5YgRK0Y905bvbfkdHazYCnRFsyUjS4vbtBqk2BOSQsrUUl63e9bQkW4MehmVE+2KSxLgNI9R0gkaSl6dH8lQcA3vc3WIySr132c8aZgGYTgE5xeuPZ1cwLBUMDxw/iD07Syez7rtIokNnYmjnBAQVosx4KbPnlq1FpOzEQcXZn7oLXY8B5IKIxqw+i+6MJh6QEDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Yi8EG9MLdBFgw2U3gJD3wUX1ctkOTxo0VxSw1AWoeJg=; b=PIVkGb9KQArjLWD194oWv0LWIMT4H+UK+vitiYVcciPX5hb52f/7zRBecUknfc3BKOcM8XjR9E937tHUSCKxN2JDLflX9eiKqlypo/RhOOtxPZRyVxuJMdwqICdElXOnTzVbjSJ1Kzcr/LK6nVxAvHC637xMZVogaUvLpIHl35Y+wj6NjIacErlfdUjKur99Z1cPhdH13q5y364sN0WGJ4NihrtR1a3huQgZVSZcRlLJ3HMECJVn7SfPjMaNXIjHRu51hsBmc/uuvZKv1w8hoqRfuYyBtXa6yw4ctWJEFElgYz7qxThsaLb+GAnB8ZuRgQ3VbMkfdP/CznbJMqX0cw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fb.com; dmarc=pass action=none header.from=fb.com; dkim=pass header.d=fb.com; arc=none Authentication-Results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=fb.com; Received: from BYAPR15MB4136.namprd15.prod.outlook.com (2603:10b6:a03:96::24) by BYAPR15MB2215.namprd15.prod.outlook.com (2603:10b6:a02:89::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.25; Tue, 2 Mar 2021 01:59:22 +0000 Received: from BYAPR15MB4136.namprd15.prod.outlook.com ([fe80::53a:b2c3:8b03:12d1]) by BYAPR15MB4136.namprd15.prod.outlook.com ([fe80::53a:b2c3:8b03:12d1%7]) with mapi id 15.20.3890.028; Tue, 2 Mar 2021 01:59:22 +0000 Date: Mon, 1 Mar 2021 17:59:17 -0800 From: Roman Gushchin To: Zi Yan CC: , Matthew Wilcox , "Kirill A . Shutemov" , Andrew Morton , Yang Shi , Michal Hocko , John Hubbard , Ralph Campbell , David Nellans , Jason Gunthorpe , David Rientjes , Vlastimil Babka , David Hildenbrand , Mike Kravetz , Song Liu Subject: Re: [RFC PATCH v3 00/49] 1GB PUD THP support on x86_64 Message-ID: References: <20210224223536.803765-1-zi.yan@sent.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20210224223536.803765-1-zi.yan@sent.com> X-Originating-IP: [2620:10d:c090:400::5:642c] X-ClientProxiedBy: MW4PR03CA0118.namprd03.prod.outlook.com (2603:10b6:303:b7::33) To BYAPR15MB4136.namprd15.prod.outlook.com (2603:10b6:a03:96::24) X-MS-Exchange-MessageSentRepresentingType: 1 Received: from carbon.dhcp.thefacebook.com (2620:10d:c090:400::5:642c) by MW4PR03CA0118.namprd03.prod.outlook.com (2603:10b6:303:b7::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.19 via Frontend Transport; Tue, 2 Mar 2021 01:59:20 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 15cd269d-1f40-485b-7240-08d8dd1ecc44 X-MS-TrafficTypeDiagnostic: BYAPR15MB2215: X-MS-Exchange-MinimumUrlDomainAge: github.com#4893 X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-FB-Source: Internal X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Cq1ZWAKvl6qgF2A6RIzSYCCSRK7twm8nFVr2FVIt4i2qGDsEJnMC6+Y6lriTx2wDVA9OcgwPF+KNf/MKvk6lBgZ4rsyobmNwbqRtRm809haNlvfyA7O18wFvv336hC8XfktZ7Snzwyid/scmtsSfXzCnl44qXZ6TZ7NJMsF6cOXXGmRxa1z2TebD/pdvICpnhulbqh+CmUpSt/nki3vDW3BOfPK++JYKIssRcpqHnqy5m81H/DPMIlp/8rZoJ1ET9B5Sl7+Nt5af0SxB6d/I09WkrRs3JHR46dp/fEKH3oGG0zdTjBu2uTaZ1IKTDdBqEOfsFpTdU7IYideslMyNbdBTv5E5Gc9YXG0QoBbzjIgwcAD5nXfoU5gYeGe3b8APu0AVLDO90QYbLqkWlNz1Mp5gyAy5qcJJity/T/0wg+UupbXMZ5JpGKqIgimVurmMuNHzojmySfUiXHWODnsitYxUhuzd2TmnlepNei1lq2t6oABBrmzwC6CmctHD7BY3ri4HiiGEmsrFH7wFw9n/VzjjmCVWBWiCK4/KHTnD+uuvUjKmrJJoTAuXJIFkCjD/HnfvHdun+Kv0KtsjFfJ7HvrxNTh2CFtQvsu+Al/cqDg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR15MB4136.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(136003)(396003)(346002)(39860400002)(366004)(186003)(6506007)(8936002)(52116002)(4326008)(7416002)(5660300002)(6916009)(16526019)(9686003)(55016002)(7696005)(966005)(54906003)(2906002)(316002)(6666004)(86362001)(66476007)(66946007)(83380400001)(8676002)(66556008)(478600001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?JAl7+/pb7qAU60pn4pcrC9hC2dJL5POlGlqVupq1No3mc2DkmHuhq4EhMi05?= =?us-ascii?Q?M3lwmsLU50fhamX45JkzsxTbRY+QliE6LzWbdTJxbxNt4b+v+IuZ5WM6lv2F?= =?us-ascii?Q?h8Mb0TFJzucvsdpzXZD6XM/surMlSrRK00vOuGOhDHTaWZw0gNpRHcLbwW8a?= =?us-ascii?Q?8IoMmBaVLllX7KJ/V/ZoxKYUawapQCoPjR+ZS0seXnKwtPyd9+w7nOTaireI?= =?us-ascii?Q?zybXuNq+CcXaSacCane3+7F8XMZNCc0b6FJ9IsJo7Qn2jgB1AX+2Cyugtw/6?= =?us-ascii?Q?FCCmyK5XCjcx6vMnF1lvVXMU8Fq0/hVxxp2MR6je1EHBF/bwNARyaOjETFW7?= =?us-ascii?Q?A+FDGmO3zJw4k9kz0zhAJRT9ia0g/+iOK1CMmQV2hm+F9ieMevYoHARt2Y86?= =?us-ascii?Q?+7ZsHG/cZAvDwqcsJNxlXlrdMEgvEjxSaXUdC7q47fBFEF8v/tuZbTbFXOzR?= =?us-ascii?Q?D+/Oxma/V5Kc/WMy6j/9ijucFXwROFCCifJ2s5rfm1Q263BzlGEcyJJLbeFB?= =?us-ascii?Q?WlXpFG2twFEkCB3/hCwNEfKoVtTbFuYQ/5dxwHHreZp8omoVqi9MMhoadqcF?= =?us-ascii?Q?FzgE8f6QXDGcr2Q64QWw5zMmRYaB8zjjHvJhCCzNv+gK1ecPw/q/HEpqZRjM?= =?us-ascii?Q?H/2l7lvgM3VDCF8c3B4JUiLhWt0mUiJUgedkt19FKD85MUVbaYvhP4/T6xb5?= =?us-ascii?Q?J+r61/QtC4g9G5s7j5iuM10UK9TQiuEEpqZIDejHuRv83C4TrM9jR03uV7EY?= =?us-ascii?Q?O+57HbJCJEc69KWmVceHHd4G34zO4celPFzgP1IKi49mB2SsIGYgz36aQoGc?= =?us-ascii?Q?NRj8GIm4ZP1cQ3cVcS8SluMW8LLpf+m5mzDLvuDq6W7Kf8fZuTR583uJnmTk?= =?us-ascii?Q?ivFDRYLzDi2Kzpq7zrkWjewecVHOpqEb+LIYs06+4jMbDnOza8jMUa6woiIW?= =?us-ascii?Q?/uhaypVlElO71QP2yNEfrPaLGDu80KEQuEKU37O9xCniX1totOvnJQaCs+wa?= =?us-ascii?Q?3meKnVEsXTbCtydZWk+wcXQl5je3kFasl5g1Z+F1XBztYYTpPHSTNaeKE41d?= =?us-ascii?Q?imSPn8fd/VffngFg17abUqY3MNFuD58hcm8UpRhJzEL8nlqbQyIS3AlDzvr5?= =?us-ascii?Q?1LelQmmJlAihaYYoC0Ponunb01bdnyH8GYFXIAqkod4FCBhngWjl+24EDYah?= =?us-ascii?Q?B1qiWlQqPSdJTSVJtmsdOSbnkk98Az/BENGu/tnHzJsWFqPf7RR7jBmdwVtH?= =?us-ascii?Q?DbH64yB4jN2YqGYKJtZ0mz3BG1ArBGJTpSDKuhhNakm7dvseJkqnJ9m2NrIb?= =?us-ascii?Q?+bGoVMNi/P2Dr/0S4pVkzNtX+eLXRBcpR5r90FNJMwSjEw=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: 15cd269d-1f40-485b-7240-08d8dd1ecc44 X-MS-Exchange-CrossTenant-AuthSource: BYAPR15MB4136.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2021 01:59:22.2218 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DnFsmfbQcPnkOhAhQ9+OHPfRH1mHAC444Xt4ZCLUSi1+ALfOkDdy+THrISBXmfBd X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR15MB2215 X-OriginatorOrg: fb.com X-Proofpoint-UnRewURL: 2 URL's were un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.369,18.0.761 definitions=2021-03-01_15:2021-03-01,2021-03-01 signatures=0 X-Proofpoint-Spam-Details: rule=fb_default_notspam policy=fb_default score=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 mlxscore=0 priorityscore=1501 clxscore=1011 adultscore=0 bulkscore=0 spamscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2103020012 X-FB-Internal: deliver X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 9A0CE132 X-Stat-Signature: q5k3uwtdzk6h5afbfs5yzkuxtpp7stnn Received-SPF: none (fb.com>: No applicable sender policy available) receiver=imf29; identity=mailfrom; envelope-from=""; helo=mx0a-00082601.pphosted.com; client-ip=67.231.145.42 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1614650376-52091 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, Feb 24, 2021 at 05:35:36PM -0500, Zi Yan wrote: > From: Zi Yan > > Hi all, > > I have rebased my 1GB PUD THP support patches on v5.11-mmotm-2021-02-18-18-29 > and the code is available at > https://github.com/x-y-z/linux-1gb-thp/tree/1gb_thp_v5.11-mmotm-2021-02-18-18-29 > if you want to give it a try. The actual 49 patches are not sent out with this > cover letter. :) > > Instead of asking for code review, I would like to discuss on the concerns I got > from previous RFCs. I think there are two major ones: > > 1. 1GB page allocation. Current implementation allocates 1GB pages from CMA > regions that are reserved at boot time like hugetlbfs. The concerns on > using CMA is that an educated guess is needed to avoid depleting kernel > memory in case CMA regions are set too large. Recently David Rientjes > proposes to use process_madvise() for hugepage collapse, which is an > alternative [1] but might not work for 1GB pages, since there is no way of > _allocating_ a 1GB page to which collapse pages. I proposed a similar > approach at LSF/MM 2019, generating physically contiguous memory after pages > are allocated [2], which is usable for 1GB THPs. This approach does in-place > huge page promotion thus does not require page allocation. Well, I don't think there an alternative to cma as now. When the memory is almost filled at least once, any subsequent activity leading to substantial slab allocations (e.g. run git gc) will fragment the memory, so that there are virtually no chances to find a continuous GB. It's possible in theory to reduce the fragmentation on 1GB scale by grouping non-movable pageblocks, but it seems a separate project. Thanks! > > 2. Large amount of new code to review. I find most of added code is just a > simply copy paste from existing PMD THP code. I have tried to reduce > the new code size by reusing some existing code [3], but did not find a good > way of reusing PMD handling code for PUD, which is the major part of this > patchset. I am all ears if you have any idea on how to reduce new code size > or make code review easier. > > > Any comment or suggestion is welcome. Thanks. > > [1] https://lore.kernel.org/linux-mm/d098c392-273a-36a4-1a29-59731cdf5d3d@google.com/ > [2] https://lwn.net/Articles/779979/ > [3] https://lwn.net/Articles/837928/ > > > Roman Gushchin (2): > mm: cma: introduce cma_release_nowait() > mm: hugetlb: don't drop hugetlb_lock around cma_release() call > > Zi Yan (47): > mm: memcg: make memcg huge page split support any order split. > mm: page_owner: add support for splitting to any order in split > page_owner. > mm: thp: add support for split huge page to any lower order pages. > mm: thp: use single linked list for THP page table page deposit. > mm: add new helper functions to allocate one PMD page with > HPAGE_PMD_NR PTE pages. > mm: thp: add page table deposit/withdraw functions for PUD THP. > mm: change thp_order and thp_nr as we will have not just PMD THPs. > mm: thp: add anonymous PUD THP page fault support without enabling it. > mm: thp: add PUD THP support for copy_huge_pud. > mm: thp: add PUD THP support to zap_huge_pud. > fs: proc: add PUD THP kpageflag. > mm: thp: handling PUD THP reference bit. > mm: rmap: add mappped/unmapped page order to anonymous page rmap > functions. > mm: rmap: add map_order to page_remove_anon_compound_rmap. > mm: add pud manipulation functions. > mm: thp: add PUDDoubleMap page flag for PUD- and PMD-mapped pages. > mm: thp: add pmd_compound_mapcount for PMD mappings in PUD THPs. > mm: thp: add split_huge_pud() function to split PUD entries. > mm: thp: handle PMD-mapped PUD THP in split_huge_pmd functions. > mm: thp: adjust page map counting functions for PMD- and PTE-mapped > PUD THPs. > mm: thp: new ttu_flags to split huge pud during try_to_unmap. > mm: thp: add new checks for zap_huge_pmd. > mm: thp: add pud split events. > mm: thp: split pud when adjusting vma ranges. > mm: thp: handle PUD THP properly at page allocation and deallocation. > mm: rmap: handle PUD-, PMD- and PTE-mapped PUD THP properly in rmap. > mm: page_walk: handle PUD after pud entry split. > mm: thp: use split_huge_page_to_order_to_list for split huge pud page. > mm: thp: add PUD THP to deferred split list when PUD mapping is gone. > mm: debug: adapt dump_page to PUD THP. > mm: thp: PUD THP COW splits PUD page and falls back to PMD page. > mm: thp: PUD THP follow_p*d_page() support. > mm: stats: make smap stats understand PUD THPs. > mm: page_vma_walk: teach it about PMD-mapped PUD THP. > mm: thp: PUD THP support in try_to_unmap(). > mm: thp: split PUD THPs at page reclaim. > mm: support PUD THP pagemap support. > mm: madvise: add page size options to MADV_HUGEPAGE and > MADV_NOHUGEPAGE. > mm: vma: add VM_HUGEPAGE_PUD to vm_flags at bit 37. > mm: thp: add a global knob to enable/disable PUD THPs. > mm: thp: make PUD THP size public. > hugetlb: cma: move cma reserve function to cma.c. > mm: thp: use cma reservation for pud thp allocation. > mm: thp: enable anonymous PUD THP at page fault path. > mm: cma: only clear bitmap no freeing pages. > mm: thp: clear cma bitmap during PUD THP split. > mm: migrate: split PUD THP if it is going to be migrated. > > .../admin-guide/kernel-parameters.txt | 2 +- > Documentation/admin-guide/mm/transhuge.rst | 1 + > arch/arm64/mm/hugetlbpage.c | 2 +- > arch/powerpc/mm/hugetlbpage.c | 2 +- > arch/x86/include/asm/pgalloc.h | 69 ++ > arch/x86/include/asm/pgtable.h | 26 + > arch/x86/kernel/setup.c | 8 +- > arch/x86/mm/pgtable.c | 38 + > drivers/base/node.c | 2 + > fs/proc/meminfo.c | 2 + > fs/proc/page.c | 2 + > fs/proc/task_mmu.c | 126 ++- > include/linux/cma.h | 20 + > include/linux/huge_mm.h | 92 ++- > include/linux/hugetlb.h | 12 - > include/linux/llist.h | 11 + > include/linux/memcontrol.h | 5 +- > include/linux/mm.h | 53 +- > include/linux/mm_types.h | 13 +- > include/linux/mmu_notifier.h | 13 + > include/linux/mmzone.h | 1 + > include/linux/page-flags.h | 25 + > include/linux/page_owner.h | 10 +- > include/linux/pgtable.h | 34 + > include/linux/rmap.h | 10 +- > include/linux/vm_event_item.h | 7 + > include/uapi/asm-generic/mman-common.h | 23 + > include/uapi/linux/kernel-page-flags.h | 1 + > kernel/events/uprobes.c | 4 +- > kernel/fork.c | 10 +- > mm/cma.c | 226 ++++++ > mm/cma.h | 5 + > mm/debug.c | 6 +- > mm/gup.c | 60 +- > mm/huge_memory.c | 748 ++++++++++++++++-- > mm/hugetlb.c | 126 +-- > mm/khugepaged.c | 16 +- > mm/ksm.c | 4 +- > mm/madvise.c | 17 +- > mm/memcontrol.c | 6 +- > mm/memory.c | 28 +- > mm/mempolicy.c | 14 +- > mm/migrate.c | 16 +- > mm/page_alloc.c | 55 +- > mm/page_owner.c | 13 +- > mm/page_vma_mapped.c | 171 +++- > mm/pagewalk.c | 6 +- > mm/pgtable-generic.c | 49 +- > mm/rmap.c | 297 +++++-- > mm/swap_slots.c | 2 + > mm/swapfile.c | 11 +- > mm/userfaultfd.c | 2 +- > mm/util.c | 18 +- > mm/vmscan.c | 33 +- > mm/vmstat.c | 8 + > 55 files changed, 2160 insertions(+), 401 deletions(-) > > -- > 2.30.0 >