All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoffer Dall <christoffer.dall@linaro.org>
To: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: kvm@vger.kernel.org, marc.zyngier@arm.com,
	catalin.marinas@arm.com, will.deacon@arm.com,
	kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RFC PATCH 04/12] kvm-arm: Rename kvm_pmd_huge to huge_pmd
Date: Tue, 22 Mar 2016 09:55:32 +0100	[thread overview]
Message-ID: <20160322085532.GC21047@cbox> (raw)
In-Reply-To: <1457974391-28456-5-git-send-email-suzuki.poulose@arm.com>

On Mon, Mar 14, 2016 at 04:53:03PM +0000, Suzuki K Poulose wrote:
> kvm_pmd_huge doesn't have any dependency on the page table
> where the pmd lives (i.e, hyp vs. stage2). So, rename it to
> huge_pmd() to make it explicit.
> 
> kvm_p.d_* wrappers will be used for helpers which differ
> across hyp vs stage2.

I don't understand this commit message.  Do you associate the kvm_
prefix specifically with one of hyp or stage2?

I remember reviewers in the past specifically asked to name anything
relating to pgtable macros in the kvm code with a kvm_ prefix to
distinguish them from logic used elsewhere in the kernel.

I specifically do not like having huge_pmd() be significantly different
in logic from pmd_huge(), so defining pmd_thp_or_huge() for arm64 is a
much better option.

Thanks,
-Christoffer


> 
> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> ---
>  arch/arm/kvm/mmu.c |   18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
> index a16631c..3b038bb 100644
> --- a/arch/arm/kvm/mmu.c
> +++ b/arch/arm/kvm/mmu.c
> @@ -44,7 +44,7 @@ static phys_addr_t hyp_idmap_vector;
>  
>  #define hyp_pgd_order get_order(PTRS_PER_PGD * sizeof(pgd_t))
>  
> -#define kvm_pmd_huge(_x)	(pmd_huge(_x) || pmd_trans_huge(_x))
> +#define huge_pmd(_x)		(pmd_huge(_x) || pmd_trans_huge(_x))
>  #define kvm_pud_huge(_x)	pud_huge(_x)
>  
>  #define KVM_S2PTE_FLAG_IS_IOMAP		(1UL << 0)
> @@ -114,7 +114,7 @@ static bool kvm_is_device_pfn(unsigned long pfn)
>   */
>  static void stage2_dissolve_pmd(struct kvm *kvm, phys_addr_t addr, pmd_t *pmd)
>  {
> -	if (!kvm_pmd_huge(*pmd))
> +	if (!huge_pmd(*pmd))
>  		return;
>  
>  	pmd_clear(pmd);
> @@ -176,7 +176,7 @@ static void clear_pud_entry(struct kvm *kvm, pud_t *pud, phys_addr_t addr)
>  static void clear_pmd_entry(struct kvm *kvm, pmd_t *pmd, phys_addr_t addr)
>  {
>  	pte_t *pte_table = pte_offset_kernel(pmd, 0);
> -	VM_BUG_ON(kvm_pmd_huge(*pmd));
> +	VM_BUG_ON(huge_pmd(*pmd));
>  	pmd_clear(pmd);
>  	kvm_tlb_flush_vmid_ipa(kvm, addr);
>  	pte_free_kernel(NULL, pte_table);
> @@ -239,7 +239,7 @@ static void unmap_pmds(struct kvm *kvm, pud_t *pud,
>  	do {
>  		next = kvm_pmd_addr_end(addr, end);
>  		if (!pmd_none(*pmd)) {
> -			if (kvm_pmd_huge(*pmd)) {
> +			if (huge_pmd(*pmd)) {
>  				pmd_t old_pmd = *pmd;
>  
>  				pmd_clear(pmd);
> @@ -325,7 +325,7 @@ static void stage2_flush_pmds(struct kvm *kvm, pud_t *pud,
>  	do {
>  		next = kvm_pmd_addr_end(addr, end);
>  		if (!pmd_none(*pmd)) {
> -			if (kvm_pmd_huge(*pmd))
> +			if (huge_pmd(*pmd))
>  				kvm_flush_dcache_pmd(*pmd);
>  			else
>  				stage2_flush_ptes(kvm, pmd, addr, next);
> @@ -1043,7 +1043,7 @@ static void stage2_wp_pmds(pud_t *pud, phys_addr_t addr, phys_addr_t end)
>  	do {
>  		next = kvm_pmd_addr_end(addr, end);
>  		if (!pmd_none(*pmd)) {
> -			if (kvm_pmd_huge(*pmd)) {
> +			if (huge_pmd(*pmd)) {
>  				if (!kvm_s2pmd_readonly(pmd))
>  					kvm_set_s2pmd_readonly(pmd);
>  			} else {
> @@ -1324,7 +1324,7 @@ static void handle_access_fault(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa)
>  	if (!pmd || pmd_none(*pmd))	/* Nothing there */
>  		goto out;
>  
> -	if (kvm_pmd_huge(*pmd)) {	/* THP, HugeTLB */
> +	if (huge_pmd(*pmd)) {	/* THP, HugeTLB */
>  		*pmd = pmd_mkyoung(*pmd);
>  		pfn = pmd_pfn(*pmd);
>  		pfn_valid = true;
> @@ -1532,7 +1532,7 @@ static int kvm_age_hva_handler(struct kvm *kvm, gpa_t gpa, void *data)
>  	if (!pmd || pmd_none(*pmd))	/* Nothing there */
>  		return 0;
>  
> -	if (kvm_pmd_huge(*pmd)) {	/* THP, HugeTLB */
> +	if (huge_pmd(*pmd)) {	/* THP, HugeTLB */
>  		if (pmd_young(*pmd)) {
>  			*pmd = pmd_mkold(*pmd);
>  			return 1;
> @@ -1562,7 +1562,7 @@ static int kvm_test_age_hva_handler(struct kvm *kvm, gpa_t gpa, void *data)
>  	if (!pmd || pmd_none(*pmd))	/* Nothing there */
>  		return 0;
>  
> -	if (kvm_pmd_huge(*pmd))		/* THP, HugeTLB */
> +	if (huge_pmd(*pmd))		/* THP, HugeTLB */
>  		return pmd_young(*pmd);
>  
>  	pte = pte_offset_kernel(pmd, gpa);
> -- 
> 1.7.9.5
> 

WARNING: multiple messages have this Message-ID (diff)
From: christoffer.dall@linaro.org (Christoffer Dall)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 04/12] kvm-arm: Rename kvm_pmd_huge to huge_pmd
Date: Tue, 22 Mar 2016 09:55:32 +0100	[thread overview]
Message-ID: <20160322085532.GC21047@cbox> (raw)
In-Reply-To: <1457974391-28456-5-git-send-email-suzuki.poulose@arm.com>

On Mon, Mar 14, 2016 at 04:53:03PM +0000, Suzuki K Poulose wrote:
> kvm_pmd_huge doesn't have any dependency on the page table
> where the pmd lives (i.e, hyp vs. stage2). So, rename it to
> huge_pmd() to make it explicit.
> 
> kvm_p.d_* wrappers will be used for helpers which differ
> across hyp vs stage2.

I don't understand this commit message.  Do you associate the kvm_
prefix specifically with one of hyp or stage2?

I remember reviewers in the past specifically asked to name anything
relating to pgtable macros in the kvm code with a kvm_ prefix to
distinguish them from logic used elsewhere in the kernel.

I specifically do not like having huge_pmd() be significantly different
in logic from pmd_huge(), so defining pmd_thp_or_huge() for arm64 is a
much better option.

Thanks,
-Christoffer


> 
> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> ---
>  arch/arm/kvm/mmu.c |   18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
> index a16631c..3b038bb 100644
> --- a/arch/arm/kvm/mmu.c
> +++ b/arch/arm/kvm/mmu.c
> @@ -44,7 +44,7 @@ static phys_addr_t hyp_idmap_vector;
>  
>  #define hyp_pgd_order get_order(PTRS_PER_PGD * sizeof(pgd_t))
>  
> -#define kvm_pmd_huge(_x)	(pmd_huge(_x) || pmd_trans_huge(_x))
> +#define huge_pmd(_x)		(pmd_huge(_x) || pmd_trans_huge(_x))
>  #define kvm_pud_huge(_x)	pud_huge(_x)
>  
>  #define KVM_S2PTE_FLAG_IS_IOMAP		(1UL << 0)
> @@ -114,7 +114,7 @@ static bool kvm_is_device_pfn(unsigned long pfn)
>   */
>  static void stage2_dissolve_pmd(struct kvm *kvm, phys_addr_t addr, pmd_t *pmd)
>  {
> -	if (!kvm_pmd_huge(*pmd))
> +	if (!huge_pmd(*pmd))
>  		return;
>  
>  	pmd_clear(pmd);
> @@ -176,7 +176,7 @@ static void clear_pud_entry(struct kvm *kvm, pud_t *pud, phys_addr_t addr)
>  static void clear_pmd_entry(struct kvm *kvm, pmd_t *pmd, phys_addr_t addr)
>  {
>  	pte_t *pte_table = pte_offset_kernel(pmd, 0);
> -	VM_BUG_ON(kvm_pmd_huge(*pmd));
> +	VM_BUG_ON(huge_pmd(*pmd));
>  	pmd_clear(pmd);
>  	kvm_tlb_flush_vmid_ipa(kvm, addr);
>  	pte_free_kernel(NULL, pte_table);
> @@ -239,7 +239,7 @@ static void unmap_pmds(struct kvm *kvm, pud_t *pud,
>  	do {
>  		next = kvm_pmd_addr_end(addr, end);
>  		if (!pmd_none(*pmd)) {
> -			if (kvm_pmd_huge(*pmd)) {
> +			if (huge_pmd(*pmd)) {
>  				pmd_t old_pmd = *pmd;
>  
>  				pmd_clear(pmd);
> @@ -325,7 +325,7 @@ static void stage2_flush_pmds(struct kvm *kvm, pud_t *pud,
>  	do {
>  		next = kvm_pmd_addr_end(addr, end);
>  		if (!pmd_none(*pmd)) {
> -			if (kvm_pmd_huge(*pmd))
> +			if (huge_pmd(*pmd))
>  				kvm_flush_dcache_pmd(*pmd);
>  			else
>  				stage2_flush_ptes(kvm, pmd, addr, next);
> @@ -1043,7 +1043,7 @@ static void stage2_wp_pmds(pud_t *pud, phys_addr_t addr, phys_addr_t end)
>  	do {
>  		next = kvm_pmd_addr_end(addr, end);
>  		if (!pmd_none(*pmd)) {
> -			if (kvm_pmd_huge(*pmd)) {
> +			if (huge_pmd(*pmd)) {
>  				if (!kvm_s2pmd_readonly(pmd))
>  					kvm_set_s2pmd_readonly(pmd);
>  			} else {
> @@ -1324,7 +1324,7 @@ static void handle_access_fault(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa)
>  	if (!pmd || pmd_none(*pmd))	/* Nothing there */
>  		goto out;
>  
> -	if (kvm_pmd_huge(*pmd)) {	/* THP, HugeTLB */
> +	if (huge_pmd(*pmd)) {	/* THP, HugeTLB */
>  		*pmd = pmd_mkyoung(*pmd);
>  		pfn = pmd_pfn(*pmd);
>  		pfn_valid = true;
> @@ -1532,7 +1532,7 @@ static int kvm_age_hva_handler(struct kvm *kvm, gpa_t gpa, void *data)
>  	if (!pmd || pmd_none(*pmd))	/* Nothing there */
>  		return 0;
>  
> -	if (kvm_pmd_huge(*pmd)) {	/* THP, HugeTLB */
> +	if (huge_pmd(*pmd)) {	/* THP, HugeTLB */
>  		if (pmd_young(*pmd)) {
>  			*pmd = pmd_mkold(*pmd);
>  			return 1;
> @@ -1562,7 +1562,7 @@ static int kvm_test_age_hva_handler(struct kvm *kvm, gpa_t gpa, void *data)
>  	if (!pmd || pmd_none(*pmd))	/* Nothing there */
>  		return 0;
>  
> -	if (kvm_pmd_huge(*pmd))		/* THP, HugeTLB */
> +	if (huge_pmd(*pmd))		/* THP, HugeTLB */
>  		return pmd_young(*pmd);
>  
>  	pte = pte_offset_kernel(pmd, gpa);
> -- 
> 1.7.9.5
> 

  parent reply	other threads:[~2016-03-22  8:54 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-14 16:52 [RFC PATCH 00/12] kvm-arm: Add stage2 page table walker Suzuki K Poulose
2016-03-14 16:52 ` Suzuki K Poulose
2016-03-14 16:53 ` [RFC PATCH 01/12] kvm arm: Move fake PGD handling to arch specific files Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-14 16:53 ` [RFC PATCH 02/12] arm64: kvm: Fix {V}TCR_EL2_TG0 mask Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-16 14:54   ` Marc Zyngier
2016-03-16 14:54     ` Marc Zyngier
2016-03-16 15:35     ` Suzuki K. Poulose
2016-03-16 15:35       ` Suzuki K. Poulose
2016-03-14 16:53 ` [RFC PATCH 03/12] arm64: kvm: Cleanup VTCR_EL2/VTTBR computation Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-16 15:01   ` Marc Zyngier
2016-03-16 15:01     ` Marc Zyngier
2016-03-16 15:37     ` Suzuki K. Poulose
2016-03-16 15:37       ` Suzuki K. Poulose
2016-03-16 15:45       ` Marc Zyngier
2016-03-16 15:45         ` Marc Zyngier
2016-03-14 16:53 ` [RFC PATCH 04/12] kvm-arm: Rename kvm_pmd_huge to huge_pmd Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-14 17:06   ` Mark Rutland
2016-03-14 17:06     ` Mark Rutland
2016-03-14 17:22     ` Suzuki K. Poulose
2016-03-14 17:22       ` Suzuki K. Poulose
2016-03-22  8:55   ` Christoffer Dall [this message]
2016-03-22  8:55     ` Christoffer Dall
2016-03-22 10:03     ` Suzuki K. Poulose
2016-03-22 10:03       ` Suzuki K. Poulose
2016-03-14 16:53 ` [RFC PATCH 05/12] kvm-arm: Move kvm_pud_huge to arch specific headers Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-14 16:53 ` [RFC PATCH 06/12] kvm-arm: Pass kvm parameter for pagetable helpers Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-22  9:30   ` Christoffer Dall
2016-03-22  9:30     ` Christoffer Dall
2016-03-22 10:15     ` Suzuki K. Poulose
2016-03-22 10:15       ` Suzuki K. Poulose
2016-03-22 10:30       ` Christoffer Dall
2016-03-22 10:30         ` Christoffer Dall
2016-03-14 16:53 ` [RFC PATCH 07/12] kvm: arm: Introduce stage2 page table helpers Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-14 16:53 ` [RFC PATCH 08/12] kvm: arm64: " Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-14 16:53 ` [RFC PATCH 09/12] kvm-arm: Switch to kvm pagetable helpers Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-14 16:53 ` [RFC PATCH 10/12] kvm: arm64: Get rid of fake page table levels Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-14 16:53 ` [RFC PATCH 11/12] kvm-arm: Cleanup stage2 pgd handling Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose
2016-03-14 16:53 ` [RFC PATCH 12/12] arm64: kvm: Add support for 16K pages Suzuki K Poulose
2016-03-14 16:53   ` Suzuki K Poulose

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=20160322085532.GC21047@cbox \
    --to=christoffer.dall@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=marc.zyngier@arm.com \
    --cc=suzuki.poulose@arm.com \
    --cc=will.deacon@arm.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.