From: Marc Zyngier <marc.zyngier@arm.com>
To: "Suzuki K. Poulose" <suzuki.poulose@arm.com>,
linux-arm-kernel@lists.infradead.org
Cc: kvm@vger.kernel.org, ard.biesheuvel@linaro.org,
Catalin.Marinas@arm.com, Will.Deacon@arm.com,
linux-kernel@vger.kernel.org, kvmarm@lists.cs.columbia.edu
Subject: Re: [PATCH 12/15] arm: kvm: Move fake PGD handling to arch specific files
Date: Wed, 07 Oct 2015 11:23:52 +0100 [thread overview]
Message-ID: <5614F2B8.6030509@arm.com> (raw)
In-Reply-To: <1442331684-28818-13-git-send-email-suzuki.poulose@arm.com>
On 15/09/15 16:41, Suzuki K. Poulose wrote:
> From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
>
> Rearrange the code for fake pgd handling, which is applicable
> to only ARM64. The intention is to keep the common code cleaner,
> unaware of the underlying hacks.
>
> Cc: kvmarm@lists.cs.columbia.edu
> Cc: christoffer.dall@linaro.org
> Cc: Marc.Zyngier@arm.com
> Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
> ---
> arch/arm/include/asm/kvm_mmu.h | 7 ++++++
> arch/arm/kvm/mmu.c | 44 +++++---------------------------------
> arch/arm64/include/asm/kvm_mmu.h | 43 +++++++++++++++++++++++++++++++++++++
> 3 files changed, 55 insertions(+), 39 deletions(-)
>
> diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
> index 405aa18..1c9aa8a 100644
> --- a/arch/arm/include/asm/kvm_mmu.h
> +++ b/arch/arm/include/asm/kvm_mmu.h
> @@ -173,6 +173,13 @@ 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 *pgd)
> +{
> + return pgd;
> +}
> +
> +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/mmu.c b/arch/arm/kvm/mmu.c
> index 7b42012..b210622 100644
> --- a/arch/arm/kvm/mmu.c
> +++ b/arch/arm/kvm/mmu.c
> @@ -677,43 +677,11 @@ int kvm_alloc_stage2_pgd(struct kvm *kvm)
> * 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.
> - *
> - * When KVM_PREALLOC_LEVEL==2, we allocate a single page for
> - * the PMD and the kernel will use folded pud.
> - * When KVM_PREALLOC_LEVEL==1, we allocate 2 consecutive PUD
> - * pages.
> */
> - if (KVM_PREALLOC_LEVEL > 0) {
> - int i;
> -
> - /*
> - * Allocate fake pgd for the page table manipulation macros to
> - * work. This is not used by the hardware and we have no
> - * alignment requirement for this allocation.
> - */
> - pgd = kmalloc(PTRS_PER_S2_PGD * sizeof(pgd_t),
> - GFP_KERNEL | __GFP_ZERO);
> -
> - if (!pgd) {
> - kvm_free_hwpgd(hwpgd);
> - return -ENOMEM;
> - }
> -
> - /* Plug the HW PGD into the fake one. */
> - for (i = 0; i < PTRS_PER_S2_PGD; i++) {
> - if (KVM_PREALLOC_LEVEL == 1)
> - pgd_populate(NULL, pgd + i,
> - (pud_t *)hwpgd + i * PTRS_PER_PUD);
> - else if (KVM_PREALLOC_LEVEL == 2)
> - pud_populate(NULL, pud_offset(pgd, 0) + i,
> - (pmd_t *)hwpgd + i * PTRS_PER_PMD);
> - }
> - } else {
> - /*
> - * Allocate actual first-level Stage-2 page table used by the
> - * hardware for Stage-2 page table walks.
> - */
> - pgd = (pgd_t *)hwpgd;
> + pgd = kvm_setup_fake_pgd(hwpgd);
> + if (IS_ERR(pgd)) {
> + kvm_free_hwpgd(hwpgd);
> + return PTR_ERR(pgd);
> }
>
> kvm_clean_pgd(pgd);
> @@ -820,9 +788,7 @@ void kvm_free_stage2_pgd(struct kvm *kvm)
>
> unmap_stage2_range(kvm, 0, KVM_PHYS_SIZE);
> kvm_free_hwpgd(kvm_get_hwpgd(kvm));
> - if (KVM_PREALLOC_LEVEL > 0)
> - kfree(kvm->arch.pgd);
> -
> + kvm_free_fake_pgd(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 6150567..2567fe8 100644
> --- a/arch/arm64/include/asm/kvm_mmu.h
> +++ b/arch/arm64/include/asm/kvm_mmu.h
> @@ -198,6 +198,49 @@ static inline unsigned int kvm_get_hwpgd_size(void)
> return PTRS_PER_S2_PGD * sizeof(pgd_t);
> }
>
> +/*
> + * Allocate fake pgd for the page table manipulation macros to
> + * work. This is not used by the hardware and we have no
> + * alignment requirement for this allocation.
> + */
> +static inline pgd_t* kvm_setup_fake_pgd(pgd_t *hwpgd)
> +{
> + int i;
> + pgd_t *pgd;
> +
> + if (!KVM_PREALLOC_LEVEL)
> + return hwpgd;
> + /*
> + * When KVM_PREALLOC_LEVEL==2, we allocate a single page for
> + * the PMD and the kernel will use folded pud.
> + * When KVM_PREALLOC_LEVEL==1, we allocate 2 consecutive PUD
> + * pages.
> + */
> + pgd = kmalloc(PTRS_PER_S2_PGD * sizeof(pgd_t),
> + GFP_KERNEL | __GFP_ZERO);
> +
> + if (!pgd)
> + return ERR_PTR(-ENOMEM);
> +
> + /* Plug the HW PGD into the fake one. */
> + for (i = 0; i < PTRS_PER_S2_PGD; i++) {
> + if (KVM_PREALLOC_LEVEL == 1)
> + pgd_populate(NULL, pgd + i,
> + (pud_t *)hwpgd + i * PTRS_PER_PUD);
> + else if (KVM_PREALLOC_LEVEL == 2)
> + pud_populate(NULL, pud_offset(pgd, 0) + i,
> + (pmd_t *)hwpgd + i * PTRS_PER_PMD);
> + }
> +
> + return pgd;
> +}
> +
> +static inline void kvm_free_fake_pgd(pgd_t *pgd)
> +{
> + if (KVM_PREALLOC_LEVEL > 0)
> + kfree(pgd);
> +}
> +
> static inline bool kvm_page_empty(void *ptr)
> {
> struct page *ptr_page = virt_to_page(ptr);
>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
M.
--
Jazz is not dead. It just smells funny...
WARNING: multiple messages have this Message-ID (diff)
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 12/15] arm: kvm: Move fake PGD handling to arch specific files
Date: Wed, 07 Oct 2015 11:23:52 +0100 [thread overview]
Message-ID: <5614F2B8.6030509@arm.com> (raw)
In-Reply-To: <1442331684-28818-13-git-send-email-suzuki.poulose@arm.com>
On 15/09/15 16:41, Suzuki K. Poulose wrote:
> From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
>
> Rearrange the code for fake pgd handling, which is applicable
> to only ARM64. The intention is to keep the common code cleaner,
> unaware of the underlying hacks.
>
> Cc: kvmarm at lists.cs.columbia.edu
> Cc: christoffer.dall at linaro.org
> Cc: Marc.Zyngier at arm.com
> Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
> ---
> arch/arm/include/asm/kvm_mmu.h | 7 ++++++
> arch/arm/kvm/mmu.c | 44 +++++---------------------------------
> arch/arm64/include/asm/kvm_mmu.h | 43 +++++++++++++++++++++++++++++++++++++
> 3 files changed, 55 insertions(+), 39 deletions(-)
>
> diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
> index 405aa18..1c9aa8a 100644
> --- a/arch/arm/include/asm/kvm_mmu.h
> +++ b/arch/arm/include/asm/kvm_mmu.h
> @@ -173,6 +173,13 @@ 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 *pgd)
> +{
> + return pgd;
> +}
> +
> +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/mmu.c b/arch/arm/kvm/mmu.c
> index 7b42012..b210622 100644
> --- a/arch/arm/kvm/mmu.c
> +++ b/arch/arm/kvm/mmu.c
> @@ -677,43 +677,11 @@ int kvm_alloc_stage2_pgd(struct kvm *kvm)
> * 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.
> - *
> - * When KVM_PREALLOC_LEVEL==2, we allocate a single page for
> - * the PMD and the kernel will use folded pud.
> - * When KVM_PREALLOC_LEVEL==1, we allocate 2 consecutive PUD
> - * pages.
> */
> - if (KVM_PREALLOC_LEVEL > 0) {
> - int i;
> -
> - /*
> - * Allocate fake pgd for the page table manipulation macros to
> - * work. This is not used by the hardware and we have no
> - * alignment requirement for this allocation.
> - */
> - pgd = kmalloc(PTRS_PER_S2_PGD * sizeof(pgd_t),
> - GFP_KERNEL | __GFP_ZERO);
> -
> - if (!pgd) {
> - kvm_free_hwpgd(hwpgd);
> - return -ENOMEM;
> - }
> -
> - /* Plug the HW PGD into the fake one. */
> - for (i = 0; i < PTRS_PER_S2_PGD; i++) {
> - if (KVM_PREALLOC_LEVEL == 1)
> - pgd_populate(NULL, pgd + i,
> - (pud_t *)hwpgd + i * PTRS_PER_PUD);
> - else if (KVM_PREALLOC_LEVEL == 2)
> - pud_populate(NULL, pud_offset(pgd, 0) + i,
> - (pmd_t *)hwpgd + i * PTRS_PER_PMD);
> - }
> - } else {
> - /*
> - * Allocate actual first-level Stage-2 page table used by the
> - * hardware for Stage-2 page table walks.
> - */
> - pgd = (pgd_t *)hwpgd;
> + pgd = kvm_setup_fake_pgd(hwpgd);
> + if (IS_ERR(pgd)) {
> + kvm_free_hwpgd(hwpgd);
> + return PTR_ERR(pgd);
> }
>
> kvm_clean_pgd(pgd);
> @@ -820,9 +788,7 @@ void kvm_free_stage2_pgd(struct kvm *kvm)
>
> unmap_stage2_range(kvm, 0, KVM_PHYS_SIZE);
> kvm_free_hwpgd(kvm_get_hwpgd(kvm));
> - if (KVM_PREALLOC_LEVEL > 0)
> - kfree(kvm->arch.pgd);
> -
> + kvm_free_fake_pgd(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 6150567..2567fe8 100644
> --- a/arch/arm64/include/asm/kvm_mmu.h
> +++ b/arch/arm64/include/asm/kvm_mmu.h
> @@ -198,6 +198,49 @@ static inline unsigned int kvm_get_hwpgd_size(void)
> return PTRS_PER_S2_PGD * sizeof(pgd_t);
> }
>
> +/*
> + * Allocate fake pgd for the page table manipulation macros to
> + * work. This is not used by the hardware and we have no
> + * alignment requirement for this allocation.
> + */
> +static inline pgd_t* kvm_setup_fake_pgd(pgd_t *hwpgd)
> +{
> + int i;
> + pgd_t *pgd;
> +
> + if (!KVM_PREALLOC_LEVEL)
> + return hwpgd;
> + /*
> + * When KVM_PREALLOC_LEVEL==2, we allocate a single page for
> + * the PMD and the kernel will use folded pud.
> + * When KVM_PREALLOC_LEVEL==1, we allocate 2 consecutive PUD
> + * pages.
> + */
> + pgd = kmalloc(PTRS_PER_S2_PGD * sizeof(pgd_t),
> + GFP_KERNEL | __GFP_ZERO);
> +
> + if (!pgd)
> + return ERR_PTR(-ENOMEM);
> +
> + /* Plug the HW PGD into the fake one. */
> + for (i = 0; i < PTRS_PER_S2_PGD; i++) {
> + if (KVM_PREALLOC_LEVEL == 1)
> + pgd_populate(NULL, pgd + i,
> + (pud_t *)hwpgd + i * PTRS_PER_PUD);
> + else if (KVM_PREALLOC_LEVEL == 2)
> + pud_populate(NULL, pud_offset(pgd, 0) + i,
> + (pmd_t *)hwpgd + i * PTRS_PER_PMD);
> + }
> +
> + return pgd;
> +}
> +
> +static inline void kvm_free_fake_pgd(pgd_t *pgd)
> +{
> + if (KVM_PREALLOC_LEVEL > 0)
> + kfree(pgd);
> +}
> +
> static inline bool kvm_page_empty(void *ptr)
> {
> struct page *ptr_page = virt_to_page(ptr);
>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
M.
--
Jazz is not dead. It just smells funny...
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <marc.zyngier@arm.com>
To: "Suzuki K. Poulose" <suzuki.poulose@arm.com>,
linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org, Catalin.Marinas@arm.com,
Will.Deacon@arm.com, Mark.Rutland@arm.com,
kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
ard.biesheuvel@linaro.org, christoffer.dall@linaro.org
Subject: Re: [PATCH 12/15] arm: kvm: Move fake PGD handling to arch specific files
Date: Wed, 07 Oct 2015 11:23:52 +0100 [thread overview]
Message-ID: <5614F2B8.6030509@arm.com> (raw)
In-Reply-To: <1442331684-28818-13-git-send-email-suzuki.poulose@arm.com>
On 15/09/15 16:41, Suzuki K. Poulose wrote:
> From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
>
> Rearrange the code for fake pgd handling, which is applicable
> to only ARM64. The intention is to keep the common code cleaner,
> unaware of the underlying hacks.
>
> Cc: kvmarm@lists.cs.columbia.edu
> Cc: christoffer.dall@linaro.org
> Cc: Marc.Zyngier@arm.com
> Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com>
> ---
> arch/arm/include/asm/kvm_mmu.h | 7 ++++++
> arch/arm/kvm/mmu.c | 44 +++++---------------------------------
> arch/arm64/include/asm/kvm_mmu.h | 43 +++++++++++++++++++++++++++++++++++++
> 3 files changed, 55 insertions(+), 39 deletions(-)
>
> diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
> index 405aa18..1c9aa8a 100644
> --- a/arch/arm/include/asm/kvm_mmu.h
> +++ b/arch/arm/include/asm/kvm_mmu.h
> @@ -173,6 +173,13 @@ 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 *pgd)
> +{
> + return pgd;
> +}
> +
> +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/mmu.c b/arch/arm/kvm/mmu.c
> index 7b42012..b210622 100644
> --- a/arch/arm/kvm/mmu.c
> +++ b/arch/arm/kvm/mmu.c
> @@ -677,43 +677,11 @@ int kvm_alloc_stage2_pgd(struct kvm *kvm)
> * 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.
> - *
> - * When KVM_PREALLOC_LEVEL==2, we allocate a single page for
> - * the PMD and the kernel will use folded pud.
> - * When KVM_PREALLOC_LEVEL==1, we allocate 2 consecutive PUD
> - * pages.
> */
> - if (KVM_PREALLOC_LEVEL > 0) {
> - int i;
> -
> - /*
> - * Allocate fake pgd for the page table manipulation macros to
> - * work. This is not used by the hardware and we have no
> - * alignment requirement for this allocation.
> - */
> - pgd = kmalloc(PTRS_PER_S2_PGD * sizeof(pgd_t),
> - GFP_KERNEL | __GFP_ZERO);
> -
> - if (!pgd) {
> - kvm_free_hwpgd(hwpgd);
> - return -ENOMEM;
> - }
> -
> - /* Plug the HW PGD into the fake one. */
> - for (i = 0; i < PTRS_PER_S2_PGD; i++) {
> - if (KVM_PREALLOC_LEVEL == 1)
> - pgd_populate(NULL, pgd + i,
> - (pud_t *)hwpgd + i * PTRS_PER_PUD);
> - else if (KVM_PREALLOC_LEVEL == 2)
> - pud_populate(NULL, pud_offset(pgd, 0) + i,
> - (pmd_t *)hwpgd + i * PTRS_PER_PMD);
> - }
> - } else {
> - /*
> - * Allocate actual first-level Stage-2 page table used by the
> - * hardware for Stage-2 page table walks.
> - */
> - pgd = (pgd_t *)hwpgd;
> + pgd = kvm_setup_fake_pgd(hwpgd);
> + if (IS_ERR(pgd)) {
> + kvm_free_hwpgd(hwpgd);
> + return PTR_ERR(pgd);
> }
>
> kvm_clean_pgd(pgd);
> @@ -820,9 +788,7 @@ void kvm_free_stage2_pgd(struct kvm *kvm)
>
> unmap_stage2_range(kvm, 0, KVM_PHYS_SIZE);
> kvm_free_hwpgd(kvm_get_hwpgd(kvm));
> - if (KVM_PREALLOC_LEVEL > 0)
> - kfree(kvm->arch.pgd);
> -
> + kvm_free_fake_pgd(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 6150567..2567fe8 100644
> --- a/arch/arm64/include/asm/kvm_mmu.h
> +++ b/arch/arm64/include/asm/kvm_mmu.h
> @@ -198,6 +198,49 @@ static inline unsigned int kvm_get_hwpgd_size(void)
> return PTRS_PER_S2_PGD * sizeof(pgd_t);
> }
>
> +/*
> + * Allocate fake pgd for the page table manipulation macros to
> + * work. This is not used by the hardware and we have no
> + * alignment requirement for this allocation.
> + */
> +static inline pgd_t* kvm_setup_fake_pgd(pgd_t *hwpgd)
> +{
> + int i;
> + pgd_t *pgd;
> +
> + if (!KVM_PREALLOC_LEVEL)
> + return hwpgd;
> + /*
> + * When KVM_PREALLOC_LEVEL==2, we allocate a single page for
> + * the PMD and the kernel will use folded pud.
> + * When KVM_PREALLOC_LEVEL==1, we allocate 2 consecutive PUD
> + * pages.
> + */
> + pgd = kmalloc(PTRS_PER_S2_PGD * sizeof(pgd_t),
> + GFP_KERNEL | __GFP_ZERO);
> +
> + if (!pgd)
> + return ERR_PTR(-ENOMEM);
> +
> + /* Plug the HW PGD into the fake one. */
> + for (i = 0; i < PTRS_PER_S2_PGD; i++) {
> + if (KVM_PREALLOC_LEVEL == 1)
> + pgd_populate(NULL, pgd + i,
> + (pud_t *)hwpgd + i * PTRS_PER_PUD);
> + else if (KVM_PREALLOC_LEVEL == 2)
> + pud_populate(NULL, pud_offset(pgd, 0) + i,
> + (pmd_t *)hwpgd + i * PTRS_PER_PMD);
> + }
> +
> + return pgd;
> +}
> +
> +static inline void kvm_free_fake_pgd(pgd_t *pgd)
> +{
> + if (KVM_PREALLOC_LEVEL > 0)
> + kfree(pgd);
> +}
> +
> static inline bool kvm_page_empty(void *ptr)
> {
> struct page *ptr_page = virt_to_page(ptr);
>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2015-10-07 10:22 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-15 15:41 [PATCHv2 00/15] arm64: 16K translation granule support Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 01/15] arm64: Move swapper pagetable definitions Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 02/15] arm64: Handle section maps for swapper/idmap Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 03/15] arm64: Introduce helpers for page table levels Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-10-07 8:26 ` Christoffer Dall
2015-10-07 8:26 ` Christoffer Dall
2015-10-07 8:26 ` Christoffer Dall
2015-10-07 9:26 ` Marc Zyngier
2015-10-07 9:26 ` Marc Zyngier
2015-10-07 9:26 ` Marc Zyngier
2015-10-07 9:48 ` Suzuki K. Poulose
2015-10-07 9:48 ` Suzuki K. Poulose
2015-10-07 9:48 ` Suzuki K. Poulose
2015-10-08 14:45 ` Christoffer Dall
2015-10-08 14:45 ` Christoffer Dall
2015-10-08 14:45 ` Christoffer Dall
2015-10-08 17:22 ` Suzuki K. Poulose
2015-10-08 17:22 ` Suzuki K. Poulose
2015-10-08 17:28 ` Catalin Marinas
2015-10-08 17:28 ` Catalin Marinas
2015-10-09 9:22 ` Suzuki K. Poulose
2015-10-09 9:22 ` Suzuki K. Poulose
2015-10-09 9:22 ` Suzuki K. Poulose
2015-10-07 9:51 ` Suzuki K. Poulose
2015-10-07 9:51 ` Suzuki K. Poulose
2015-10-07 9:51 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 04/15] arm64: Calculate size for idmap_pg_dir at compile time Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 05/15] arm64: Handle 4 level page table for swapper Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 06/15] arm64: Clean config usages for page size Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 07/15] arm64: Kconfig: Fix help text about AArch32 support with 64K pages Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 08/15] arm64: Check for selected granule support Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 09/15] arm64: Add page size to the kernel image header Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-10-02 15:49 ` Catalin Marinas
2015-10-02 15:49 ` Catalin Marinas
2015-10-02 15:49 ` Catalin Marinas
2015-10-02 16:31 ` Catalin Marinas
2015-10-02 16:31 ` Catalin Marinas
2015-10-02 16:50 ` Marc Zyngier
2015-10-02 16:50 ` Marc Zyngier
2015-10-02 16:50 ` Marc Zyngier
2015-10-05 15:43 ` Christoffer Dall
2015-10-05 15:43 ` Christoffer Dall
2015-10-05 13:02 ` Suzuki K. Poulose
2015-10-05 13:02 ` Suzuki K. Poulose
2015-10-05 13:02 ` Suzuki K. Poulose
2015-10-05 13:22 ` Ard Biesheuvel
2015-10-05 13:22 ` Ard Biesheuvel
2015-10-05 13:22 ` Ard Biesheuvel
2015-10-10 17:22 ` Christoffer Dall
2015-10-10 17:22 ` Christoffer Dall
2015-10-10 17:22 ` Christoffer Dall
2015-09-15 15:41 ` [PATCH 10/15] arm64: kvm: Fix {V}TCR_EL2_TG0 mask Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-10-08 15:17 ` Christoffer Dall
2015-10-08 15:17 ` Christoffer Dall
2015-10-08 15:17 ` Christoffer Dall
2015-09-15 15:41 ` [PATCH 11/15] arm64: Cleanup VTCR_EL2 computation Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-10-07 10:11 ` Marc Zyngier
2015-10-07 10:11 ` Marc Zyngier
2015-10-07 10:23 ` Suzuki K. Poulose
2015-10-07 10:23 ` Suzuki K. Poulose
2015-10-07 10:23 ` Suzuki K. Poulose
2015-10-10 17:22 ` Christoffer Dall
2015-10-10 17:22 ` Christoffer Dall
2015-10-10 17:22 ` Christoffer Dall
2015-09-15 15:41 ` [PATCH 12/15] arm: kvm: Move fake PGD handling to arch specific files Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-10-07 10:23 ` Marc Zyngier [this message]
2015-10-07 10:23 ` Marc Zyngier
2015-10-07 10:23 ` Marc Zyngier
2015-10-10 17:22 ` Christoffer Dall
2015-10-10 17:22 ` Christoffer Dall
2015-10-10 17:22 ` Christoffer Dall
2015-09-15 15:41 ` [PATCH 13/15] arm64: kvm: Rewrite fake pgd handling Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-10-07 11:13 ` Marc Zyngier
2015-10-07 11:13 ` Marc Zyngier
2015-10-07 11:13 ` Marc Zyngier
2015-10-07 12:21 ` Suzuki K. Poulose
2015-10-07 12:21 ` Suzuki K. Poulose
2015-10-07 12:21 ` Suzuki K. Poulose
2015-10-10 14:52 ` Christoffer Dall
2015-10-10 14:52 ` Christoffer Dall
2015-10-10 14:52 ` Christoffer Dall
2015-10-12 9:55 ` Suzuki K. Poulose
2015-10-12 9:55 ` Suzuki K. Poulose
2015-10-13 15:39 ` Christoffer Dall
2015-10-13 15:39 ` Christoffer Dall
2015-10-13 15:39 ` Christoffer Dall
2015-10-13 16:04 ` Suzuki K. Poulose
2015-10-13 16:04 ` Suzuki K. Poulose
2015-10-13 16:04 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 14/15] arm64: Add 16K page size support Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` [PATCH 15/15] arm64: 36 bit VA Suzuki K. Poulose
2015-09-15 15:41 ` Suzuki K. Poulose
2015-09-15 15:41 ` 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=5614F2B8.6030509@arm.com \
--to=marc.zyngier@arm.com \
--cc=Catalin.Marinas@arm.com \
--cc=Will.Deacon@arm.com \
--cc=ard.biesheuvel@linaro.org \
--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=suzuki.poulose@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.