All of lore.kernel.org
 help / color / mirror / Atom feed
From: christoffer.dall@linaro.org (Christoffer Dall)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 00/10] Support VGIC save/restore using device control API
Date: Fri, 13 Dec 2013 09:21:29 -0800	[thread overview]
Message-ID: <20131213172129.GU2871@cbox> (raw)
In-Reply-To: <1386878149-13397-1-git-send-email-christoffer.dall@linaro.org>

Whoops, I forgot to mark these as v4... Sorry about that!

-Christoffer

On Thu, Dec 12, 2013 at 11:55:39AM -0800, Christoffer Dall wrote:
> Implement save/restore of the VGIC state using the newer KVM Device
> Control API.  This requries some number of changes to existing code in
> addition to actually supporting save/restore of the necessary state.
> 
> The first patches (01-03) support creating the VGIC using the Device
> Control API.  This change is necessary because there are no other
> suitable KVM APIs that we can leverage to access the VGIC state from
> user space and the device control API was crafted exactly for this
> purpose.
> 
> Subsequent patches add the missing infrastructure and user space API
> pieces necessary to actually save and restore the VGIC state.  The GIC
> v2.0 architecture specification already specifies registers that can be
> used to save and restore the complete VGIC state for suspend/resume
> purposes on real hardware, and we can reuse this interface for the
> VGIC.  The API is therefore based on the memory-mapped register accesses
> defined in the specs.  See the individual patches for details.
> 
> The patches are based on kvm-arm-next with the arch timers save/restore
> patches applied:
> git://git.linaro.org/people/cdall/linux-kvm-arm.git timer-migrate-v4
> 
> This patch series based on the above can be cloned from:
> git://git.linaro.org/people/cdall/linux-kvm-arm.git vgic-migrate-v4
> 
> User space patches for QEMU have also been posted on the list, but an
> updated version is underway.  Tested on Versatile Express TC2.
> 
> Changelogs in the individual patches.
> 
> Christoffer Dall (10):
>   ARM: KVM: Allow creating the VGIC after VCPUs
>   KVM: arm-vgic: Support KVM_CREATE_DEVICE for VGIC
>   KVM: arm-vgic: Set base addr through device API
>   irqchip: arm-gic: Define additional MMIO offsets and masks
>   KVM: arm-vgic: Make vgic mmio functions more generic
>   arm/arm64: kvm: Set vcpu->cpu to -1 on vcpu_put
>   KVM: arm-vgic: Add vgic reg access from dev attr
>   KVM: arm-vgic: Support unqueueing of LRs to the dist
>   KVM: arm-vgic: Add GICD_SPENDSGIR and GICD_CPENDSGIR handlers
>   KVM: arm-vgic: Support CPU interface reg access
> 
>  Documentation/virtual/kvm/api.txt              |   7 +-
>  Documentation/virtual/kvm/devices/arm-vgic.txt |  73 ++++
>  arch/arm/include/uapi/asm/kvm.h                |   8 +
>  arch/arm/kvm/arm.c                             |  17 +-
>  include/kvm/arm_vgic.h                         |   2 +-
>  include/linux/irqchip/arm-gic.h                |  12 +
>  include/linux/kvm_host.h                       |   1 +
>  include/uapi/linux/kvm.h                       |   1 +
>  virt/kvm/arm/vgic.c                            | 581 +++++++++++++++++++++++--
>  virt/kvm/kvm_main.c                            |   6 +-
>  10 files changed, 670 insertions(+), 38 deletions(-)
>  create mode 100644 Documentation/virtual/kvm/devices/arm-vgic.txt
> 
> -- 
> 1.8.4.3
> 

-- 
Christoffer

WARNING: multiple messages have this Message-ID (diff)
From: Christoffer Dall <christoffer.dall@linaro.org>
To: kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: linaro-kernel@lists.linaro.org, patches@linaro.org
Subject: Re: [PATCH 00/10] Support VGIC save/restore using device control API
Date: Fri, 13 Dec 2013 09:21:29 -0800	[thread overview]
Message-ID: <20131213172129.GU2871@cbox> (raw)
In-Reply-To: <1386878149-13397-1-git-send-email-christoffer.dall@linaro.org>

Whoops, I forgot to mark these as v4... Sorry about that!

-Christoffer

On Thu, Dec 12, 2013 at 11:55:39AM -0800, Christoffer Dall wrote:
> Implement save/restore of the VGIC state using the newer KVM Device
> Control API.  This requries some number of changes to existing code in
> addition to actually supporting save/restore of the necessary state.
> 
> The first patches (01-03) support creating the VGIC using the Device
> Control API.  This change is necessary because there are no other
> suitable KVM APIs that we can leverage to access the VGIC state from
> user space and the device control API was crafted exactly for this
> purpose.
> 
> Subsequent patches add the missing infrastructure and user space API
> pieces necessary to actually save and restore the VGIC state.  The GIC
> v2.0 architecture specification already specifies registers that can be
> used to save and restore the complete VGIC state for suspend/resume
> purposes on real hardware, and we can reuse this interface for the
> VGIC.  The API is therefore based on the memory-mapped register accesses
> defined in the specs.  See the individual patches for details.
> 
> The patches are based on kvm-arm-next with the arch timers save/restore
> patches applied:
> git://git.linaro.org/people/cdall/linux-kvm-arm.git timer-migrate-v4
> 
> This patch series based on the above can be cloned from:
> git://git.linaro.org/people/cdall/linux-kvm-arm.git vgic-migrate-v4
> 
> User space patches for QEMU have also been posted on the list, but an
> updated version is underway.  Tested on Versatile Express TC2.
> 
> Changelogs in the individual patches.
> 
> Christoffer Dall (10):
>   ARM: KVM: Allow creating the VGIC after VCPUs
>   KVM: arm-vgic: Support KVM_CREATE_DEVICE for VGIC
>   KVM: arm-vgic: Set base addr through device API
>   irqchip: arm-gic: Define additional MMIO offsets and masks
>   KVM: arm-vgic: Make vgic mmio functions more generic
>   arm/arm64: kvm: Set vcpu->cpu to -1 on vcpu_put
>   KVM: arm-vgic: Add vgic reg access from dev attr
>   KVM: arm-vgic: Support unqueueing of LRs to the dist
>   KVM: arm-vgic: Add GICD_SPENDSGIR and GICD_CPENDSGIR handlers
>   KVM: arm-vgic: Support CPU interface reg access
> 
>  Documentation/virtual/kvm/api.txt              |   7 +-
>  Documentation/virtual/kvm/devices/arm-vgic.txt |  73 ++++
>  arch/arm/include/uapi/asm/kvm.h                |   8 +
>  arch/arm/kvm/arm.c                             |  17 +-
>  include/kvm/arm_vgic.h                         |   2 +-
>  include/linux/irqchip/arm-gic.h                |  12 +
>  include/linux/kvm_host.h                       |   1 +
>  include/uapi/linux/kvm.h                       |   1 +
>  virt/kvm/arm/vgic.c                            | 581 +++++++++++++++++++++++--
>  virt/kvm/kvm_main.c                            |   6 +-
>  10 files changed, 670 insertions(+), 38 deletions(-)
>  create mode 100644 Documentation/virtual/kvm/devices/arm-vgic.txt
> 
> -- 
> 1.8.4.3
> 

-- 
Christoffer

  parent reply	other threads:[~2013-12-13 17:21 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-12 19:55 [PATCH 00/10] Support VGIC save/restore using device control API Christoffer Dall
2013-12-12 19:55 ` Christoffer Dall
2013-12-12 19:55 ` [PATCH 01/10] ARM: KVM: Allow creating the VGIC after VCPUs Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-12 19:55 ` [PATCH 02/10] KVM: arm-vgic: Support KVM_CREATE_DEVICE for VGIC Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-16 11:45   ` Marc Zyngier
2013-12-16 11:45     ` Marc Zyngier
2013-12-16 17:08     ` Christoffer Dall
2013-12-16 17:08       ` Christoffer Dall
2013-12-12 19:55 ` [PATCH 03/10] KVM: arm-vgic: Set base addr through device API Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-16 11:46   ` Marc Zyngier
2013-12-16 11:46     ` Marc Zyngier
2013-12-12 19:55 ` [PATCH 04/10] irqchip: arm-gic: Define additional MMIO offsets and masks Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-12 19:55 ` [PATCH 05/10] KVM: arm-vgic: Make vgic mmio functions more generic Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-12 19:55 ` [PATCH 06/10] arm/arm64: kvm: Set vcpu->cpu to -1 on vcpu_put Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-16 11:49   ` Marc Zyngier
2013-12-16 11:49     ` Marc Zyngier
2013-12-12 19:55 ` [PATCH 07/10] KVM: arm-vgic: Add vgic reg access from dev attr Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-16 11:51   ` Marc Zyngier
2013-12-16 11:51     ` Marc Zyngier
2013-12-12 19:55 ` [PATCH 08/10] KVM: arm-vgic: Support unqueueing of LRs to the dist Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-16 12:53   ` Marc Zyngier
2013-12-16 12:53     ` Marc Zyngier
2013-12-16 17:07     ` Christoffer Dall
2013-12-16 17:07       ` Christoffer Dall
2013-12-12 19:55 ` [PATCH 09/10] KVM: arm-vgic: Add GICD_SPENDSGIR and GICD_CPENDSGIR handlers Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-12 19:55 ` [PATCH 10/10] KVM: arm-vgic: Support CPU interface reg access Christoffer Dall
2013-12-12 19:55   ` Christoffer Dall
2013-12-13 17:21 ` Christoffer Dall [this message]
2013-12-13 17:21   ` [PATCH 00/10] Support VGIC save/restore using device control API Christoffer Dall
2013-12-16 12:56 ` Marc Zyngier
2013-12-16 12:56   ` Marc Zyngier

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=20131213172129.GU2871@cbox \
    --to=christoffer.dall@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.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.