Re: [PATCH 2/2] thp: support split page table lock

From: Naoya Horiguchi
Date: Tue Sep 03 2013 - 16:53:53 EST


> diff --git v3.11-rc3.orig/mm/huge_memory.c v3.11-rc3/mm/huge_memory.c
> index 243e710..3cb29e1 100644
> --- v3.11-rc3.orig/mm/huge_memory.c
> +++ v3.11-rc3/mm/huge_memory.c
...
> @@ -864,14 +868,17 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm,
> pmd_t pmd;
> pgtable_t pgtable;
> int ret;
> + spinlock_t *uninitialized_var(dst_ptl), *uninitialized_var(src_ptl);
>
> ret = -ENOMEM;
> pgtable = pte_alloc_one(dst_mm, addr);
> if (unlikely(!pgtable))
> goto out;
>
> - spin_lock(&dst_mm->page_table_lock);
> - spin_lock_nested(&src_mm->page_table_lock, SINGLE_DEPTH_NESTING);
> + dst_ptl = huge_pmd_lockptr(dst_mm, dst_ptl);
> + src_ptl = huge_pmd_lockptr(src_mm, src_ptl);

I found one mistake. This should be:

+ dst_ptl = huge_pmd_lockptr(dst_mm, dst_pmd);
+ src_ptl = huge_pmd_lockptr(src_mm, src_pmd);

Thanks,
Naoya Horiguchi

> + spin_lock(dst_ptl);
> + spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING);
>
> ret = -EAGAIN;
> pmd = *src_pmd;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/