From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Mon, 9 Oct 2006 12:26:35 +0200 From: Nick Piggin Subject: Re: [patch 3/3] mm: fault handler to replace nopage and populate Message-ID: <20061009102635.GC3487@wotan.suse.de> References: <20061007105758.14024.70048.sendpatchset@linux.site> <20061007105853.14024.95383.sendpatchset@linux.site> <20061007134407.6aa4dd26.akpm@osdl.org> <1160351174.14601.3.camel@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1160351174.14601.3.camel@localhost.localdomain> Sender: owner-linux-mm@kvack.org Return-Path: To: Benjamin Herrenschmidt Cc: Andrew Morton , Linux Memory Management , Linux Kernel List-ID: On Mon, Oct 09, 2006 at 09:46:13AM +1000, Benjamin Herrenschmidt wrote: > > > - So is the plan here to migrate all code over to using > > vm_operations.fault() and to finally remove vm_operations.nopage and > > .nopfn? If so, that'd be nice. > > Agreed. That would also allow to pass down knowledge of wether we can be > interruptible or not (coming from userland or not). Useful in a few case > when dealing with strange hw mappings. > > Now, fault() still returns a struct page and thus doesn't quite fix the > problem I'm exposing in my "User switchable HW mappings & cie" mail I > posted today in which case we need to either duplicate the truncate > logic in no_pfn() or get rid of no_pfn() and set the PTE from the fault > handler . I tend to prefer the later provided that it's strictly limited > for mappings that do not have a struct page though. The truncate logic can't be duplicated because it works on struct pages. What sounds best, if you use nopfn, is to do your own internal synchronisation against your unmap call. Obviously you can't because you have no ->nopfn_done call with which to drop locks ;) So, hmm yes I have a good idea for how fault() could take over ->nopfn as well: just return NULL, set the fault type to VM_FAULT_MINOR, and have the ->fault handler install the pte. It will require a new helper along the lines of vm_insert_page. I'll code that up in my next patchset. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org