From: Alistair Popple <apopple@nvidia•com>
To: David Hildenbrand <david@redhat•com>
Cc: linmiaohe@huawei•com, nvdimm@lists•linux.dev, jack@suse•cz,
linux-doc@vger•kernel.org, djwong@kernel•org,
dave.hansen@linux•intel.com, david@fromorbit•com,
peterx@redhat•com, linux-mm@kvack•org, will@kernel•org,
hch@lst•de, dave.jiang@intel•com, vishal.l.verma@intel•com,
willy@infradead•org, jgg@ziepe•ca, catalin.marinas@arm•com,
linux-ext4@vger•kernel.org, ira.weiny@intel•com,
jhubbard@nvidia•com, npiggin@gmail•com,
linux-cxl@vger•kernel.org, bhelgaas@google•com,
dan.j.williams@intel•com, linux-arm-kernel@lists•infradead.org,
tytso@mit•edu, logang@deltatee•com, linux-kernel@vger•kernel.org,
linux-xfs@vger•kernel.org, linux-fsdevel@vger•kernel.org,
linuxppc-dev@lists•ozlabs.org
Subject: Re: [PATCH 06/13] mm/memory: Add dax_insert_pfn
Date: Tue, 02 Jul 2024 20:47:50 +1000 [thread overview]
Message-ID: <87zfr0f4oo.fsf@nvdebian.thelocal> (raw)
In-Reply-To: <eb3120fd-44db-4cb3-af3c-a13f9e71380b@redhat.com>
David Hildenbrand <david@redhat•com> writes:
> On 27.06.24 02:54, Alistair Popple wrote:
>> Currently to map a DAX page the DAX driver calls vmf_insert_pfn. This
>> creates a special devmap PTE entry for the pfn but does not take a
>> reference on the underlying struct page for the mapping. This is
>> because DAX page refcounts are treated specially, as indicated by the
>> presence of a devmap entry.
>> To allow DAX page refcounts to be managed the same as normal page
>> refcounts introduce dax_insert_pfn. This will take a reference on the
>> underlying page much the same as vmf_insert_page, except it also
>> permits upgrading an existing mapping to be writable if
>> requested/possible.
>
> We have this comparably nasty vmf_insert_mixed() that FS dax abused to
> insert into !VM_MIXED VMAs. Is that abuse now stopping and are there
> maybe ways to get rid of vmf_insert_mixed()?
It's not something I've looked at but quite possibly - there are a
couple of other users of vmf_insert_mixed() that would need to be
removed though. I just added this as dax_insert_pfn() because as an API
it is really specific to the DAX use case. For example a more general
API would likely pass a page/folio.
next prev parent reply other threads:[~2024-07-02 10:51 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-27 0:54 [PATCH 00/13] fs/dax: Fix FS DAX page reference counts Alistair Popple
2024-06-27 0:54 ` [PATCH 01/13] mm/gup.c: Remove redundant check for PCI P2PDMA page Alistair Popple
2024-06-27 6:36 ` Dan Williams
2024-06-27 0:54 ` [PATCH 02/13] pci/p2pdma: Don't initialise page refcount to one Alistair Popple
2024-06-27 5:30 ` Christoph Hellwig
2024-06-29 21:28 ` Bjorn Helgaas
2024-06-27 0:54 ` [PATCH 03/13] fs/dax: Refactor wait for dax idle page Alistair Popple
2024-06-27 5:31 ` Christoph Hellwig
2024-06-27 0:54 ` [PATCH 04/13] fs/dax: Add dax_page_free callback Alistair Popple
2024-06-27 5:33 ` Christoph Hellwig
2024-06-27 23:48 ` Alistair Popple
2024-06-27 0:54 ` [PATCH 05/13] mm: Allow compound zone device pages Alistair Popple
2024-06-27 5:35 ` Christoph Hellwig
2024-06-27 0:54 ` [PATCH 06/13] mm/memory: Add dax_insert_pfn Alistair Popple
2024-06-27 5:22 ` Christoph Hellwig
2024-06-27 11:33 ` Jan Kara
2024-09-06 6:21 ` Alistair Popple
2024-07-02 7:18 ` David Hildenbrand
2024-07-02 10:47 ` Alistair Popple [this message]
2024-07-02 11:46 ` Christoph Hellwig
2024-07-02 11:53 ` David Hildenbrand
2024-06-27 0:54 ` [PATCH 07/13] huge_memory: Allow mappings of PUD sized pages Alistair Popple
2024-06-27 22:26 ` kernel test robot
2024-07-02 7:16 ` David Hildenbrand
2024-07-02 10:19 ` Alistair Popple
2024-07-02 11:02 ` David Hildenbrand
2024-07-02 11:30 ` Alistair Popple
2024-07-02 13:01 ` David Hildenbrand
2024-07-02 11:51 ` Christoph Hellwig
2024-06-27 0:54 ` [PATCH 08/13] huge_memory: Allow mappings of PMD " Alistair Popple
2024-06-27 0:54 ` [PATCH 09/13] gup: Don't allow FOLL_LONGTERM pinning of FS DAX pages Alistair Popple
2024-07-01 8:59 ` David Hildenbrand
2024-07-01 23:47 ` Alistair Popple
2024-07-02 10:48 ` David Hildenbrand
2024-06-27 0:54 ` [PATCH 10/13] fs/dax: Properly refcount fs dax pages Alistair Popple
2024-06-27 5:44 ` Christoph Hellwig
2024-09-06 6:00 ` Alistair Popple
2024-06-27 0:54 ` [PATCH 11/13] huge_memory: Remove dead vmf_insert_pXd code Alistair Popple
2024-07-05 14:24 ` Peter Xu
2024-07-09 4:07 ` Alistair Popple
2024-07-09 15:56 ` Peter Xu
2024-07-12 2:40 ` Alistair Popple
2024-07-12 15:52 ` Peter Xu
2024-06-27 0:54 ` [PATCH 12/13] mm: Remove pXX_devmap callers Alistair Popple
2024-06-27 0:54 ` [PATCH 13/13] mm: Remove devmap related functions and page table bits Alistair Popple
2024-06-27 23:04 ` kernel test robot
2024-06-28 2:12 ` kernel test robot
2024-07-08 11:35 ` Will Deacon
2024-06-27 6:58 ` [PATCH 00/13] fs/dax: Fix FS DAX page reference counts Dan Williams
2024-06-27 7:15 ` Alistair Popple
2024-06-27 20:24 ` Dan Williams
2024-06-28 0:06 ` Alistair Popple
2024-07-01 4:24 ` Dave Chinner
2024-07-01 8:33 ` Alistair Popple
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=87zfr0f4oo.fsf@nvdebian.thelocal \
--to=apopple@nvidia$(echo .)com \
--cc=bhelgaas@google$(echo .)com \
--cc=catalin.marinas@arm$(echo .)com \
--cc=dan.j.williams@intel$(echo .)com \
--cc=dave.hansen@linux$(echo .)intel.com \
--cc=dave.jiang@intel$(echo .)com \
--cc=david@fromorbit$(echo .)com \
--cc=david@redhat$(echo .)com \
--cc=djwong@kernel$(echo .)org \
--cc=hch@lst$(echo .)de \
--cc=ira.weiny@intel$(echo .)com \
--cc=jack@suse$(echo .)cz \
--cc=jgg@ziepe$(echo .)ca \
--cc=jhubbard@nvidia$(echo .)com \
--cc=linmiaohe@huawei$(echo .)com \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-cxl@vger$(echo .)kernel.org \
--cc=linux-doc@vger$(echo .)kernel.org \
--cc=linux-ext4@vger$(echo .)kernel.org \
--cc=linux-fsdevel@vger$(echo .)kernel.org \
--cc=linux-kernel@vger$(echo .)kernel.org \
--cc=linux-mm@kvack$(echo .)org \
--cc=linux-xfs@vger$(echo .)kernel.org \
--cc=linuxppc-dev@lists$(echo .)ozlabs.org \
--cc=logang@deltatee$(echo .)com \
--cc=npiggin@gmail$(echo .)com \
--cc=nvdimm@lists$(echo .)linux.dev \
--cc=peterx@redhat$(echo .)com \
--cc=tytso@mit$(echo .)edu \
--cc=vishal.l.verma@intel$(echo .)com \
--cc=will@kernel$(echo .)org \
--cc=willy@infradead$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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