On Fri, Jun 28, 2019 at 09:39:01AM -0700, Dan Williams wrote:
On Fri, Jun 28, 2019 at 9:37 AM Matthew Wilcox
> That was the conclusion I came to; that one thread holding the mmap sem
> for read isn't being woken up when it should be. Just need to find it ...
> obviously it's something to do with the PMD entries.
Can you explain to me one more time, yes I'm slow on the uptake on
this, the difference between xas_load() and xas_find_conflict() and
why it's ok for dax_lock_page() to use xas_load() while
grab_mapping_entry() uses xas_find_conflict()?
When used with a non-zero 'order', xas_find_conflict() will return
an entry whereas xas_load() might return a pointer to a node.
dax_lock_page() always uses a zero order, so they would always do the
same thing (xas_find_conflict() would be less efficient).