All of lore.kernel.org
 help / color / mirror / Atom feed
From: Will Deacon <will.deacon@arm.com>
To: Christoffer Dall <christoffer.dall@linaro.org>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>,
	linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org,
	kvmarm@lists.cs.columbia.edu, marc.zyngier@arm.com,
	linux-kernel@vger.kernel.org, kristina.martsenko@arm.com,
	peter.maydell@linaro.org, pbonzini@redhat.com,
	rkrcmar@redhat.com, ard.biesheuvel@linaro.org,
	mark.rutland@arm.com, catalin.marinas@arm.com
Subject: Re: [PATCH 00/16] kvm: arm64: Support for dynamic IPA size
Date: Thu, 8 Feb 2018 11:25:41 +0000	[thread overview]
Message-ID: <20180208112540.GA17775@arm.com> (raw)
In-Reply-To: <20180208111844.GN29286@cbox>

I can comment on one part here:

On Thu, Feb 08, 2018 at 12:18:44PM +0100, Christoffer Dall wrote:
> Wasn't this also the decision taken for IOMMU page table allocation, and
> why was that the right approach for the IOMMU but not for KVM stage 2
> page tables?  Is there room for reuse of the IOMMU page table allocation
> logic in KVM as well?

There were a few reasons we did this for IOMMU page tables:

  * Ability to use different page size/VA bits/levels from the CPU
  * Ability to support different page table formats (e.g. short descriptor)
  * Ability to determine page table attributes at runtime
  * Requirement to map/unmap in atomic context
  * Ability to cope with non-coherent page table walkers
  * Ability to create both stage-1 and stage-2 mappings
  * Easier to hook in our own TLB invalidation routines
  * Support for lockless concurrent map/unmap within confines of the DMA API
    usage

Will

WARNING: multiple messages have this Message-ID (diff)
From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 00/16] kvm: arm64: Support for dynamic IPA size
Date: Thu, 8 Feb 2018 11:25:41 +0000	[thread overview]
Message-ID: <20180208112540.GA17775@arm.com> (raw)
In-Reply-To: <20180208111844.GN29286@cbox>

I can comment on one part here:

On Thu, Feb 08, 2018 at 12:18:44PM +0100, Christoffer Dall wrote:
> Wasn't this also the decision taken for IOMMU page table allocation, and
> why was that the right approach for the IOMMU but not for KVM stage 2
> page tables?  Is there room for reuse of the IOMMU page table allocation
> logic in KVM as well?

There were a few reasons we did this for IOMMU page tables:

  * Ability to use different page size/VA bits/levels from the CPU
  * Ability to support different page table formats (e.g. short descriptor)
  * Ability to determine page table attributes at runtime
  * Requirement to map/unmap in atomic context
  * Ability to cope with non-coherent page table walkers
  * Ability to create both stage-1 and stage-2 mappings
  * Easier to hook in our own TLB invalidation routines
  * Support for lockless concurrent map/unmap within confines of the DMA API
    usage

Will

  reply	other threads:[~2018-02-08 11:25 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-09 19:03 [PATCH 00/16] kvm: arm64: Support for dynamic IPA size Suzuki K Poulose
2018-01-09 19:03 ` Suzuki K Poulose
2018-01-09 19:03 ` [PATCH v1 01/16] virtio: Validate queue pfn for 32bit transports Suzuki K Poulose
2018-01-09 19:03   ` Suzuki K Poulose
2018-01-09 23:29   ` Michael S. Tsirkin
2018-01-09 23:29     ` Michael S. Tsirkin
2018-01-10 10:54     ` Suzuki K Poulose
2018-01-10 10:54       ` Suzuki K Poulose
2018-01-10 10:54       ` Suzuki K Poulose
2018-01-10 11:06       ` Michael S. Tsirkin
2018-01-10 11:06         ` Michael S. Tsirkin
2018-01-10 11:06         ` Michael S. Tsirkin
2018-01-10 11:18         ` Suzuki K Poulose
2018-01-10 11:18           ` Suzuki K Poulose
2018-01-10 11:19         ` Peter Maydell
2018-01-10 11:19           ` Peter Maydell
2018-01-10 11:19           ` Peter Maydell
2018-01-10 11:25           ` Jean-Philippe Brucker
2018-01-10 11:25             ` Jean-Philippe Brucker
2018-01-12 10:21             ` Peter Maydell
2018-01-12 10:21               ` Peter Maydell
2018-01-12 10:21               ` Peter Maydell
2018-01-12 11:01               ` Jean-Philippe Brucker
2018-01-12 11:01                 ` Jean-Philippe Brucker
2018-01-10 11:30           ` Michael S. Tsirkin
2018-01-10 11:30             ` Michael S. Tsirkin
2018-01-09 19:03 ` [PATCH v1 02/16] irqchip: gicv3-its: Add helpers for handling 52bit address Suzuki K Poulose
2018-01-09 19:03   ` Suzuki K Poulose
2018-01-09 19:03   ` Suzuki K Poulose
2018-02-07 15:10   ` Christoffer Dall
2018-02-07 15:10     ` Christoffer Dall
2018-02-08 11:20     ` Suzuki K Poulose
2018-02-08 11:20       ` Suzuki K Poulose
2018-02-08 11:36       ` Robin Murphy
2018-02-08 11:36         ` Robin Murphy
2018-02-08 13:45       ` Christoffer Dall
2018-02-08 13:45         ` Christoffer Dall
2018-02-08 13:45         ` Christoffer Dall
2018-01-09 19:03 ` [PATCH v1 03/16] arm64: Make page table helpers reusable Suzuki K Poulose
2018-01-09 19:03   ` Suzuki K Poulose
2018-01-09 19:03   ` Suzuki K Poulose
2018-01-09 19:03 ` [PATCH v1 04/16] arm64: Refactor pud_huge for reusability Suzuki K Poulose
2018-01-09 19:03   ` Suzuki K Poulose
2018-01-09 19:04 ` [PATCH v1 05/16] arm64: Helper for parange to PASize Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-02-08 11:00   ` Christoffer Dall
2018-02-08 11:00     ` Christoffer Dall
2018-02-08 11:08     ` Suzuki K Poulose
2018-02-08 11:08       ` Suzuki K Poulose
2018-02-08 11:21       ` Christoffer Dall
2018-02-08 11:21         ` Christoffer Dall
2018-01-09 19:04 ` [PATCH v1 06/16] kvm: arm/arm64: Fix stage2_flush_memslot for 4 level page table Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-02-08 11:00   ` Christoffer Dall
2018-02-08 11:00     ` Christoffer Dall
2018-01-09 19:04 ` [PATCH v1 07/16] kvm: arm/arm64: Remove spurious WARN_ON Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-02-08 11:00   ` Christoffer Dall
2018-02-08 11:00     ` Christoffer Dall
2018-01-09 19:04 ` [PATCH v1 08/16] kvm: arm/arm64: Clean up stage2 pgd life time Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-02-08 11:00   ` Christoffer Dall
2018-02-08 11:00     ` Christoffer Dall
2018-02-08 17:19     ` Suzuki K Poulose
2018-02-08 17:19       ` Suzuki K Poulose
2018-02-09  8:11       ` Christoffer Dall
2018-02-09  8:11         ` Christoffer Dall
2018-01-09 19:04 ` [PATCH v1 09/16] kvm: arm/arm64: Delay stage2 page table allocation Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-02-08 11:01   ` Christoffer Dall
2018-02-08 11:01     ` Christoffer Dall
2018-02-08 17:20     ` Suzuki K Poulose
2018-02-08 17:20       ` Suzuki K Poulose
2018-01-09 19:04 ` [PATCH v1 10/16] kvm: arm/arm64: Prepare for VM specific stage2 translations Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04 ` [PATCH v1 11/16] kvm: arm64: Make stage2 page table layout dynamic Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04 ` [PATCH v1 12/16] kvm: arm64: Dynamic configuration of VTCR and VTTBR mask Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04 ` [PATCH v1 13/16] kvm: arm64: Configure VTCR per VM Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-02-08 18:04   ` Christoffer Dall
2018-02-08 18:04     ` Christoffer Dall
2018-03-15 15:24     ` Suzuki K Poulose
2018-03-15 15:24       ` Suzuki K Poulose
2018-01-09 19:04 ` [PATCH v1 14/16] kvm: arm64: Switch to per VM IPA Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-02-08 11:00   ` Christoffer Dall
2018-02-08 11:00     ` Christoffer Dall
2018-02-08 17:22     ` Suzuki K Poulose
2018-02-08 17:22       ` Suzuki K Poulose
2018-02-08 17:22       ` Suzuki K Poulose
2018-02-09  8:12       ` Christoffer Dall
2018-02-09  8:12         ` Christoffer Dall
2018-01-09 19:04 ` [PATCH v1 15/16] kvm: arm64: Allow configuring physical address space size Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-02-08 11:14   ` Christoffer Dall
2018-02-08 11:14     ` Christoffer Dall
2018-02-08 17:53     ` Suzuki K Poulose
2018-02-08 17:53       ` Suzuki K Poulose
2018-02-09  8:16       ` Christoffer Dall
2018-02-09  8:16         ` Christoffer Dall
2018-02-09  9:27         ` Andrew Jones
2018-02-09  9:27           ` Andrew Jones
2018-02-09  9:27           ` Andrew Jones
2018-03-15 11:06         ` Suzuki K Poulose
2018-03-15 11:06           ` Suzuki K Poulose
2018-01-09 19:04 ` [PATCH v1 16/16] vgic: its: Add support for 52bit guest physical address Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04 ` [kvmtool hack 1/3] virtio: Handle aborts using invalid PFN Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04 ` [kvmtool hack 2/3] kvmtool: arm64: Add support for guest physical address size Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-01-09 19:04 ` [kvmtool hack 3/3] kvmtool: arm64: Switch memory layout Suzuki K Poulose
2018-01-09 19:04   ` Suzuki K Poulose
2018-02-08 11:18 ` [PATCH 00/16] kvm: arm64: Support for dynamic IPA size Christoffer Dall
2018-02-08 11:18   ` Christoffer Dall
2018-02-08 11:25   ` Will Deacon [this message]
2018-02-08 11:25     ` Will Deacon

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=20180208112540.GA17775@arm.com \
    --to=will.deacon@arm.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=christoffer.dall@linaro.org \
    --cc=kristina.martsenko@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=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=rkrcmar@redhat.com \
    --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.