linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
To: "rppt@kernel.org" <rppt@kernel.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"song@kernel.org" <song@kernel.org>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"vbabka@suse.cz" <vbabka@suse.cz>,
	"x86@kernel.org" <x86@kernel.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Subject: Re: [RFC PATCH 1/5] mm: intorduce __GFP_UNMAPPED and unmapped_alloc()
Date: Thu, 9 Mar 2023 15:34:25 +0000	[thread overview]
Message-ID: <8943835861763052c6a6e4d8cb774f6366b99092.camel@intel.com> (raw)
In-Reply-To: <ZAnvqKtZdaD7FsdT@kernel.org>

On Thu, 2023-03-09 at 16:39 +0200, Mike Rapoport wrote:
> On Thu, Mar 09, 2023 at 01:56:37AM +0000, Edgecombe, Rick P wrote:
> > On Wed, 2023-03-08 at 11:41 +0200, Mike Rapoport wrote:
> > > +
> > > +static inline void __free_one_page(struct page *page, unsigned
> > > int
> > > order,
> > > +                                  bool cache_refill)
> > > +{
> > > +       unsigned long pfn = page_to_pfn(page);
> > > +       unsigned long buddy_pfn;
> > > +       unsigned long combined_pfn;
> > > +       struct page *buddy;
> > > +       unsigned long flags;
> > > +
> > > +       spin_lock_irqsave(&free_area->lock, flags);
> > > +
> > > +       if (cache_refill) {
> > > +               set_pageblock_unmapped(page);
> > > +               free_area[order].nr_cached++;
> > > +       }
> > > +
> > > +       while (order < MAX_ORDER - 1) {
> > > +               buddy = find_unmapped_buddy_page_pfn(page, pfn,
> > > order,
> > > +                                                    &buddy_pfn);
> > > +               if (!buddy)
> > > +                       break;
> > > +
> > > +               del_page_from_free_list(buddy, order);
> > > +               combined_pfn = buddy_pfn & pfn;
> > > +               page = page + (combined_pfn - pfn);
> > > +               pfn = combined_pfn;
> > > +               order++;
> > > +       }
> > > +
> > > +       set_unmapped_order(page, order);
> > > +       add_to_free_list(page, order);
> > > +       spin_unlock_irqrestore(&free_area->lock, flags);
> > > +}
> > > +
> > 
> > The page has to be zeroed before it goes back on the list, right? I
> > didn't see it.
> 
> You are right, I missed it.

The text_poke() family is probably the way on x86, but I don't think
there is a cross-arch way that doesn't involve kernel shootdowns...

  reply	other threads:[~2023-03-09 15:40 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-08  9:41 [RFC PATCH 0/5] Prototype for direct map awareness in page allocator Mike Rapoport
2023-03-08  9:41 ` [RFC PATCH 1/5] mm: intorduce __GFP_UNMAPPED and unmapped_alloc() Mike Rapoport
2023-03-09  1:56   ` Edgecombe, Rick P
2023-03-09 14:39     ` Mike Rapoport
2023-03-09 15:34       ` Edgecombe, Rick P [this message]
2023-03-09  6:31   ` Hyeonggon Yoo
2023-03-09 15:27     ` Mike Rapoport
2023-03-24  8:37   ` Michal Hocko
2023-03-25  6:38     ` Mike Rapoport
2023-03-27 13:43       ` Michal Hocko
2023-03-27 14:31         ` Vlastimil Babka
2023-03-27 15:10           ` Michal Hocko
2023-03-28  6:25         ` Mike Rapoport
2023-03-28  7:39           ` Michal Hocko
2023-03-28 15:11             ` Mike Rapoport
2023-03-28 15:24               ` Michal Hocko
2023-03-29  7:28                 ` Mike Rapoport
2023-03-29  8:13                   ` Michal Hocko
2023-03-30  5:13                     ` Mike Rapoport
2023-03-30  8:11                       ` Michal Hocko
2023-03-28 17:18               ` Luis Chamberlain
2023-03-28 17:37                 ` Matthew Wilcox
2023-03-28 17:52                   ` Luis Chamberlain
2023-03-28 17:55                     ` Luis Chamberlain
2023-05-18  3:35   ` Kent Overstreet
2023-05-18 15:23     ` Mike Rapoport
2023-05-18 16:33       ` Song Liu
2023-05-18 16:48         ` Kent Overstreet
2023-05-18 17:00           ` Song Liu
2023-05-18 17:23             ` Kent Overstreet
2023-05-18 18:47               ` Song Liu
2023-05-18 19:03                 ` Song Liu
2023-05-18 19:15                   ` Kent Overstreet
2023-05-18 20:03                     ` Song Liu
2023-05-18 20:13                       ` Kent Overstreet
2023-05-18 20:51                     ` Song Liu
2023-05-19  1:24                       ` Kent Overstreet
2023-05-19 15:08                         ` Song Liu
2023-05-18 19:16                   ` Kent Overstreet
2023-05-19  8:29               ` Mike Rapoport
2023-05-19 15:42                 ` Song Liu
2023-05-22 22:05                   ` Thomas Gleixner
2023-05-19 15:47                 ` Kent Overstreet
2023-05-19 16:14                   ` Mike Rapoport
2023-05-19 16:21                     ` Kent Overstreet
2023-05-18 16:58         ` Kent Overstreet
2023-05-18 17:15           ` Song Liu
2023-05-18 17:25             ` Kent Overstreet
2023-05-18 18:54               ` Song Liu
2023-05-18 19:01           ` Song Liu
2023-05-18 19:10             ` Kent Overstreet
2023-03-08  9:41 ` [RFC PATCH 2/5] mm/unmapped_alloc: add debugfs file similar to /proc/pagetypeinfo Mike Rapoport
2023-03-08  9:41 ` [RFC PATCH 3/5] mm/unmapped_alloc: add shrinker Mike Rapoport
2023-03-08  9:41 ` [RFC PATCH 4/5] EXPERIMENTAL: x86: use __GFP_UNMAPPED for modele_alloc() Mike Rapoport
2023-03-09  1:54   ` Edgecombe, Rick P
2023-03-08  9:41 ` [RFC PATCH 5/5] EXPERIMENTAL: mm/secretmem: use __GFP_UNMAPPED Mike Rapoport
2023-03-09  1:59 ` [RFC PATCH 0/5] Prototype for direct map awareness in page allocator Edgecombe, Rick P
2023-03-09 15:14   ` Mike Rapoport
2023-05-19 15:40     ` Sean Christopherson
2023-05-19 16:24       ` Mike Rapoport
2023-05-19 18:25         ` Sean Christopherson
2023-05-25 20:37           ` Mike Rapoport
2023-03-10  7:27 ` Christoph Hellwig
2023-03-27 14:27 ` Mike Rapoport

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8943835861763052c6a6e4d8cb774f6366b99092.camel@intel.com \
    --to=rick.p.edgecombe@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=peterz@infradead.org \
    --cc=rppt@kernel.org \
    --cc=song@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=vbabka@suse.cz \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox