diff options
author | Dan Williams <dan.j.williams@intel.com> | 2019-10-21 09:29:20 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2019-10-22 22:53:02 -0700 |
commit | 6370740e5f8ef12de7f9a9bf48a0393d202cd827 (patch) | |
tree | 193c82c6296d07c5ef4da78ea8c0fa0f2ff9b80e /Documentation/RCU | |
parent | 4f5cafb5cb8471e54afdc9054d973535614f7675 (diff) |
fs/dax: Fix pmd vs pte conflict detection
Users reported a v5.3 performance regression and inability to establish
huge page mappings. A revised version of the ndctl "dax.sh" huge page
unit test identifies commit 23c84eb78375 "dax: Fix missed wakeup with
PMD faults" as the source.
Update get_unlocked_entry() to check for NULL entries before checking
the entry order, otherwise NULL is misinterpreted as a present pte
conflict. The 'order' check needs to happen before the locked check as
an unlocked entry at the wrong order must fallback to lookup the correct
order.
Reported-by: Jeff Smits <jeff.smits@intel.com>
Reported-by: Doug Nelson <doug.nelson@intel.com>
Cc: <stable@vger.kernel.org>
Fixes: 23c84eb78375 ("dax: Fix missed wakeup with PMD faults")
Reviewed-by: Jan Kara <jack@suse.cz>
Cc: Jeff Moyer <jmoyer@redhat.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Link: https://lore.kernel.org/r/157167532455.3945484.11971474077040503994.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'Documentation/RCU')
0 files changed, 0 insertions, 0 deletions