All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adam Turowski <adam.s.turowski@gmail.com>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: linux-mm@kvack.org
Subject: Re: How to mmap any address space using huge pages?
Date: Mon, 18 Oct 2021 12:14:41 +0200	[thread overview]
Message-ID: <CAPmneK=RVJFPQHSrkzNcys=fBcCyWccOZ9kJccvNitcLKW8T+g@mail.gmail.com> (raw)
In-Reply-To: <20211016155026.GB3686969@ziepe.ca>

> On Sat, Oct 16, 2021 at 11:46:59AM +0200, Adam Turowski wrote:
> > Hello all,
> > I have a device and I need to mmap it into a user space using 1GB huge
> > pages. AFAIK I cannot use HugeTLB nor THP because they're backed by the
> > memory. The remap_pfn_range doesn't use huge pages neither. So I used a
> > huge_fault handler to set up the pud descriptor myself (arm64 here, so no
> > transparent puds) and that works. The problem is that the kernel warns
> > about a bad pud when the vma mapping is removed, the zap_pud_range function
> > doesn't accept block puds. The vunmap_pud_range function works with block
> > puds and checks for their presence and calls the pud_clear_huge function.
> > If I add this function call to the zap_pud_range function, the warnings are
> > gone.
> >
> > Am I missing something? What is the proper way to mmap (and munmap) any
> > address space using huge pages (esp. 1GB pages)?
>
> AFAIK it can't be done today.
>
> Certainly non-struct page memory cannot be installed in a PUD
>
> If you create a ZONE_DEVICE struct page using memremap_pages() then
> they can be inserted using vmf_insert_pfn_pud() - however that
> requires arch support for pud_devmap() which only x86 does right now.
>

OK, I can live with "bad pud" warnings for now.
Would it be a bad idea to make the zap_pud_range function to look like
vunmap_pud_range function by adding a pud_clear_huge(pud) call?

--
Regards,
Adam Turowski


  reply	other threads:[~2021-10-18 10:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-16  9:46 How to mmap any address space using huge pages? Adam Turowski
2021-10-16 15:50 ` Jason Gunthorpe
2021-10-18 10:14   ` Adam Turowski [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-10-15 13:07 Adam Turowski
2021-10-21  7:16 ` Chan Kim
2021-10-21  7:22   ` Adam Turowski

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='CAPmneK=RVJFPQHSrkzNcys=fBcCyWccOZ9kJccvNitcLKW8T+g@mail.gmail.com' \
    --to=adam.s.turowski@gmail.com \
    --cc=jgg@ziepe.ca \
    --cc=linux-mm@kvack.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.