On 12/12/18 2:14 PM, Jerome Glisse wrote: > On Wed, Dec 12, 2018 at 02:11:58PM -0800, John Hubbard wrote: >> On 12/12/18 2:04 PM, Jerome Glisse wrote: >>> On Wed, Dec 12, 2018 at 01:56:00PM -0800, John Hubbard wrote: >>>> On 12/12/18 1:30 PM, Jerome Glisse wrote: >>>>> On Wed, Dec 12, 2018 at 08:27:35AM -0800, Dan Williams wrote: >>>>>> On Wed, Dec 12, 2018 at 7:03 AM Jerome Glisse <jglisse@xxxxxxxxxx> wrote: >>>>>>> >>>>>>> On Mon, Dec 10, 2018 at 11:28:46AM +0100, Jan Kara wrote: >>>>>>>> On Fri 07-12-18 21:24:46, Jerome Glisse wrote: [...] >>> >>>>> Patch 1: register mmu notifier >>>>> Patch 2: listen to MMU_NOTIFY_TRUNCATE and MMU_NOTIFY_UNMAP >>>>> when that happens update the device page table or >>>>> usage to point to a crappy page and do put_user_page >>>>> on all previously held page >>>> >>>> Minor point, this sequence should be done within a wrapper around existing >>>> get_user_pages(), such as get_user_pages_revokable() or something. >>> >>> No we want to teach everyone to abide by the rules, if we add yet another >>> GUP function prototype people will use the one where they don;t have to >>> say they abide by the rules. It is time we advertise the fact that GUP >>> should not be use willy nilly for anything without worrying about the >>> implication it has :) >> >> Well, the best way to do that is to provide a named function call that >> implements the rules. That also makes it easy to grep around and see which >> call sites still need upgrades, and which don't. >> >>> >>> So i would rather see a consolidation in the number of GUP prototype we >>> have than yet another one. >> >> We could eventually get rid of the older GUP prototypes, once we're done >> converting. Having a new, named function call will *without question* make >> the call site conversion go much easier, and the end result is also better: >> the common code is in a central function, rather than being at all the call >> sites. >> > > Then last patch in the patchset must remove all GUP prototype except > ones with the right API :) > Yes, exactly. thanks, -- John Hubbard NVIDIA