From: Dan Williams Subject: Re: [PATCH] mm: replace FAULT_FLAG_SIZE with parameter to huge_fault Date: Tue, 7 Feb 2017 10:08:11 -0800 Message-ID: References: <148615748258.43180.1690152053774975329.stgit@djiang5-desk3.ch.intel.com> <20170206143648.GA461@infradead.org> <20170206172731.GA17515@infradead.org> <20170207084411.GA527@node.shutemov.name> <20170207174042.GB5578@node.shutemov.name> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: linux-xfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Matthew Wilcox , "linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org" , Dave Hansen , Christoph Hellwig , Linux MM , "Kirill A. Shutemov" , Jan Kara , Andrew Morton , linux-ext4 , Vlastimil Babka To: "Kirill A. Shutemov" Return-path: In-Reply-To: <20170207174042.GB5578-sVvlyX1904swdBt8bTSxpkEMvNT87kid@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-nvdimm-bounces-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org Sender: "Linux-nvdimm" List-Id: linux-ext4.vger.kernel.org On Tue, Feb 7, 2017 at 9:40 AM, Kirill A. Shutemov wrote: > On Tue, Feb 07, 2017 at 08:56:56AM -0800, Dan Williams wrote: >> On Tue, Feb 7, 2017 at 12:44 AM, Kirill A. Shutemov >> 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 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. > > Sounds good to me. > >> >> >> Hmm, yes, just need a scheme to not attempt huge_faults on pte-only handlers. >> >> > >> >> > Do we need anything more than checking vma->vm_flags for VM_HUGETLB? >> >> >> >> s/VM_HUGETLB/VM_HUGEPAGE/ >> >> >> >> ...but yes as long as we specify that a VM_HUGEPAGE handler must >> >> minimally handle pud and pmd. >> > >> > VM_HUGEPAGE is result of MADV_HUGEPAGE. It's not required to have THP in >> > the VMA. >> >> Filesystem-DAX and Device-DAX specify VM_HUGEPAGE by default. > > But why? Looks like abuse of the flag. Good question, that's been there since DAX was initially added and I don't see a good reason for it currently. I'll take a look at what you have for huge-tmpfs support.