All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <marc.zyngier@arm.com>
To: Nikolay Nikolaev <n.nikolaev@virtualopensystems.com>,
	Andre Przywara <Andre.Przywara@arm.com>
Cc: VirtualOpenSystems Technical Team <tech@virtualopensystems.com>,
	"open list:KERNEL VIRTUAL MA..." <kvm@vger.kernel.org>,
	list@foss.arm.com,
	ARM PORT <linux-arm-kernel@lists.infradead.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	moderated@foss.arm.com,
	"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>
Subject: Re: [PATCH v2 00/12] KVM: arm/arm64: move VGIC MMIO to kvm_io_bus
Date: Tue, 24 Mar 2015 10:10:47 +0000	[thread overview]
Message-ID: <55113827.60708@arm.com> (raw)
In-Reply-To: <CADDJ2=NVaAwuE9LZj5Uhjo=JEHKsf_CYxs391Pk4+6SNJcH8+A@mail.gmail.com>

On 23/03/15 21:50, Nikolay Nikolaev wrote:
> On Mon, Mar 23, 2015 at 5:58 PM, Andre Przywara <andre.przywara@arm.com> wrote:
>> This series converts the VGIC MMIO handling routines to the generic
>> kvm_io_bus framework. The framework is needed for the ioeventfd
>> functionality, some people on the list wanted to see the VGIC
>> converted over to use it, too.
>> Beside from now moving to a generic framework instead of relying on
>> an ARM specific one we also clean up quite some code and get rid of
>> some unnecessary copying.
>> On that way the MMIO abort handling for ARM has changed quite a bit,
>> so please have a closer look and test it on your setup if possible.
>>
>> Based on the v1 review I addressed Christoffer's minor comments, but
>> also heavily changed [11/12]: "KVM: ARM: on IO mem abort - route the
>> call to KVM MMIO bus" to get rid of the now unnecessary copying and
>> the usage of kvm_exit_mmio in that early stage. See the respective
>> commit message for more details.
>>
>> The series is loosely based on Nikolay's work[1], thanks especially
>> for the tedious first patch.
>> I totally reworked Nikolay's 3/5 to avoid adding another MMIO handling
>> layer on top of the already quite convoluted VGIC MMIO handling.
>> Also Nikolay's 2/5 get extended and changed significantly, that's why
>> I dropped his Signed-off-by.
>>
>> Unfortunately kvm_io_bus lacks an opaque pointer to pass in some data,
>> so I worked around this by using container_of.
>> Now for every struct kvm_mmio_range array a KVM I/O device is
>> registered (one for VGICv2, 2*nr_vcpus + 1 for VGICv3), using the
>> struct kvm_io_device variable as an anchor into the new
>> struct vgic_io_device. This one holds the base address, the
>> vgic_io_range pointer and (in case of the GICv3 redistributor) the
>> associated vCPU, so that we can access all instance-specific data
>> easily.
>>
>> Patch 2 moves the iodev.h header file around, that solves a problem
>> when embedding a struct in arm_vgic.h later. That looks like a nice
>> cleanup anyway, so I added two patches to remove the compiler switch
>> to add virt/kvm as a include directory. This has been tested for
>> arm/arm64 and x86. As soon as I get around to compile-test the other
>> architectures, I can send out the respective patches for those, too.
>>
>> Patches 5-7 tweak the existing code a bit to make it fit for the
>> conversion.
>> Patch 8 contains the framework for the new handling, while
>> patch 9 and 10 enable the GICv2 and GICv3 emulation, respectively.
>> Patch 11 finally switches over to the new kvm_io_bus handling,
>> reworking the early ARM KVM MMIO handling quite a bit. Patch 12
>> removes the now unneeded code. I split this up to ease reviewing, I
>> could merge patches as well if needed.
> 
> Shall we add here also the last 2 patches from my series that actually enable
> the eventfd compilation and KVM_CAP_IOEVENTFD? Or should I send them separately?

I think that this is the goal, so please send them as a follow-up to
this series.

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

      reply	other threads:[~2015-03-24 10:04 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-23 15:58 [PATCH v2 00/12] KVM: arm/arm64: move VGIC MMIO to kvm_io_bus Andre Przywara
2015-03-23 15:58 ` Andre Przywara
2015-03-23 15:58 ` [PATCH v2 01/12] KVM: Redesign kvm_io_bus_ API to pass VCPU structure to the callbacks Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 16:56   ` Marc Zyngier
2015-03-25 16:56     ` Marc Zyngier
2015-03-23 15:58 ` [PATCH v2 02/12] KVM: move iodev.h from virt/kvm/ to include/kvm Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:00   ` Marc Zyngier
2015-03-25 17:00     ` Marc Zyngier
2015-03-25 21:41     ` Marcelo Tosatti
2015-03-25 21:41       ` Marcelo Tosatti
2015-03-23 15:58 ` [PATCH v2 03/12] KVM: arm/arm64: remove now unneeded include directory from Makefile Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:00   ` Marc Zyngier
2015-03-25 17:00     ` Marc Zyngier
2015-03-23 15:58 ` [PATCH v2 04/12] KVM: x86: " Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:01   ` Marc Zyngier
2015-03-25 17:01     ` Marc Zyngier
2015-03-25 21:41     ` Marcelo Tosatti
2015-03-25 21:41       ` Marcelo Tosatti
2015-03-23 15:58 ` [PATCH v2 05/12] KVM: arm/arm64: rename struct kvm_mmio_range to vgic_io_range Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:02   ` Marc Zyngier
2015-03-25 17:02     ` Marc Zyngier
2015-03-23 15:58 ` [PATCH v2 06/12] KVM: mark kvm->buses as empty once they were destroyed Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:09   ` Marc Zyngier
2015-03-25 17:09     ` Marc Zyngier
2015-03-25 21:59     ` Marcelo Tosatti
2015-03-25 21:59       ` Marcelo Tosatti
2015-03-26 12:41       ` Andre Przywara
2015-03-26 12:41         ` Andre Przywara
2015-03-27  1:31     ` Marcelo Tosatti
2015-03-27  1:31       ` Marcelo Tosatti
2015-03-27  2:10       ` Chen, Tiejun
2015-03-27  2:10         ` Chen, Tiejun
2015-03-23 15:58 ` [PATCH v2 07/12] KVM: arm/arm64: simplify vgic_find_range() and callers Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:13   ` Marc Zyngier
2015-03-25 17:13     ` Marc Zyngier
2015-03-23 15:58 ` [PATCH v2 08/12] KVM: arm/arm64: implement kvm_io_bus MMIO handling for the VGIC Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:18   ` Marc Zyngier
2015-03-25 17:18     ` Marc Zyngier
2015-03-23 15:58 ` [PATCH v2 09/12] KVM: arm/arm64: prepare GICv2 emulation to be handled by kvm_io_bus Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:21   ` Marc Zyngier
2015-03-25 17:21     ` Marc Zyngier
2015-03-23 15:58 ` [PATCH v2 10/12] KVM: arm/arm64: prepare GICv3 emulation to use kvm_io_bus MMIO handling Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:36   ` Marc Zyngier
2015-03-25 17:36     ` Marc Zyngier
2015-03-23 15:58 ` [PATCH v2 11/12] KVM: arm/arm64: rework MMIO abort handling to use KVM MMIO bus Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-23 21:43   ` Nikolay Nikolaev
2015-03-23 21:43     ` Nikolay Nikolaev
2015-03-24 16:03   ` [PATCH] KVM: arm/arm64: fix MMIO handling on userland induced accesses Andre Przywara
2015-03-24 16:03     ` Andre Przywara
2015-03-25 17:37     ` Marc Zyngier
2015-03-25 17:37       ` Marc Zyngier
2015-03-23 15:58 ` [PATCH v2 12/12] KVM: arm/arm64: remove now obsolete VGIC specific MMIO handling code Andre Przywara
2015-03-23 15:58   ` Andre Przywara
2015-03-25 17:36   ` Marc Zyngier
2015-03-25 17:36     ` Marc Zyngier
2015-03-27  9:33   ` Marc Zyngier
2015-03-27  9:33     ` Marc Zyngier
2015-03-23 21:50 ` [PATCH v2 00/12] KVM: arm/arm64: move VGIC MMIO to kvm_io_bus Nikolay Nikolaev
2015-03-23 21:50   ` Nikolay Nikolaev
2015-03-24 10:10   ` Marc Zyngier [this message]

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=55113827.60708@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=Andre.Przywara@arm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=list@foss.arm.com \
    --cc=moderated@foss.arm.com \
    --cc=n.nikolaev@virtualopensystems.com \
    --cc=pbonzini@redhat.com \
    --cc=tech@virtualopensystems.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.