All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Steve Capper <steve.capper@linaro.org>
Cc: "linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Will Deacon <Will.Deacon@arm.com>,
	"gary.robertson@linaro.org" <gary.robertson@linaro.org>,
	"christoffer.dall@linaro.org" <christoffer.dall@linaro.org>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"anders.roxell@linaro.org" <anders.roxell@linaro.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"dann.frazier@canonical.com" <dann.frazier@canonical.com>,
	Mark Rutland <Mark.Rutland@arm.com>,
	"mgorman@suse.de" <mgorman@suse.de>
Subject: Re: [PATH V2 6/6] arm64: mm: Enable RCU fast_gup
Date: Wed, 27 Aug 2014 12:09:48 +0100	[thread overview]
Message-ID: <20140827110947.GI6968@arm.com> (raw)
In-Reply-To: <1408635812-31584-7-git-send-email-steve.capper@linaro.org>

On Thu, Aug 21, 2014 at 04:43:32PM +0100, Steve Capper wrote:
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -256,7 +256,13 @@ static inline pmd_t pte_pmd(pte_t pte)
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
>  #define pmd_trans_huge(pmd)	(pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT))
>  #define pmd_trans_splitting(pmd)	pte_special(pmd_pte(pmd))
> -#endif
> +#ifdef CONFIG_HAVE_RCU_TABLE_FREE
> +#define __HAVE_ARCH_PMDP_SPLITTING_FLUSH
> +struct vm_area_struct;
> +void pmdp_splitting_flush(struct vm_area_struct *vma, unsigned long address,
> +			  pmd_t *pmdp);
> +#endif /* CONFIG_HAVE_RCU_TABLE_FREE */
> +#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
>  
>  #define pmd_young(pmd)		pte_young(pmd_pte(pmd))
>  #define pmd_wrprotect(pmd)	pte_pmd(pte_wrprotect(pmd_pte(pmd)))
> @@ -277,6 +283,7 @@ static inline pmd_t pte_pmd(pte_t pte)
>  #define mk_pmd(page,prot)	pfn_pmd(page_to_pfn(page),prot)
>  
>  #define pmd_page(pmd)           pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
> +#define pud_write(pud)		pmd_write(__pmd(pud_val(pud)))
>  #define pud_pfn(pud)		(((pud_val(pud) & PUD_MASK) & PHYS_MASK) >> PAGE_SHIFT)
>  
>  #define set_pmd_at(mm, addr, pmdp, pmd)	set_pte_at(mm, addr, (pte_t *)pmdp, pmd_pte(pmd))
> @@ -376,6 +383,8 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr)
>  	return (pmd_t *)pud_page_vaddr(*pud) + pmd_index(addr);
>  }
>  
> +#define pud_page(pud)           pmd_page(__pmd(pud_val(pud)))

I think you could define a pud_pte as you've done for pmd. The
conversion would look slightly cleaner. Otherwise:

Acked-by: Catalin Marinas <catalin.marinas@arm.com>

WARNING: multiple messages have this Message-ID (diff)
From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATH V2 6/6] arm64: mm: Enable RCU fast_gup
Date: Wed, 27 Aug 2014 12:09:48 +0100	[thread overview]
Message-ID: <20140827110947.GI6968@arm.com> (raw)
In-Reply-To: <1408635812-31584-7-git-send-email-steve.capper@linaro.org>

On Thu, Aug 21, 2014 at 04:43:32PM +0100, Steve Capper wrote:
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -256,7 +256,13 @@ static inline pmd_t pte_pmd(pte_t pte)
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
>  #define pmd_trans_huge(pmd)	(pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT))
>  #define pmd_trans_splitting(pmd)	pte_special(pmd_pte(pmd))
> -#endif
> +#ifdef CONFIG_HAVE_RCU_TABLE_FREE
> +#define __HAVE_ARCH_PMDP_SPLITTING_FLUSH
> +struct vm_area_struct;
> +void pmdp_splitting_flush(struct vm_area_struct *vma, unsigned long address,
> +			  pmd_t *pmdp);
> +#endif /* CONFIG_HAVE_RCU_TABLE_FREE */
> +#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
>  
>  #define pmd_young(pmd)		pte_young(pmd_pte(pmd))
>  #define pmd_wrprotect(pmd)	pte_pmd(pte_wrprotect(pmd_pte(pmd)))
> @@ -277,6 +283,7 @@ static inline pmd_t pte_pmd(pte_t pte)
>  #define mk_pmd(page,prot)	pfn_pmd(page_to_pfn(page),prot)
>  
>  #define pmd_page(pmd)           pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
> +#define pud_write(pud)		pmd_write(__pmd(pud_val(pud)))
>  #define pud_pfn(pud)		(((pud_val(pud) & PUD_MASK) & PHYS_MASK) >> PAGE_SHIFT)
>  
>  #define set_pmd_at(mm, addr, pmdp, pmd)	set_pte_at(mm, addr, (pte_t *)pmdp, pmd_pte(pmd))
> @@ -376,6 +383,8 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr)
>  	return (pmd_t *)pud_page_vaddr(*pud) + pmd_index(addr);
>  }
>  
> +#define pud_page(pud)           pmd_page(__pmd(pud_val(pud)))

I think you could define a pud_pte as you've done for pmd. The
conversion would look slightly cleaner. Otherwise:

Acked-by: Catalin Marinas <catalin.marinas@arm.com>

WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Steve Capper <steve.capper@linaro.org>
Cc: "linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Will Deacon <Will.Deacon@arm.com>,
	"gary.robertson@linaro.org" <gary.robertson@linaro.org>,
	"christoffer.dall@linaro.org" <christoffer.dall@linaro.org>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"anders.roxell@linaro.org" <anders.roxell@linaro.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"dann.frazier@canonical.com" <dann.frazier@canonical.com>,
	Mark Rutland <Mark.Rutland@arm.com>,
	"mgorman@suse.de" <mgorman@suse.de>
Subject: Re: [PATH V2 6/6] arm64: mm: Enable RCU fast_gup
Date: Wed, 27 Aug 2014 12:09:48 +0100	[thread overview]
Message-ID: <20140827110947.GI6968@arm.com> (raw)
In-Reply-To: <1408635812-31584-7-git-send-email-steve.capper@linaro.org>

On Thu, Aug 21, 2014 at 04:43:32PM +0100, Steve Capper wrote:
> --- a/arch/arm64/include/asm/pgtable.h
> +++ b/arch/arm64/include/asm/pgtable.h
> @@ -256,7 +256,13 @@ static inline pmd_t pte_pmd(pte_t pte)
>  #ifdef CONFIG_TRANSPARENT_HUGEPAGE
>  #define pmd_trans_huge(pmd)	(pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT))
>  #define pmd_trans_splitting(pmd)	pte_special(pmd_pte(pmd))
> -#endif
> +#ifdef CONFIG_HAVE_RCU_TABLE_FREE
> +#define __HAVE_ARCH_PMDP_SPLITTING_FLUSH
> +struct vm_area_struct;
> +void pmdp_splitting_flush(struct vm_area_struct *vma, unsigned long address,
> +			  pmd_t *pmdp);
> +#endif /* CONFIG_HAVE_RCU_TABLE_FREE */
> +#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
>  
>  #define pmd_young(pmd)		pte_young(pmd_pte(pmd))
>  #define pmd_wrprotect(pmd)	pte_pmd(pte_wrprotect(pmd_pte(pmd)))
> @@ -277,6 +283,7 @@ static inline pmd_t pte_pmd(pte_t pte)
>  #define mk_pmd(page,prot)	pfn_pmd(page_to_pfn(page),prot)
>  
>  #define pmd_page(pmd)           pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
> +#define pud_write(pud)		pmd_write(__pmd(pud_val(pud)))
>  #define pud_pfn(pud)		(((pud_val(pud) & PUD_MASK) & PHYS_MASK) >> PAGE_SHIFT)
>  
>  #define set_pmd_at(mm, addr, pmdp, pmd)	set_pte_at(mm, addr, (pte_t *)pmdp, pmd_pte(pmd))
> @@ -376,6 +383,8 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr)
>  	return (pmd_t *)pud_page_vaddr(*pud) + pmd_index(addr);
>  }
>  
> +#define pud_page(pud)           pmd_page(__pmd(pud_val(pud)))

I think you could define a pud_pte as you've done for pmd. The
conversion would look slightly cleaner. Otherwise:

Acked-by: Catalin Marinas <catalin.marinas@arm.com>

--
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>

  reply	other threads:[~2014-08-27 11:10 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-21 15:43 [PATH V2 0/6] RCU get_user_pages_fast and __get_user_pages_fast Steve Capper
2014-08-21 15:43 ` Steve Capper
2014-08-21 15:43 ` Steve Capper
2014-08-21 15:43 ` [PATH V2 1/6] mm: Introduce a general RCU get_user_pages_fast Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-27  8:54   ` Will Deacon
2014-08-27  8:54     ` Will Deacon
2014-08-27  8:54     ` Will Deacon
2014-08-27 12:50     ` Steve Capper
2014-08-27 12:50       ` Steve Capper
2014-08-27 12:50       ` Steve Capper
2014-08-27 13:14       ` Will Deacon
2014-08-27 13:14         ` Will Deacon
2014-08-27 13:14         ` Will Deacon
2014-08-27 14:28   ` Catalin Marinas
2014-08-27 14:28     ` Catalin Marinas
2014-08-27 14:28     ` Catalin Marinas
2014-08-27 14:42     ` Steve Capper
2014-08-27 14:42       ` Steve Capper
2014-08-27 14:42       ` Steve Capper
2014-08-27 15:01   ` Russell King - ARM Linux
2014-08-27 15:01     ` Russell King - ARM Linux
2014-08-27 15:01     ` Russell King - ARM Linux
2014-08-28  8:59     ` Steve Capper
2014-08-28  8:59       ` Steve Capper
2014-08-28  8:59       ` Steve Capper
2014-08-21 15:43 ` [PATH V2 2/6] arm: mm: Introduce special ptes for LPAE Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-27 10:46   ` Catalin Marinas
2014-08-27 10:46     ` Catalin Marinas
2014-08-27 10:46     ` Catalin Marinas
2014-08-27 12:52     ` Steve Capper
2014-08-27 12:52       ` Steve Capper
2014-08-27 12:52       ` Steve Capper
2014-08-21 15:43 ` [PATH V2 3/6] arm: mm: Enable HAVE_RCU_TABLE_FREE logic Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-27 11:50   ` Catalin Marinas
2014-08-27 11:50     ` Catalin Marinas
2014-08-27 11:50     ` Catalin Marinas
2014-08-27 12:59     ` Steve Capper
2014-08-27 12:59       ` Steve Capper
2014-08-27 12:59       ` Steve Capper
2014-08-21 15:43 ` [PATH V2 4/6] arm: mm: Enable RCU fast_gup Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-27 11:51   ` Catalin Marinas
2014-08-27 11:51     ` Catalin Marinas
2014-08-27 11:51     ` Catalin Marinas
2014-08-27 13:01     ` Steve Capper
2014-08-27 13:01       ` Steve Capper
2014-08-27 13:01       ` Steve Capper
2014-08-21 15:43 ` [PATH V2 5/6] arm64: mm: Enable HAVE_RCU_TABLE_FREE logic Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-27 10:48   ` Catalin Marinas
2014-08-27 10:48     ` Catalin Marinas
2014-08-27 10:48     ` Catalin Marinas
2014-08-27 13:08     ` Steve Capper
2014-08-27 13:08       ` Steve Capper
2014-08-27 13:08       ` Steve Capper
2014-08-21 15:43 ` [PATH V2 6/6] arm64: mm: Enable RCU fast_gup Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-21 15:43   ` Steve Capper
2014-08-27 11:09   ` Catalin Marinas [this message]
2014-08-27 11:09     ` Catalin Marinas
2014-08-27 11:09     ` Catalin Marinas
2014-08-27 13:43     ` Steve Capper
2014-08-27 13:43       ` Steve Capper
2014-08-27 13:43       ` Steve Capper
2014-08-21 20:42 ` [PATH V2 0/6] RCU get_user_pages_fast and __get_user_pages_fast Dann Frazier
2014-08-21 20:42   ` Dann Frazier
2014-08-21 20:42   ` Dann Frazier
2014-08-22  8:11   ` Steve Capper
2014-08-22  8:11     ` Steve Capper
2014-08-22  8:11     ` Steve Capper

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=20140827110947.GI6968@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=Mark.Rutland@arm.com \
    --cc=Will.Deacon@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=anders.roxell@linaro.org \
    --cc=christoffer.dall@linaro.org \
    --cc=dann.frazier@canonical.com \
    --cc=gary.robertson@linaro.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mgorman@suse.de \
    --cc=peterz@infradead.org \
    --cc=steve.capper@linaro.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: 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.