locking, tsx: Disable anon vma lock elision for now
While this has a low abort rate, the lock is taken very frequently, which
adds some cost to the single thread case. Disable elision for it for now.
Should really batch this lock.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
diff --git a/mm/mmap.c b/mm/mmap.c
index d83dffa..357b74a 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -782,6 +782,11 @@
if (anon_vma) {
VM_BUG_ON(adjust_next && next->anon_vma &&
anon_vma != next->anon_vma);
+ /*
+ * For now to avoid too many transactions.
+ * TBD batch this lock.
+ */
+ disable_txn();
anon_vma_lock_write(anon_vma);
anon_vma_interval_tree_pre_update_vma(vma);
if (adjust_next)
@@ -847,6 +852,7 @@
if (adjust_next)
anon_vma_interval_tree_post_update_vma(next);
anon_vma_unlock_write(anon_vma);
+ reenable_txn();
}
if (mapping)
mutex_unlock(&mapping->i_mmap_mutex);