[PATCH -V6 17/27] mm/THP: Add pmd args to pgtable deposit and withdraw APIs
Andrea Arcangeli
aarcange at redhat.com
Tue Apr 23 01:46:50 EST 2013
On Mon, Apr 22, 2013 at 03:30:51PM +0530, Aneesh Kumar K.V wrote:
> From: "Aneesh Kumar K.V" <aneesh.kumar at linux.vnet.ibm.com>
>
> This will be later used by powerpc THP support. In powerpc we want to use
> pgtable for storing the hash index values. So instead of adding them to
> mm_context list, we would like to store them in the second half of pmd
>
> Cc: Andrea Arcangeli <aarcange at redhat.com>
*snip*
> #ifndef __HAVE_ARCH_PGTABLE_DEPOSIT
> #ifdef CONFIG_TRANSPARENT_HUGEPAGE
> -void pgtable_trans_huge_deposit(struct mm_struct *mm, pgtable_t pgtable)
> +void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp,
> + pgtable_t pgtable)
> {
> assert_spin_locked(&mm->page_table_lock);
>
> @@ -141,7 +142,7 @@ void pgtable_trans_huge_deposit(struct mm_struct *mm, pgtable_t pgtable)
> #ifndef __HAVE_ARCH_PGTABLE_WITHDRAW
> #ifdef CONFIG_TRANSPARENT_HUGEPAGE
> /* no "address" argument so destroys page coloring of some arch */
> -pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm)
> +pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp)
> {
> pgtable_t pgtable;
This will add micro overhead with more variables put in certain regs
or stack. The micro overhead could be optimized away by wrapping the
call with a generic and per-arch header and by adding a __ prefix to
the above one in the generic .c file. I'm neutral but I pointed out so
others are free to comment on it.
Reviewed-by: Andrea Arcangeli <aarcange at redhat.com>
More information about the Linuxppc-dev
mailing list