From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
To: Hillf Danton <dhillf@gmail.com>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
David Rientjes <rientjes@google.com>,
Andi Kleen <andi@firstfloor.org>,
Wu Fengguang <fengguang.wu@intel.com>,
Andrea Arcangeli <aarcange@redhat.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/6] thp: optimize away unnecessary page table locking
Date: Fri, 13 Jan 2012 10:14:25 -0500 [thread overview]
Message-ID: <4F104A51.2000701@ah.jp.nec.com> (raw)
In-Reply-To: <CAJd=RBB6azf9nin5tjqTtHakxy896rCxr6ErK4p2KDrke_goEA@mail.gmail.com>
Hi Hillf,
(1/13/2012 7:04), Hillf Danton wrote:
[...]
>> +/*
>> + * Returns 1 if a given pmd is mapping a thp and stable (not under splitting.)
>> + * Returns 0 otherwise. Note that if it returns 1, this routine returns without
>> + * unlocking page table locks. So callers must unlock them.
>> + */
>> +int pmd_trans_huge_stable(pmd_t *pmd, struct vm_area_struct *vma)
>> +{
>> + VM_BUG_ON(!rwsem_is_locked(&vma->vm_mm->mmap_sem));
>> +
>> + if (!pmd_trans_huge(*pmd))
>> + return 0;
>> +
>> + spin_lock(&vma->vm_mm->page_table_lock);
>> + if (likely(pmd_trans_huge(*pmd))) {
>> + if (pmd_trans_splitting(*pmd)) {
>> + spin_unlock(&vma->vm_mm->page_table_lock);
>> + wait_split_huge_page(vma->anon_vma, pmd);
>> + return 0;
>> + } else {
>
> spin_unlock(&vma->vm_mm->page_table_lock); yes?
No. Unlocking is supposed to be done by the caller as commented.
Thanks,
Naoya
>
>> + /* Thp mapped by 'pmd' is stable, so we can
>> + * handle it as it is. */
>> + return 1;
>> + }
>> + }
>> + spin_unlock(&vma->vm_mm->page_table_lock);
>> + return 0;
>> +}
>> +
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
To: Hillf Danton <dhillf@gmail.com>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
David Rientjes <rientjes@google.com>,
Andi Kleen <andi@firstfloor.org>,
Wu Fengguang <fengguang.wu@intel.com>,
Andrea Arcangeli <aarcange@redhat.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/6] thp: optimize away unnecessary page table locking
Date: Fri, 13 Jan 2012 10:14:25 -0500 [thread overview]
Message-ID: <4F104A51.2000701@ah.jp.nec.com> (raw)
In-Reply-To: <CAJd=RBB6azf9nin5tjqTtHakxy896rCxr6ErK4p2KDrke_goEA@mail.gmail.com>
Hi Hillf,
(1/13/2012 7:04), Hillf Danton wrote:
[...]
>> +/*
>> + * Returns 1 if a given pmd is mapping a thp and stable (not under splitting.)
>> + * Returns 0 otherwise. Note that if it returns 1, this routine returns without
>> + * unlocking page table locks. So callers must unlock them.
>> + */
>> +int pmd_trans_huge_stable(pmd_t *pmd, struct vm_area_struct *vma)
>> +{
>> + VM_BUG_ON(!rwsem_is_locked(&vma->vm_mm->mmap_sem));
>> +
>> + if (!pmd_trans_huge(*pmd))
>> + return 0;
>> +
>> + spin_lock(&vma->vm_mm->page_table_lock);
>> + if (likely(pmd_trans_huge(*pmd))) {
>> + if (pmd_trans_splitting(*pmd)) {
>> + spin_unlock(&vma->vm_mm->page_table_lock);
>> + wait_split_huge_page(vma->anon_vma, pmd);
>> + return 0;
>> + } else {
>
> spin_unlock(&vma->vm_mm->page_table_lock); yes?
No. Unlocking is supposed to be done by the caller as commented.
Thanks,
Naoya
>
>> + /* Thp mapped by 'pmd' is stable, so we can
>> + * handle it as it is. */
>> + return 1;
>> + }
>> + }
>> + spin_unlock(&vma->vm_mm->page_table_lock);
>> + return 0;
>> +}
>> +
next prev parent reply other threads:[~2012-01-13 15:20 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-12 19:34 [PATCH 0/6 v3] pagemap handles transparent hugepage Naoya Horiguchi
2012-01-12 19:34 ` Naoya Horiguchi
2012-01-12 19:34 ` [PATCH 1/6] pagemap: avoid splitting thp when reading /proc/pid/pagemap Naoya Horiguchi
2012-01-12 19:34 ` Naoya Horiguchi
2012-01-14 17:00 ` Andrea Arcangeli
2012-01-14 17:00 ` Andrea Arcangeli
2012-01-15 12:06 ` Andrea Arcangeli
2012-01-15 12:06 ` Andrea Arcangeli
2012-01-16 17:18 ` Naoya Horiguchi
2012-01-16 17:18 ` Naoya Horiguchi
2012-01-12 19:34 ` [PATCH 2/6] thp: optimize away unnecessary page table locking Naoya Horiguchi
2012-01-12 19:34 ` Naoya Horiguchi
2012-01-13 12:04 ` Hillf Danton
2012-01-13 12:04 ` Hillf Danton
2012-01-13 15:14 ` Naoya Horiguchi [this message]
2012-01-13 15:14 ` Naoya Horiguchi
2012-01-14 3:24 ` Hillf Danton
2012-01-14 3:24 ` Hillf Danton
2012-01-14 17:19 ` Andrea Arcangeli
2012-01-14 17:19 ` Andrea Arcangeli
2012-01-12 19:34 ` [PATCH 3/6] pagemap: export KPF_THP Naoya Horiguchi
2012-01-12 19:34 ` Naoya Horiguchi
2012-01-12 19:34 ` [PATCH 4/6] pagemap: document KPF_THP and make page-types aware of it Naoya Horiguchi
2012-01-12 19:34 ` Naoya Horiguchi
2012-01-12 19:34 ` [PATCH 5/6] introduce thp_ptep_get() Naoya Horiguchi
2012-01-12 19:34 ` Naoya Horiguchi
2012-01-12 19:34 ` [PATCH 6/6] pagemap: introduce data structure for pagemap entry Naoya Horiguchi
2012-01-12 19:34 ` Naoya Horiguchi
2012-01-13 21:54 ` [PATCH 0/6 v3] pagemap handles transparent hugepage Andrew Morton
2012-01-13 21:54 ` Andrew Morton
-- strict thread matches above, loose matches on Subject: below --
2012-01-16 17:19 [PATCH 2/6] thp: optimize away unnecessary page table locking Naoya Horiguchi
2012-01-16 17:19 ` Naoya Horiguchi
2012-01-27 23:02 [PATCH 0/6 v4] pagemap handles transparent hugepage Naoya Horiguchi
2012-01-27 23:02 ` [PATCH 2/6] thp: optimize away unnecessary page table locking Naoya Horiguchi
2012-01-27 23:02 ` Naoya Horiguchi
2012-01-28 11:23 ` Hillf Danton
2012-01-28 11:23 ` Hillf Danton
2012-01-28 22:33 ` Naoya Horiguchi
2012-01-28 22:33 ` Naoya Horiguchi
2012-01-30 6:22 ` KAMEZAWA Hiroyuki
2012-01-30 6:22 ` KAMEZAWA Hiroyuki
2012-02-02 5:27 ` Naoya Horiguchi
2012-02-02 5:27 ` Naoya Horiguchi
2012-02-02 8:32 ` KAMEZAWA Hiroyuki
2012-02-02 8:32 ` KAMEZAWA Hiroyuki
2012-02-08 15:51 [PATCH 0/6 v5] pagemap handles transparent hugepage Naoya Horiguchi
2012-02-08 15:51 ` [PATCH 2/6] thp: optimize away unnecessary page table locking Naoya Horiguchi
2012-02-08 15:51 ` Naoya Horiguchi
2012-02-09 2:19 ` KAMEZAWA Hiroyuki
2012-02-09 2:19 ` KAMEZAWA Hiroyuki
2012-02-19 21:21 ` Hugh Dickins
2012-02-19 21:21 ` Hugh Dickins
2012-02-20 7:28 ` Naoya Horiguchi
2012-02-20 7:28 ` Naoya Horiguchi
2012-02-20 11:38 ` Hugh Dickins
2012-02-20 11:38 ` Hugh Dickins
2012-02-20 11:54 ` Jiri Slaby
2012-02-20 11:54 ` Jiri Slaby
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F104A51.2000701@ah.jp.nec.com \
--to=n-horiguchi@ah.jp.nec.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=dhillf@gmail.com \
--cc=fengguang.wu@intel.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=rientjes@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.