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: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
	kvm@vger.kernel.org, marc.zyngier@arm.com, mark.rutland@arm.com,
	will.deacon@arm.com, catalin.marinas@arm.com
Subject: Re: [PATCH 16/17] kvm-arm: Cleanup stage2 pgd handling
Date: Fri, 8 Apr 2016 17:08:54 +0200	[thread overview]
Message-ID: <20160408150854.GZ8961@cbox> (raw)
In-Reply-To: <1459787177-12767-17-git-send-email-suzuki.poulose@arm.com>

On Mon, Apr 04, 2016 at 05:26:16PM +0100, Suzuki K Poulose wrote:
> Now that we don't have any fake page table levels for arm64,
> cleanup the common code to get rid of the dead code.
> 
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Cc: Christoffer Dall <christoffer.dall@linaro.org>
> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> ---
>  arch/arm/include/asm/kvm_mmu.h   |   19 -------------------
>  arch/arm/kvm/arm.c               |    2 +-
>  arch/arm/kvm/mmu.c               |   25 ++++++++-----------------
>  arch/arm64/include/asm/kvm_mmu.h |   18 ------------------
>  4 files changed, 9 insertions(+), 55 deletions(-)
> 
> diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
> index 50aa901..f8b7920 100644
> --- a/arch/arm/include/asm/kvm_mmu.h
> +++ b/arch/arm/include/asm/kvm_mmu.h
> @@ -146,25 +146,6 @@ static inline bool kvm_page_empty(void *ptr)
>  #define hyp_pmd_table_empty(pmdp) kvm_page_empty(pmdp)
>  #define hyp_pud_table_empty(pudp) (0)
>  
> -static inline void *kvm_get_hwpgd(struct kvm *kvm)
> -{
> -	return kvm->arch.pgd;
> -}
> -
> -static inline unsigned int kvm_get_hwpgd_size(void)
> -{
> -	return PTRS_PER_S2_PGD * sizeof(pgd_t);
> -}
> -
> -static inline pgd_t *kvm_setup_fake_pgd(pgd_t *hwpgd)
> -{
> -	return hwpgd;
> -}
> -
> -static inline void kvm_free_fake_pgd(pgd_t *pgd)
> -{
> -}
> -
>  struct kvm;
>  
>  #define kvm_flush_dcache_to_poc(a,l)	__cpuc_flush_dcache_area((a), (l))
> diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
> index 6accd66..dfd4987 100644
> --- a/arch/arm/kvm/arm.c
> +++ b/arch/arm/kvm/arm.c
> @@ -448,7 +448,7 @@ static void update_vttbr(struct kvm *kvm)
>  	kvm_next_vmid &= (1 << kvm_vmid_bits) - 1;
>  
>  	/* update vttbr to be used with the new vmid */
> -	pgd_phys = virt_to_phys(kvm_get_hwpgd(kvm));
> +	pgd_phys = virt_to_phys(kvm->arch.pgd);
>  	BUG_ON(pgd_phys & ~VTTBR_BADDR_MASK);
>  	vmid = ((u64)(kvm->arch.vmid) << VTTBR_VMID_SHIFT) & VTTBR_VMID_MASK(kvm_vmid_bits);
>  	kvm->arch.vttbr = pgd_phys | vmid;
> diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
> index dda60fc..1cb7e60 100644
> --- a/arch/arm/kvm/mmu.c
> +++ b/arch/arm/kvm/mmu.c
> @@ -755,6 +755,11 @@ int create_hyp_io_mappings(void *from, void *to, phys_addr_t phys_addr)
>  				     __phys_to_pfn(phys_addr), PAGE_HYP_DEVICE);
>  }
>  
> +static inline unsigned int kvm_get_hwpgd_size(void)
> +{
> +	return PTRS_PER_S2_PGD * sizeof(pgd_t);
> +}
> +
>  /* Free the HW pgd, one page at a time */
>  static void kvm_free_hwpgd(void *hwpgd)
>  {
> @@ -783,29 +788,16 @@ static void *kvm_alloc_hwpgd(void)
>  int kvm_alloc_stage2_pgd(struct kvm *kvm)
>  {
>  	pgd_t *pgd;
> -	void *hwpgd;
>  
>  	if (kvm->arch.pgd != NULL) {
>  		kvm_err("kvm_arch already initialized?\n");
>  		return -EINVAL;
>  	}
>  
> -	hwpgd = kvm_alloc_hwpgd();
> -	if (!hwpgd)
> +	pgd = kvm_alloc_hwpgd();

can you just inline kvm_alloc_hwpgd and kvm_get_hwpgd_size now?

> +	if (!pgd)
>  		return -ENOMEM;
>  
> -	/*
> -	 * When the kernel uses more levels of page tables than the
> -	 * guest, we allocate a fake PGD and pre-populate it to point
> -	 * to the next-level page table, which will be the real
> -	 * initial page table pointed to by the VTTBR.
> -	 */
> -	pgd = kvm_setup_fake_pgd(hwpgd);
> -	if (IS_ERR(pgd)) {
> -		kvm_free_hwpgd(hwpgd);
> -		return PTR_ERR(pgd);
> -	}
> -
>  	kvm_clean_pgd(pgd);
>  	kvm->arch.pgd = pgd;
>  	return 0;
> @@ -893,8 +885,7 @@ void kvm_free_stage2_pgd(struct kvm *kvm)
>  		return;
>  
>  	unmap_stage2_range(kvm, 0, KVM_PHYS_SIZE);
> -	kvm_free_hwpgd(kvm_get_hwpgd(kvm));
> -	kvm_free_fake_pgd(kvm->arch.pgd);
> +	kvm_free_hwpgd(kvm->arch.pgd);
>  	kvm->arch.pgd = NULL;
>  }
>  
> diff --git a/arch/arm64/include/asm/kvm_mmu.h b/arch/arm64/include/asm/kvm_mmu.h
> index e3fee0a..249c4fc 100644
> --- a/arch/arm64/include/asm/kvm_mmu.h
> +++ b/arch/arm64/include/asm/kvm_mmu.h
> @@ -141,24 +141,6 @@ static inline bool kvm_s2pmd_readonly(pmd_t *pmd)
>  	return (pmd_val(*pmd) & PMD_S2_RDWR) == PMD_S2_RDONLY;
>  }
>  
> -static inline void *kvm_get_hwpgd(struct kvm *kvm)
> -{
> -	return kvm->arch.pgd;
> -}
> -
> -static inline unsigned int kvm_get_hwpgd_size(void)
> -{
> -	return PTRS_PER_S2_PGD * sizeof(pgd_t);
> -}
> -
> -static inline pgd_t *kvm_setup_fake_pgd(pgd_t *hwpgd)
> -{
> -	return hwpgd;
> -}
> -
> -static inline void kvm_free_fake_pgd(pgd_t *pgd)
> -{
> -}
>  static inline bool kvm_page_empty(void *ptr)
>  {
>  	struct page *ptr_page = virt_to_page(ptr);
> -- 
> 1.7.9.5
> 

otherwise:

Acked-by: Christoffer Dall <christoffer.dall@linaro.org>

WARNING: multiple messages have this Message-ID (diff)
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,
	linux-kernel@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 16/17] kvm-arm: Cleanup stage2 pgd handling
Date: Fri, 8 Apr 2016 17:08:54 +0200	[thread overview]
Message-ID: <20160408150854.GZ8961@cbox> (raw)
In-Reply-To: <1459787177-12767-17-git-send-email-suzuki.poulose@arm.com>

On Mon, Apr 04, 2016 at 05:26:16PM +0100, Suzuki K Poulose wrote:
> Now that we don't have any fake page table levels for arm64,
> cleanup the common code to get rid of the dead code.
> 
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Cc: Christoffer Dall <christoffer.dall@linaro.org>
> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> ---
>  arch/arm/include/asm/kvm_mmu.h   |   19 -------------------
>  arch/arm/kvm/arm.c               |    2 +-
>  arch/arm/kvm/mmu.c               |   25 ++++++++-----------------
>  arch/arm64/include/asm/kvm_mmu.h |   18 ------------------
>  4 files changed, 9 insertions(+), 55 deletions(-)
> 
> diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
> index 50aa901..f8b7920 100644
> --- a/arch/arm/include/asm/kvm_mmu.h
> +++ b/arch/arm/include/asm/kvm_mmu.h
> @@ -146,25 +146,6 @@ static inline bool kvm_page_empty(void *ptr)
>  #define hyp_pmd_table_empty(pmdp) kvm_page_empty(pmdp)
>  #define hyp_pud_table_empty(pudp) (0)
>  
> -static inline void *kvm_get_hwpgd(struct kvm *kvm)
> -{
> -	return kvm->arch.pgd;
> -}
> -
> -static inline unsigned int kvm_get_hwpgd_size(void)
> -{
> -	return PTRS_PER_S2_PGD * sizeof(pgd_t);
> -}
> -
> -static inline pgd_t *kvm_setup_fake_pgd(pgd_t *hwpgd)
> -{
> -	return hwpgd;
> -}
> -
> -static inline void kvm_free_fake_pgd(pgd_t *pgd)
> -{
> -}
> -
>  struct kvm;
>  
>  #define kvm_flush_dcache_to_poc(a,l)	__cpuc_flush_dcache_area((a), (l))
> diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
> index 6accd66..dfd4987 100644
> --- a/arch/arm/kvm/arm.c
> +++ b/arch/arm/kvm/arm.c
> @@ -448,7 +448,7 @@ static void update_vttbr(struct kvm *kvm)
>  	kvm_next_vmid &= (1 << kvm_vmid_bits) - 1;
>  
>  	/* update vttbr to be used with the new vmid */
> -	pgd_phys = virt_to_phys(kvm_get_hwpgd(kvm));
> +	pgd_phys = virt_to_phys(kvm->arch.pgd);
>  	BUG_ON(pgd_phys & ~VTTBR_BADDR_MASK);
>  	vmid = ((u64)(kvm->arch.vmid) << VTTBR_VMID_SHIFT) & VTTBR_VMID_MASK(kvm_vmid_bits);
>  	kvm->arch.vttbr = pgd_phys | vmid;
> diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
> index dda60fc..1cb7e60 100644
> --- a/arch/arm/kvm/mmu.c
> +++ b/arch/arm/kvm/mmu.c
> @@ -755,6 +755,11 @@ int create_hyp_io_mappings(void *from, void *to, phys_addr_t phys_addr)
>  				     __phys_to_pfn(phys_addr), PAGE_HYP_DEVICE);
>  }
>  
> +static inline unsigned int kvm_get_hwpgd_size(void)
> +{
> +	return PTRS_PER_S2_PGD * sizeof(pgd_t);
> +}
> +
>  /* Free the HW pgd, one page at a time */
>  static void kvm_free_hwpgd(void *hwpgd)
>  {
> @@ -783,29 +788,16 @@ static void *kvm_alloc_hwpgd(void)
>  int kvm_alloc_stage2_pgd(struct kvm *kvm)
>  {
>  	pgd_t *pgd;
> -	void *hwpgd;
>  
>  	if (kvm->arch.pgd != NULL) {
>  		kvm_err("kvm_arch already initialized?\n");
>  		return -EINVAL;
>  	}
>  
> -	hwpgd = kvm_alloc_hwpgd();
> -	if (!hwpgd)
> +	pgd = kvm_alloc_hwpgd();

can you just inline kvm_alloc_hwpgd and kvm_get_hwpgd_size now?

> +	if (!pgd)
>  		return -ENOMEM;
>  
> -	/*
> -	 * When the kernel uses more levels of page tables than the
> -	 * guest, we allocate a fake PGD and pre-populate it to point
> -	 * to the next-level page table, which will be the real
> -	 * initial page table pointed to by the VTTBR.
> -	 */
> -	pgd = kvm_setup_fake_pgd(hwpgd);
> -	if (IS_ERR(pgd)) {
> -		kvm_free_hwpgd(hwpgd);
> -		return PTR_ERR(pgd);
> -	}
> -
>  	kvm_clean_pgd(pgd);
>  	kvm->arch.pgd = pgd;
>  	return 0;
> @@ -893,8 +885,7 @@ void kvm_free_stage2_pgd(struct kvm *kvm)
>  		return;
>  
>  	unmap_stage2_range(kvm, 0, KVM_PHYS_SIZE);
> -	kvm_free_hwpgd(kvm_get_hwpgd(kvm));
> -	kvm_free_fake_pgd(kvm->arch.pgd);
> +	kvm_free_hwpgd(kvm->arch.pgd);
>  	kvm->arch.pgd = NULL;
>  }
>  
> diff --git a/arch/arm64/include/asm/kvm_mmu.h b/arch/arm64/include/asm/kvm_mmu.h
> index e3fee0a..249c4fc 100644
> --- a/arch/arm64/include/asm/kvm_mmu.h
> +++ b/arch/arm64/include/asm/kvm_mmu.h
> @@ -141,24 +141,6 @@ static inline bool kvm_s2pmd_readonly(pmd_t *pmd)
>  	return (pmd_val(*pmd) & PMD_S2_RDWR) == PMD_S2_RDONLY;
>  }
>  
> -static inline void *kvm_get_hwpgd(struct kvm *kvm)
> -{
> -	return kvm->arch.pgd;
> -}
> -
> -static inline unsigned int kvm_get_hwpgd_size(void)
> -{
> -	return PTRS_PER_S2_PGD * sizeof(pgd_t);
> -}
> -
> -static inline pgd_t *kvm_setup_fake_pgd(pgd_t *hwpgd)
> -{
> -	return hwpgd;
> -}
> -
> -static inline void kvm_free_fake_pgd(pgd_t *pgd)
> -{
> -}
>  static inline bool kvm_page_empty(void *ptr)
>  {
>  	struct page *ptr_page = virt_to_page(ptr);
> -- 
> 1.7.9.5
> 

otherwise:

Acked-by: Christoffer Dall <christoffer.dall@linaro.org>

WARNING: multiple messages have this Message-ID (diff)
From: christoffer.dall@linaro.org (Christoffer Dall)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 16/17] kvm-arm: Cleanup stage2 pgd handling
Date: Fri, 8 Apr 2016 17:08:54 +0200	[thread overview]
Message-ID: <20160408150854.GZ8961@cbox> (raw)
In-Reply-To: <1459787177-12767-17-git-send-email-suzuki.poulose@arm.com>

On Mon, Apr 04, 2016 at 05:26:16PM +0100, Suzuki K Poulose wrote:
> Now that we don't have any fake page table levels for arm64,
> cleanup the common code to get rid of the dead code.
> 
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Cc: Christoffer Dall <christoffer.dall@linaro.org>
> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> ---
>  arch/arm/include/asm/kvm_mmu.h   |   19 -------------------
>  arch/arm/kvm/arm.c               |    2 +-
>  arch/arm/kvm/mmu.c               |   25 ++++++++-----------------
>  arch/arm64/include/asm/kvm_mmu.h |   18 ------------------
>  4 files changed, 9 insertions(+), 55 deletions(-)
> 
> diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
> index 50aa901..f8b7920 100644
> --- a/arch/arm/include/asm/kvm_mmu.h
> +++ b/arch/arm/include/asm/kvm_mmu.h
> @@ -146,25 +146,6 @@ static inline bool kvm_page_empty(void *ptr)
>  #define hyp_pmd_table_empty(pmdp) kvm_page_empty(pmdp)
>  #define hyp_pud_table_empty(pudp) (0)
>  
> -static inline void *kvm_get_hwpgd(struct kvm *kvm)
> -{
> -	return kvm->arch.pgd;
> -}
> -
> -static inline unsigned int kvm_get_hwpgd_size(void)
> -{
> -	return PTRS_PER_S2_PGD * sizeof(pgd_t);
> -}
> -
> -static inline pgd_t *kvm_setup_fake_pgd(pgd_t *hwpgd)
> -{
> -	return hwpgd;
> -}
> -
> -static inline void kvm_free_fake_pgd(pgd_t *pgd)
> -{
> -}
> -
>  struct kvm;
>  
>  #define kvm_flush_dcache_to_poc(a,l)	__cpuc_flush_dcache_area((a), (l))
> diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
> index 6accd66..dfd4987 100644
> --- a/arch/arm/kvm/arm.c
> +++ b/arch/arm/kvm/arm.c
> @@ -448,7 +448,7 @@ static void update_vttbr(struct kvm *kvm)
>  	kvm_next_vmid &= (1 << kvm_vmid_bits) - 1;
>  
>  	/* update vttbr to be used with the new vmid */
> -	pgd_phys = virt_to_phys(kvm_get_hwpgd(kvm));
> +	pgd_phys = virt_to_phys(kvm->arch.pgd);
>  	BUG_ON(pgd_phys & ~VTTBR_BADDR_MASK);
>  	vmid = ((u64)(kvm->arch.vmid) << VTTBR_VMID_SHIFT) & VTTBR_VMID_MASK(kvm_vmid_bits);
>  	kvm->arch.vttbr = pgd_phys | vmid;
> diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
> index dda60fc..1cb7e60 100644
> --- a/arch/arm/kvm/mmu.c
> +++ b/arch/arm/kvm/mmu.c
> @@ -755,6 +755,11 @@ int create_hyp_io_mappings(void *from, void *to, phys_addr_t phys_addr)
>  				     __phys_to_pfn(phys_addr), PAGE_HYP_DEVICE);
>  }
>  
> +static inline unsigned int kvm_get_hwpgd_size(void)
> +{
> +	return PTRS_PER_S2_PGD * sizeof(pgd_t);
> +}
> +
>  /* Free the HW pgd, one page at a time */
>  static void kvm_free_hwpgd(void *hwpgd)
>  {
> @@ -783,29 +788,16 @@ static void *kvm_alloc_hwpgd(void)
>  int kvm_alloc_stage2_pgd(struct kvm *kvm)
>  {
>  	pgd_t *pgd;
> -	void *hwpgd;
>  
>  	if (kvm->arch.pgd != NULL) {
>  		kvm_err("kvm_arch already initialized?\n");
>  		return -EINVAL;
>  	}
>  
> -	hwpgd = kvm_alloc_hwpgd();
> -	if (!hwpgd)
> +	pgd = kvm_alloc_hwpgd();

can you just inline kvm_alloc_hwpgd and kvm_get_hwpgd_size now?

> +	if (!pgd)
>  		return -ENOMEM;
>  
> -	/*
> -	 * When the kernel uses more levels of page tables than the
> -	 * guest, we allocate a fake PGD and pre-populate it to point
> -	 * to the next-level page table, which will be the real
> -	 * initial page table pointed to by the VTTBR.
> -	 */
> -	pgd = kvm_setup_fake_pgd(hwpgd);
> -	if (IS_ERR(pgd)) {
> -		kvm_free_hwpgd(hwpgd);
> -		return PTR_ERR(pgd);
> -	}
> -
>  	kvm_clean_pgd(pgd);
>  	kvm->arch.pgd = pgd;
>  	return 0;
> @@ -893,8 +885,7 @@ void kvm_free_stage2_pgd(struct kvm *kvm)
>  		return;
>  
>  	unmap_stage2_range(kvm, 0, KVM_PHYS_SIZE);
> -	kvm_free_hwpgd(kvm_get_hwpgd(kvm));
> -	kvm_free_fake_pgd(kvm->arch.pgd);
> +	kvm_free_hwpgd(kvm->arch.pgd);
>  	kvm->arch.pgd = NULL;
>  }
>  
> diff --git a/arch/arm64/include/asm/kvm_mmu.h b/arch/arm64/include/asm/kvm_mmu.h
> index e3fee0a..249c4fc 100644
> --- a/arch/arm64/include/asm/kvm_mmu.h
> +++ b/arch/arm64/include/asm/kvm_mmu.h
> @@ -141,24 +141,6 @@ static inline bool kvm_s2pmd_readonly(pmd_t *pmd)
>  	return (pmd_val(*pmd) & PMD_S2_RDWR) == PMD_S2_RDONLY;
>  }
>  
> -static inline void *kvm_get_hwpgd(struct kvm *kvm)
> -{
> -	return kvm->arch.pgd;
> -}
> -
> -static inline unsigned int kvm_get_hwpgd_size(void)
> -{
> -	return PTRS_PER_S2_PGD * sizeof(pgd_t);
> -}
> -
> -static inline pgd_t *kvm_setup_fake_pgd(pgd_t *hwpgd)
> -{
> -	return hwpgd;
> -}
> -
> -static inline void kvm_free_fake_pgd(pgd_t *pgd)
> -{
> -}
>  static inline bool kvm_page_empty(void *ptr)
>  {
>  	struct page *ptr_page = virt_to_page(ptr);
> -- 
> 1.7.9.5
> 

otherwise:

Acked-by: Christoffer Dall <christoffer.dall@linaro.org>

  reply	other threads:[~2016-04-08 15:08 UTC|newest]

Thread overview: 154+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-04 16:26 [PATCH 00/17] kvm-arm: Add stage2 page table walker Suzuki K Poulose
2016-04-04 16:26 ` Suzuki K Poulose
2016-04-04 16:26 ` Suzuki K Poulose
2016-04-04 16:26 ` [PATCH 01/17] arm64: Reuse TCR field definitions for EL1 and EL2 Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 12:43   ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 02/17] arm64: Cleanup VTCR_EL2 and VTTBR field values Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 12:43   ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-08 12:45     ` Suzuki K Poulose
2016-04-08 12:45       ` Suzuki K Poulose
2016-04-08 12:45       ` Suzuki K Poulose
2016-04-04 16:26 ` [PATCH 03/17] kvm arm: Move fake PGD handling to arch specific files Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26 ` [PATCH 04/17] arm64: Introduce pmd_thp_or_huge Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 12:43   ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 05/17] kvm-arm: Replace kvm_pmd_huge with pmd_thp_or_huge Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 12:43   ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 06/17] kvm-arm: Remove kvm_pud_huge() Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 12:44   ` Christoffer Dall
2016-04-08 12:44     ` Christoffer Dall
2016-04-08 12:44     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 07/17] kvm-arm: arm32: Introduce stage2 page table helpers Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 12:43   ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-08 12:43     ` Christoffer Dall
2016-04-08 14:39     ` Suzuki K Poulose
2016-04-08 14:39       ` Suzuki K Poulose
2016-04-08 14:39       ` Suzuki K Poulose
2016-04-04 16:26 ` [PATCH 08/17] kvm-arm: arm: Introduce hyp page table empty checks Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 13:15   ` Christoffer Dall
2016-04-08 13:15     ` Christoffer Dall
2016-04-08 13:15     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 09/17] kvm-arm: arm64: Introduce stage2 page table helpers Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 13:15   ` Christoffer Dall
2016-04-08 13:15     ` Christoffer Dall
2016-04-08 13:15     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 10/17] kvm-arm: arm64: Introduce hyp page table empty checks Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 13:15   ` Christoffer Dall
2016-04-08 13:15     ` Christoffer Dall
2016-04-08 13:15     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 11/17] kvm-arm: Use explicit stage2 helper routines Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 13:16   ` Christoffer Dall
2016-04-08 13:16     ` Christoffer Dall
2016-04-08 13:16     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 12/17] kvm-arm: Add explicit hyp page table modifiers Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 13:15   ` Christoffer Dall
2016-04-08 13:15     ` Christoffer Dall
2016-04-08 13:15     ` Christoffer Dall
2016-04-08 15:09     ` Marc Zyngier
2016-04-08 15:09       ` Marc Zyngier
2016-04-08 15:09       ` Marc Zyngier
2016-04-08 15:16       ` Christoffer Dall
2016-04-08 15:16         ` Christoffer Dall
2016-04-08 15:16         ` Christoffer Dall
2016-04-08 15:22         ` Marc Zyngier
2016-04-08 15:22           ` Marc Zyngier
2016-04-08 15:22           ` Marc Zyngier
2016-04-08 15:22       ` Suzuki K Poulose
2016-04-08 15:22         ` Suzuki K Poulose
2016-04-08 15:22         ` Suzuki K Poulose
2016-04-08 15:25         ` Christoffer Dall
2016-04-08 15:25           ` Christoffer Dall
2016-04-08 15:25           ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 13/17] kvm-arm: Add stage2 " Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 13:42   ` Christoffer Dall
2016-04-08 13:42     ` Christoffer Dall
2016-04-08 13:42     ` Christoffer Dall
2016-04-08 15:37     ` Suzuki K Poulose
2016-04-08 15:37       ` Suzuki K Poulose
2016-04-08 15:37       ` Suzuki K Poulose
2016-04-08 17:03       ` Christoffer Dall
2016-04-08 17:03         ` Christoffer Dall
2016-04-08 17:03         ` Christoffer Dall
2016-04-08 17:07         ` Suzuki K Poulose
2016-04-08 17:07           ` Suzuki K Poulose
2016-04-08 17:07           ` Suzuki K Poulose
2016-04-08 17:25           ` Christoffer Dall
2016-04-08 17:25             ` Christoffer Dall
2016-04-08 17:25             ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 14/17] kvm-arm: Cleanup kvm_* wrappers Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 15:05   ` Christoffer Dall
2016-04-08 15:05     ` Christoffer Dall
2016-04-08 15:05     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 15/17] kvm: arm64: Get rid of fake page table levels Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 15:05   ` Christoffer Dall
2016-04-08 15:05     ` Christoffer Dall
2016-04-08 15:05     ` Christoffer Dall
2016-04-11 14:33     ` Suzuki K Poulose
2016-04-11 14:33       ` Suzuki K Poulose
2016-04-11 14:33       ` Suzuki K Poulose
2016-04-12 12:14       ` Christoffer Dall
2016-04-12 12:14         ` Christoffer Dall
2016-04-12 12:14         ` Christoffer Dall
2016-04-12 13:03         ` Suzuki K Poulose
2016-04-12 13:03           ` Suzuki K Poulose
2016-04-12 13:03           ` Suzuki K Poulose
2016-04-12 13:11           ` Christoffer Dall
2016-04-12 13:11             ` Christoffer Dall
2016-04-12 13:11             ` Christoffer Dall
2016-04-13 17:49         ` Suzuki K Poulose
2016-04-13 17:49           ` Suzuki K Poulose
2016-04-13 17:49           ` Suzuki K Poulose
2016-04-14 12:18           ` Christoffer Dall
2016-04-14 12:18             ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 16/17] kvm-arm: Cleanup stage2 pgd handling Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 15:08   ` Christoffer Dall [this message]
2016-04-08 15:08     ` Christoffer Dall
2016-04-08 15:08     ` Christoffer Dall
2016-04-04 16:26 ` [PATCH 17/17] arm64: kvm: Add support for 16K pages Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-04 16:26   ` Suzuki K Poulose
2016-04-08 15:13   ` Christoffer Dall
2016-04-08 15:13     ` Christoffer Dall
2016-04-08 15:13     ` Christoffer Dall
2016-04-08 15:15 ` [PATCH 00/17] kvm-arm: Add stage2 page table walker Christoffer Dall
2016-04-08 15:15   ` Christoffer Dall
2016-04-08 15:15   ` Christoffer Dall

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=20160408150854.GZ8961@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=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=mark.rutland@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.