Messages in this thread | | | Date | Thu, 4 Apr 2013 15:45:45 +0200 | From | Andrea Arcangeli <> | Subject | Re: [PATCH] THP: Use explicit memory barrier |
| |
On Wed, Apr 03, 2013 at 09:14:01AM +0900, Minchan Kim wrote: > clear_huge_page(page, haddr, HPAGE_PMD_NR); > + /* > + * The memory barrier inside __SetPageUptodate makes sure that > + * clear_huge_page writes become visible after the set_pmd_at()
s/after/before/
> + * write. > + */ > __SetPageUptodate(page); > > spin_lock(&mm->page_table_lock); > @@ -724,12 +729,6 @@ static int __do_huge_pmd_anonymous_page(struct mm_struct *mm, > } else { > pmd_t entry; > entry = mk_huge_pmd(page, vma); > - /* > - * The spinlocking to take the lru_lock inside > - * page_add_new_anon_rmap() acts as a full memory > - * barrier to be sure clear_huge_page writes become > - * visible after the set_pmd_at() write. > - */ > page_add_new_anon_rmap(page, vma, haddr); > set_pmd_at(mm, haddr, pmd, entry); > pgtable_trans_huge_deposit(mm, pgtable); > diff --git a/mm/memory.c b/mm/memory.c > index 494526a..d0da51e 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3196,6 +3196,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma, > page = alloc_zeroed_user_highpage_movable(vma, address); > if (!page) > goto oom; > + /* > + * The memory barrier inside __SetPageUptodate makes sure that > + * preceeding stores to the page contents become visible after > + * the set_pte_at() write. > + */
s/after/before/
After the above correction it looks nice cleanup, thanks!
Acked-by: Andrea Arcangeli <aarcange@redhat.com>
| |