From: Jan Kara <jack@suse.cz>
To: Dan Williams <dan.j.williams@intel.com>
Cc: "Kirill A. Shutemov" <kirill@shutemov.name>,
Christoph Hellwig <hch@infradead.org>,
Matthew Wilcox <mawilcox@microsoft.com>,
"linux-nvdimm@lists.01.org" <linux-nvdimm@lists.01.org>,
Dave Hansen <dave.hansen@linux.intel.com>,
linux-xfs@vger.kernel.org, Linux MM <linux-mm@kvack.org>,
Vlastimil Babka <vbabka@suse.cz>, Jan Kara <jack@suse.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-ext4 <linux-ext4@vger.kernel.org>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Subject: Re: [PATCH] mm: replace FAULT_FLAG_SIZE with parameter to huge_fault
Date: Wed, 8 Feb 2017 09:41:56 +0100 [thread overview]
Message-ID: <20170208084156.GD26317@quack2.suse.cz> (raw)
In-Reply-To: <CAPcyv4h1LvbEqBi=F=BTtLrHHOvAH3MU2OBDs444-dzwNyupFQ@mail.gmail.com>
On Tue 07-02-17 08:56:56, Dan Williams wrote:
> On Tue, Feb 7, 2017 at 12:44 AM, Kirill A. Shutemov
> <kirill@shutemov.name> wrote:
> > On Mon, Feb 06, 2017 at 09:30:22AM -0800, Dan Williams wrote:
> >> On Mon, Feb 6, 2017 at 9:27 AM, Christoph Hellwig <hch@infradead.org> wrote:
> >> > On Mon, Feb 06, 2017 at 08:24:48AM -0800, Dan Williams wrote:
> >> >> > Also can be use this opportunity
> >> >> > to fold ->huge_fault into ->fault?
> >
> > BTW, for tmpfs we already use ->fault for both small and huge pages.
> > If ->fault returned THP, core mm look if it's possible to map the page as
> > huge in this particular VMA (due to size/alignment). If yes mm maps the
> > page with PMD, if not fallback to PTE.
> >
> > I think it would be nice to do the same for DAX: filesystem provides core
> > mm with largest page this part of file can be mapped with (base aligned
> > address + lenght for DAX) and core mm sort out the rest.
>
> For DAX we would need plumb pfn_t into the core mm so that we have the
> PFN_DEV and PFN_MAP flags beyond the raw pfn.
So we can pass necessary information through struct vm_fault rather easily.
However due to DAX locking we cannot really "return" pfn for generic code
to install (we need to unlock radix tree locks after modifying page
tables). So if we want generic code to handle PFNs what needs to be done is
to teach finish_fault() to handle pfn_t which is passed to it and install
it in page tables.
Long term we could transition all page fault handlers (at least the
non-trivial ones) to using finish_fault() which would IMO make the code
flow easier to follow and export less of MM internals into drivers. However
there's so many fault handlers that I didn't have a good motivation to do
that yet.
Honza
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
prev parent reply other threads:[~2017-02-08 8:56 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-03 21:31 [PATCH] mm: replace FAULT_FLAG_SIZE with parameter to huge_fault Dave Jiang
2017-02-03 21:47 ` Dan Williams
2017-02-03 22:56 ` kbuild test robot
2017-02-03 23:25 ` Dave Jiang
2017-02-03 23:26 ` Dan Williams
2017-02-04 0:00 ` Dan Williams
2017-02-04 0:07 ` Dave Jiang
2017-02-09 4:34 ` [kbuild-all] " Ye Xiaolong
2017-02-04 3:51 ` kbuild test robot
2017-02-06 8:51 ` Jan Kara
2017-02-06 14:36 ` Christoph Hellwig
2017-02-06 16:24 ` Dan Williams
2017-02-06 17:27 ` Christoph Hellwig
2017-02-06 17:30 ` Dan Williams
2017-02-07 8:44 ` Kirill A. Shutemov
2017-02-07 16:56 ` Dan Williams
2017-02-07 17:40 ` Kirill A. Shutemov
2017-02-07 18:08 ` Dan Williams
2017-02-08 8:41 ` Jan Kara [this message]
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=20170208084156.GD26317@quack2.suse.cz \
--to=jack@suse.cz \
--cc=akpm@linux-foundation.org \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=hch@infradead.org \
--cc=jack@suse.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=kirill@shutemov.name \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nvdimm@lists.01.org \
--cc=linux-xfs@vger.kernel.org \
--cc=mawilcox@microsoft.com \
--cc=vbabka@suse.cz \
/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;
as well as URLs for NNTP newsgroup(s).