Messages in this thread |  | | From | Dan Williams <> | Date | Sun, 30 Apr 2017 19:45:08 -0700 | Subject | Re: [PATCH v2] mm, zone_device: replace {get, put}_zone_device_page() with a single reference |
| |
On Sat, Apr 29, 2017 at 7:18 AM, Ingo Molnar <mingo@kernel.org> wrote: > > * Dan Williams <dan.j.williams@intel.com> wrote: > >> Kirill points out that the calls to {get,put}_dev_pagemap() can be >> removed from the mm fast path if we take a single get_dev_pagemap() >> reference to signify that the page is alive and use the final put of the >> page to drop that reference. >> >> This does require some care to make sure that any waits for the >> percpu_ref to drop to zero occur *after* devm_memremap_page_release(), >> since it now maintains its own elevated reference. >> >> Cc: Ingo Molnar <mingo@redhat.com> >> Cc: Jérôme Glisse <jglisse@redhat.com> >> Cc: Andrew Morton <akpm@linux-foundation.org> >> Reviewed-by: Logan Gunthorpe <logang@deltatee.com> >> Suggested-by: Kirill Shutemov <kirill.shutemov@linux.intel.com> >> Tested-by: Kirill Shutemov <kirill.shutemov@linux.intel.com> >> Signed-off-by: Dan Williams <dan.j.williams@intel.com> > > This changelog is lacking an explanation about how this solves the crashes you > were seeing. >
Kirill? It wasn't clear to me why the conversion to generic get_user_pages_fast() caused the reference counts to be off.
|  |