From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> To: linux-mm@kvack.org Cc: Dave Hansen <dave.hansen@intel.com>, Andrew Morton <akpm@linux-foundation.org>, Hugh Dickins <hughd@google.com>, "Kirill A. Shutemov" <kirill@shutemov.name>, linux-kernel@vger.kernel.org Subject: [PATCH -mm v2 01/11] pagewalk: remove pgd_entry() and pud_entry() Date: Thu, 12 Jun 2014 17:48:01 -0400 [thread overview] Message-ID: <1402609691-13950-2-git-send-email-n-horiguchi@ah.jp.nec.com> (raw) In-Reply-To: <1402609691-13950-1-git-send-email-n-horiguchi@ah.jp.nec.com> Currently no user of page table walker sets ->pgd_entry() or ->pud_entry(), so checking their existence in each loop is just wasting CPU cycle. So let's remove it to reduce overhead. Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> --- include/linux/mm.h | 6 ------ mm/pagewalk.c | 18 +----------------- 2 files changed, 1 insertion(+), 23 deletions(-) diff --git mmotm-2014-05-21-16-57.orig/include/linux/mm.h mmotm-2014-05-21-16-57/include/linux/mm.h index 563c79ea07bd..b4aa6579f2b1 100644 --- mmotm-2014-05-21-16-57.orig/include/linux/mm.h +++ mmotm-2014-05-21-16-57/include/linux/mm.h @@ -1092,8 +1092,6 @@ void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma, /** * mm_walk - callbacks for walk_page_range - * @pgd_entry: if set, called for each non-empty PGD (top-level) entry - * @pud_entry: if set, called for each non-empty PUD (2nd-level) entry * @pmd_entry: if set, called for each non-empty PMD (3rd-level) entry * this handler is required to be able to handle * pmd_trans_huge() pmds. They may simply choose to @@ -1115,10 +1113,6 @@ void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma, * (see the comment on walk_page_range() for more details) */ struct mm_walk { - int (*pgd_entry)(pgd_t *pgd, unsigned long addr, - unsigned long next, struct mm_walk *walk); - int (*pud_entry)(pud_t *pud, unsigned long addr, - unsigned long next, struct mm_walk *walk); int (*pmd_entry)(pmd_t *pmd, unsigned long addr, unsigned long next, struct mm_walk *walk); int (*pte_entry)(pte_t *pte, unsigned long addr, diff --git mmotm-2014-05-21-16-57.orig/mm/pagewalk.c mmotm-2014-05-21-16-57/mm/pagewalk.c index 2eda3dbe0b52..e734f63276c2 100644 --- mmotm-2014-05-21-16-57.orig/mm/pagewalk.c +++ mmotm-2014-05-21-16-57/mm/pagewalk.c @@ -115,14 +115,6 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, continue; } - if (walk->pud_entry) { - err = walk->pud_entry(pud, addr, next, walk); - if (skip_lower_level_walking(walk)) - continue; - if (err) - break; - } - if (walk->pmd_entry || walk->pte_entry) { err = walk_pmd_range(pud, addr, next, walk); if (err) @@ -152,15 +144,7 @@ static int walk_pgd_range(unsigned long addr, unsigned long end, continue; } - if (walk->pgd_entry) { - err = walk->pgd_entry(pgd, addr, next, walk); - if (skip_lower_level_walking(walk)) - continue; - if (err) - break; - } - - if (walk->pud_entry || walk->pmd_entry || walk->pte_entry) { + if (walk->pmd_entry || walk->pte_entry) { err = walk_pud_range(pgd, addr, next, walk); if (err) break; -- 1.9.3
WARNING: multiple messages have this Message-ID (diff)
From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> To: linux-mm@kvack.org Cc: Dave Hansen <dave.hansen@intel.com>, Andrew Morton <akpm@linux-foundation.org>, Hugh Dickins <hughd@google.com>, "Kirill A. Shutemov" <kirill@shutemov.name>, linux-kernel@vger.kernel.org Subject: [PATCH -mm v2 01/11] pagewalk: remove pgd_entry() and pud_entry() Date: Thu, 12 Jun 2014 17:48:01 -0400 [thread overview] Message-ID: <1402609691-13950-2-git-send-email-n-horiguchi@ah.jp.nec.com> (raw) In-Reply-To: <1402609691-13950-1-git-send-email-n-horiguchi@ah.jp.nec.com> Currently no user of page table walker sets ->pgd_entry() or ->pud_entry(), so checking their existence in each loop is just wasting CPU cycle. So let's remove it to reduce overhead. Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> --- include/linux/mm.h | 6 ------ mm/pagewalk.c | 18 +----------------- 2 files changed, 1 insertion(+), 23 deletions(-) diff --git mmotm-2014-05-21-16-57.orig/include/linux/mm.h mmotm-2014-05-21-16-57/include/linux/mm.h index 563c79ea07bd..b4aa6579f2b1 100644 --- mmotm-2014-05-21-16-57.orig/include/linux/mm.h +++ mmotm-2014-05-21-16-57/include/linux/mm.h @@ -1092,8 +1092,6 @@ void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma, /** * mm_walk - callbacks for walk_page_range - * @pgd_entry: if set, called for each non-empty PGD (top-level) entry - * @pud_entry: if set, called for each non-empty PUD (2nd-level) entry * @pmd_entry: if set, called for each non-empty PMD (3rd-level) entry * this handler is required to be able to handle * pmd_trans_huge() pmds. They may simply choose to @@ -1115,10 +1113,6 @@ void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma, * (see the comment on walk_page_range() for more details) */ struct mm_walk { - int (*pgd_entry)(pgd_t *pgd, unsigned long addr, - unsigned long next, struct mm_walk *walk); - int (*pud_entry)(pud_t *pud, unsigned long addr, - unsigned long next, struct mm_walk *walk); int (*pmd_entry)(pmd_t *pmd, unsigned long addr, unsigned long next, struct mm_walk *walk); int (*pte_entry)(pte_t *pte, unsigned long addr, diff --git mmotm-2014-05-21-16-57.orig/mm/pagewalk.c mmotm-2014-05-21-16-57/mm/pagewalk.c index 2eda3dbe0b52..e734f63276c2 100644 --- mmotm-2014-05-21-16-57.orig/mm/pagewalk.c +++ mmotm-2014-05-21-16-57/mm/pagewalk.c @@ -115,14 +115,6 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, continue; } - if (walk->pud_entry) { - err = walk->pud_entry(pud, addr, next, walk); - if (skip_lower_level_walking(walk)) - continue; - if (err) - break; - } - if (walk->pmd_entry || walk->pte_entry) { err = walk_pmd_range(pud, addr, next, walk); if (err) @@ -152,15 +144,7 @@ static int walk_pgd_range(unsigned long addr, unsigned long end, continue; } - if (walk->pgd_entry) { - err = walk->pgd_entry(pgd, addr, next, walk); - if (skip_lower_level_walking(walk)) - continue; - if (err) - break; - } - - if (walk->pud_entry || walk->pmd_entry || walk->pte_entry) { + if (walk->pmd_entry || walk->pte_entry) { err = walk_pud_range(pgd, addr, next, walk); if (err) break; -- 1.9.3 -- 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>
next prev parent reply other threads:[~2014-06-12 21:48 UTC|newest] Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-06-12 21:48 [PATCH -mm v2 00/11] pagewalk: standardize current users, move pmd locking, apply to mincore Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi [this message] 2014-06-12 21:48 ` [PATCH -mm v2 01/11] pagewalk: remove pgd_entry() and pud_entry() Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 02/11] madvise: cleanup swapin_walk_pmd_entry() Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-15 20:24 ` Hugh Dickins 2014-06-15 20:24 ` Hugh Dickins 2014-06-16 15:59 ` Naoya Horiguchi 2014-06-16 15:59 ` Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 03/11] memcg: separate mem_cgroup_move_charge_pte_range() Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 04/11] pagewalk: move pmd_trans_huge_lock() from callbacks to common code Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-17 14:27 ` Jerome Marchand 2014-06-17 14:27 ` Jerome Marchand 2014-06-17 15:01 ` Naoya Horiguchi 2014-06-17 15:01 ` Naoya Horiguchi 2014-06-18 15:13 ` Jerome Marchand 2014-06-18 15:13 ` Jerome Marchand 2014-06-18 15:31 ` Naoya Horiguchi 2014-06-18 15:31 ` Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 05/11] pagewalk: remove mm_walk->skip Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 06/11] pagewalk: add size to struct mm_walk Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-12 22:07 ` Dave Hansen 2014-06-12 22:07 ` Dave Hansen 2014-06-12 22:36 ` Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 07/11] pagewalk: change type of arg of callbacks Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 08/11] pagewalk: update comment on walk_page_range() Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 09/11] fs/proc/task_mmu.c: refactor smaps Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 10/11] fs/proc/task_mmu.c: clean up gather_*_stats() Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-12 21:48 ` [PATCH -mm v2 11/11] mincore: apply page table walker on do_mincore() Naoya Horiguchi 2014-06-12 21:48 ` Naoya Horiguchi 2014-06-12 21:56 ` [PATCH -mm v2 00/11] pagewalk: standardize current users, move pmd locking, apply to mincore Andrew Morton 2014-06-12 21:56 ` Andrew Morton 2014-06-12 22:21 ` Naoya Horiguchi
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=1402609691-13950-2-git-send-email-n-horiguchi@ah.jp.nec.com \ --to=n-horiguchi@ah.jp.nec.com \ --cc=akpm@linux-foundation.org \ --cc=dave.hansen@intel.com \ --cc=hughd@google.com \ --cc=kirill@shutemov.name \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ /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: linkBe 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.