Thread (7 messages) 7 messages, 4 authors, 2012-07-20

Re: [RFC PATCH] mm: hugetlbfs: Close race during teardown of hugetlbfs shared page tables

From: Mel Gorman <mgorman@suse.de>
Date: 2012-07-20 13:43:50
Also in: lkml

On Thu, Jul 19, 2012 at 09:08:34AM +0000, Cong Wang wrote:
On Wed, 18 Jul 2012 at 10:43 GMT, Mel Gorman [off-list ref] wrote:
quoted
+		if (!down_read_trylock(&svma->vm_mm->mmap_sem)) {
+			mutex_unlock(&mapping->i_mmap_mutex);
+			goto retry;
+		}
+
+		smmap_sem = &svma->vm_mm->mmap_sem;
+		spage_table_lock = &svma->vm_mm->page_table_lock;
+		spin_lock_nested(spage_table_lock, SINGLE_DEPTH_NESTING);
 
 		saddr = page_table_shareable(svma, vma, addr, idx);
 		if (saddr) {
@@ -85,6 +108,10 @@ static void huge_pmd_share(struct mm_struct *mm, unsigned long addr, pud_t *pud)
 				break;
 			}
 		}
+		up_read(smmap_sem);
+		spin_unlock(spage_table_lock);
Looks like we should do spin_unlock() before up_read(),
in the reverse order of how they get accquired.
Will fix, thanks for pointing this out.

As an aside, I would prefer if you did not drop people from the CC list. I
would have missed this mail for a long time if it hadn't been pointed out
to me privately.

-- 
Mel Gorman
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help