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 77398C5478C for ; Tue, 27 Feb 2024 03:18:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BD2224401E5; Mon, 26 Feb 2024 22:18:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B829F44017F; Mon, 26 Feb 2024 22:18:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A49EF4401E5; Mon, 26 Feb 2024 22:18:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 9626F44017F for ; Mon, 26 Feb 2024 22:18:30 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 68178A075F for ; Tue, 27 Feb 2024 03:18:30 +0000 (UTC) X-FDA: 81836125980.30.055EDCF Received: from mail-ua1-f49.google.com (mail-ua1-f49.google.com [209.85.222.49]) by imf27.hostedemail.com (Postfix) with ESMTP id A6EFD40006 for ; Tue, 27 Feb 2024 03:18:28 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UcauDyYb; spf=pass (imf27.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.49 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1709003908; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=MJZD2KtLrf71EHvovaXk1j0WO0+M7+xSSk4VodUZBz8=; b=Kwgoj49P7Qd0IAuHB2rX9X/tE9U0zqhzqHEt0Px0WcSX3ldsQfqgB307Sl69WlA05rjdoM WI3wPOVO8Ru9yf+vO0VyGgwZ3FVzOg89vZoAjv78mc/AMEBezGQgcs4twcQ9KIK+N9zxIt f4j0iU36QAONYJcGF/6v7spLZv0eH8U= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709003908; a=rsa-sha256; cv=none; b=Pk64JN867ihXA3780Dwki3jNNwNt20uqrRAJajK/1JpvDgze/WgVt8Xg63i9k6VTxnpHJR NTLDN2RGAxkkCGsG5mlmcUNoYvQV4pWRCObSNn2d9VnwyLcl6PLquv3hf6C0XB8DeLOKnk QvvFjTJN4T0+rXN09I81MQUrECVbE2A= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=UcauDyYb; spf=pass (imf27.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.49 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ua1-f49.google.com with SMTP id a1e0cc1a2514c-7d5c40f874aso1897508241.1 for ; Mon, 26 Feb 2024 19:18:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709003908; x=1709608708; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=MJZD2KtLrf71EHvovaXk1j0WO0+M7+xSSk4VodUZBz8=; b=UcauDyYbbK2YnJbzi7xv9SF2ILc9KPX9ggP7x72/xaAx12Gp63Ifi5hbVYO+hubqOa wWxeqicNyykSYIKh96E+HpCsEn+wzxvIXU5wPbo3d+TNbR56GPLgAnv6knhflNufsAqm nxr8FwgXorsiCikbVxLLBAVbqTWhN6t4WSBI8ci6RRMhge+9sGbsloR4a/0t1X1ZBPrk HNh+QaZUImu9R36BQIY1LW2h9Pwtcak+HHnc38qQaBwcaqC5kiC0ix3Lxgb3ouXs1Fbw 9lS/2yZ1yGByxJiL15J7W0a5Pi4taR/z59UXrSVHODWa8B4PsdOkeZVmMyfj2BTe5WvG 6Bzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709003908; x=1709608708; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MJZD2KtLrf71EHvovaXk1j0WO0+M7+xSSk4VodUZBz8=; b=fJe8a4Luus2Q0G9wU/bg8jNdxKRu/T9ZKcWhgD6RMZ8xSGbjumksIw/q6uzycO8vTj PhIgWf60oqdxLC9mdU0QhWjsPETZSqOeO8O1vtSnzid/Yi9CpqFNe80s3tzuuMUBXbom /H2Ds5HMqN2s4nI6ciEQDzbecOSe6dO5OT3RdanHt+136aovJ3fxpSwjfMRspmnCEN/P RhlohWLdHfyan8XbNmeHo2waZQwTmUQF/J0bHdRQMQTfD7XPF1S/oqCM/uY/pE8P5w54 L/vTsv65EseemdSux9OaTzz5QbXF32NomJc6mXRmPtX8/7325AKO64YzQS0U1DZmaewl uWFQ== X-Forwarded-Encrypted: i=1; AJvYcCXc31k7HlUxghbGKLKPQMJzhWzg4wsg82JAedcd3rTtO8YfWFX7WJIycnBOdg8zoiPFKH1f95/CT5oKfWzxUP4iRVY= X-Gm-Message-State: AOJu0Yw3dNLARt5pte7FytWIbvJH9ECFm4iaOxQ4x8av94KGhnyF8K3B yD8dNGMXVdaVCvHNKBV1M6vCLBe2GHO0X4FkNF+hEbnfVeG7+FwCZ1h5Xeq4sS9PV5vja+2mAmJ EP5U8DpOrBkgvkbLYYi5lMkxXGYk= X-Google-Smtp-Source: AGHT+IFs5rDr+LuGs9pbJ463izehId6OYEso4XQoI7Xjg8YIH59ntMm6AwuRqaiP2Afn7zDCUuO5FWl8zKOx3RYW6Dw= X-Received: by 2002:a1f:6283:0:b0:4d1:34a1:d94f with SMTP id w125-20020a1f6283000000b004d134a1d94fmr5573937vkb.6.1709003907709; Mon, 26 Feb 2024 19:18:27 -0800 (PST) MIME-Version: 1.0 References: <20240227024050.244567-1-21cnbao@gmail.com> In-Reply-To: <20240227024050.244567-1-21cnbao@gmail.com> From: Barry Song <21cnbao@gmail.com> Date: Tue, 27 Feb 2024 16:18:16 +1300 Message-ID: Subject: Re: [PATCH] mm: export folio_pte_batch as a couple of modules might need it To: akpm@linux-foundation.org, linux-mm@kvack.org, David Hildenbrand , Ryan Roberts Cc: linux-kernel@vger.kernel.org, Barry Song , Lance Yang , Yin Fengwei Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: A6EFD40006 X-Rspam-User: X-Stat-Signature: udr86wahsbobgeeuu976usnwaicbixge X-Rspamd-Server: rspam03 X-HE-Tag: 1709003908-268767 X-HE-Meta: U2FsdGVkX1/eucWBb57rZcdYVD6xEgiDbln80GSsXUmLBHu8+58rjgoQ8Txmh+xJkP7Ncrb7cjhzEAKoIyyNNXDREyBkbpNggV2IpzOBnVuptrbTDHrrUOzz8yPC5SJd2aTy0NvBrfdTDa2LkOXJRJfcZ6cZbaUlGeNV4MZv09f+ewijKirEldv/STDCrzBVPnyY1q+vyUHZnRsS1fUDVlj54Dtc6rYMgGYwLnihGkzE2hMFvojsSGRdOl5aaW5DGMszdzjVoL6QJ7aaNU5N6YOI0lBmx7g5aAYAjJjRm42opYseLxW06rFS8PxKmG9ZW1BhePhYQRgWj5c1RQUj1Vcnt8tlBIhLLuk7qAIyw/sIZp81mu4COb/3CjYDbcBKAKTe/8HNMelILir8J4llvmLhb8rRAjg4tFjO3bZfMvx/72TbPweJTPimM8gAmFtwIIut9WlDg69EUqQISYJO1n37hQg9Z2AUC5j8d/0rtv4JCI4oiJtdMbqRrKMgH0I6dexJ+D35U7ZcJlnGAh9qzpiIeHEAVXIssuBIRY80MXdu3Swdd9WZjsnKm4+rw/hPguY/2Yn9YkGfjob7ehVtTgfZcs+/nhEgpMUXrwYA9CqBn3EOiBPe8FrbdR6KhClJ3NO1j48J8vtakhtpwIBM7GiGilWznJy/UnKwQP8XpdyFUEHq/VaJmv1tLdZ3DIzeIJXJIRRljr4PxEOKd228ePClb/PT00FCX7rGE9fbHU3t1UGXOPpV35jwMUdCaxcJ4hRPj0GKxQGJ2IDH/4kGmN5YZ/zp3PXBPftBCb410hsJ6wHzQawUZONFp9nosTroIdhFSblL9gVDJPZ1Q/VNEZ7SWzqeKeKZxwDn8OnXGo2MrrtPyjUm/YE6HpMFL+RAlZ3P6f62PkEQ7alxOecRZ4wajGJ0rDhgtiPpjJ1UfWTAnQQG9gmEXu56gy77ApZ8M9qok2MzdDVbTr9KdpB 5gZhQMi0 ch15HA824TL11HcLZXBHTDxsE/Zvkk+WH+6VRmAVpqlXKO5iDhs4dTUi1Tt/i5/oX618oyX+peQcyKqJ534ZKa5QQbftz6xjKGbnwr8zPT4JHuBNvAG9TobsGuNnxACmMNW9yKk57//jc9hlIFiBEQehLBjZF/JLhDW0uJQfMc2EwQonpE8J9WbXtY8MGRPVyCu6qC3pkMzXekh8Fq6ENuTqWpTR7JevYMFR2TkFa5Lgru6thnKN3j4ntYS6Wyqx21ifng2pwjQm9EELsee9QjmIWmMbdYcuPOa206x4alvUurhUEV5DVbsPlYrTLrZyYISzvfuFjgRE3yJrYWMeBfSnh3RNyD7TCn3BmRrIm+hxTK/kKSPRrHR3FUuh4MBv2ir6zV4lsBGpu7b5bv/V0Ow6XsWFSab0eJjxpCOKOQtJ2LtWouhtKPjCsew60PjKpuHLcdWLYH9F8FUc5mJqeZzG1KKpkzqpbWBi5cyEvsewWQSPrZJJxx6ZvTB3bQlGZQU8g8k0daWns5aEtDMRWwidEDSs/2Rb61zX/vnF//wk84wYL6scTVYF2ERpDGT0U1WKjK8WmOODaJUithZYBzcvknEbPLEw1e3gOTwKu3gEdyW7WCC4Hn4bY0r7P8bqsl/L+6ZL1g38GwGJkDAV28SnJjw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Feb 27, 2024 at 3:41=E2=80=AFPM Barry Song <21cnbao@gmail.com> wrot= e: > > From: Barry Song > > madvise and some others might need folio_pte_batch to check if a range > of PTEs are completely mapped to a large folio with contiguous physcial > addresses. Let's export it for others to use. > > Cc: Lance Yang > Cc: Ryan Roberts > Cc: David Hildenbrand Hi David, Ryan, Sorry, I realize I just made a mistake and your tags should be both Suggested-by. Please feel free to review the patch and give comments. I will fix the tags together with addressing your review comments in v2. > Cc: Yin Fengwei > Signed-off-by: Barry Song > --- > -v1: > at least two jobs madv_free and madv_pageout depend on it. To avoid > conflicts and dependencies, after discussing with Lance, we prefer > this one can land earlier. > > mm/internal.h | 13 +++++++++++++ > mm/memory.c | 11 +---------- > 2 files changed, 14 insertions(+), 10 deletions(-) > > diff --git a/mm/internal.h b/mm/internal.h > index 13b59d384845..8e2bc304f671 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -83,6 +83,19 @@ static inline void *folio_raw_mapping(struct folio *fo= lio) > return (void *)(mapping & ~PAGE_MAPPING_FLAGS); > } > > +/* Flags for folio_pte_batch(). */ > +typedef int __bitwise fpb_t; > + > +/* Compare PTEs after pte_mkclean(), ignoring the dirty bit. */ > +#define FPB_IGNORE_DIRTY ((__force fpb_t)BIT(0)) > + > +/* Compare PTEs after pte_clear_soft_dirty(), ignoring the soft-dirty bi= t. */ > +#define FPB_IGNORE_SOFT_DIRTY ((__force fpb_t)BIT(1)) > + > +extern int folio_pte_batch(struct folio *folio, unsigned long addr, > + pte_t *start_ptep, pte_t pte, int max_nr, fpb_t flags, > + bool *any_writable); > + > void __acct_reclaim_writeback(pg_data_t *pgdat, struct folio *folio, > int nr_throttled); > static inline void acct_reclaim_writeback(struct folio *folio) > diff --git a/mm/memory.c b/mm/memory.c > index 1c45b6a42a1b..319b3be05e75 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -953,15 +953,6 @@ static __always_inline void __copy_present_ptes(stru= ct vm_area_struct *dst_vma, > set_ptes(dst_vma->vm_mm, addr, dst_pte, pte, nr); > } > > -/* Flags for folio_pte_batch(). */ > -typedef int __bitwise fpb_t; > - > -/* Compare PTEs after pte_mkclean(), ignoring the dirty bit. */ > -#define FPB_IGNORE_DIRTY ((__force fpb_t)BIT(0)) > - > -/* Compare PTEs after pte_clear_soft_dirty(), ignoring the soft-dirty bi= t. */ > -#define FPB_IGNORE_SOFT_DIRTY ((__force fpb_t)BIT(1)) > - > static inline pte_t __pte_batch_clear_ignored(pte_t pte, fpb_t flags) > { > if (flags & FPB_IGNORE_DIRTY) > @@ -982,7 +973,7 @@ static inline pte_t __pte_batch_clear_ignored(pte_t p= te, fpb_t flags) > * If "any_writable" is set, it will indicate if any other PTE besides t= he > * first (given) PTE is writable. > */ > -static inline int folio_pte_batch(struct folio *folio, unsigned long add= r, > +int folio_pte_batch(struct folio *folio, unsigned long addr, > pte_t *start_ptep, pte_t pte, int max_nr, fpb_t flags, > bool *any_writable) > { > -- > 2.34.1 > Thanks Barry