From: Auger Eric <eric.auger@redhat.com>
To: Christoffer Dall <cdall@kernel.org>
Cc: eric.auger.pro@gmail.com, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
marc.zyngier@arm.com, peter.maydell@linaro.org,
andre.przywara@arm.com, drjones@redhat.com, wei@redhat.com
Subject: Re: [RFC v2 02/12] KVM: arm/arm64: Document KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION
Date: Thu, 12 Apr 2018 17:51:19 +0200 [thread overview]
Message-ID: <ad884b2d-7809-70e6-c968-8411f43b915e@redhat.com> (raw)
In-Reply-To: <20180409213852.GJ10904@cbox>
Hi Christoffer,
> Hi Eric,
>
> On Tue, Mar 27, 2018 at 04:04:06PM +0200, Eric Auger wrote:
>> We introduce a new KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION attribute in
>> KVM_DEV_ARM_VGIC_GRP_ADDR group. It allows userspace to provide the
>> base address and size of a redistributor region
>>
>> Compared to KVM_VGIC_V3_ADDR_TYPE_REDIST, this new attribute allows
>> to declare several separate redistributor regions.
>>
>> So the whole redist space does not need to be contiguous anymore.
>>
>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>> ---
>> Documentation/virtual/kvm/devices/arm-vgic-v3.txt | 18 ++++++++++++++++++
>> 1 file changed, 18 insertions(+)
>>
>> diff --git a/Documentation/virtual/kvm/devices/arm-vgic-v3.txt b/Documentation/virtual/kvm/devices/arm-vgic-v3.txt
>> index 9293b45..0ded904 100644
>> --- a/Documentation/virtual/kvm/devices/arm-vgic-v3.txt
>> +++ b/Documentation/virtual/kvm/devices/arm-vgic-v3.txt
>> @@ -27,6 +27,24 @@ Groups:
>> VCPU and all of the redistributor pages are contiguous.
>> Only valid for KVM_DEV_TYPE_ARM_VGIC_V3.
>> This address needs to be 64K aligned.
>> +
>> + KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION (rw, 64-bit)
>> + The attr field of kvm_device_attr encodes 3 values:
>> + bits: | 63 .... 52 | 51 .... 16 | 15 - 12 |11 - 0
>> + values: | count | base | flags | index
>> + - index encodes the unique redistributor region index
>> + - flags: reserved for future use, currently 0
>> + - base field encodes bits [51:16] of the guest physical base address
>> + of the first redistributor in the region. There are two 64K pages
>> + for each VCPU and all of the redistributor pages are contiguous
>
> should this be two 64K pages for the number of redistributors in this
> region as specified by count ?
yes it is, I will reword.
>
>> + within the redistributor region.
>> + - count encodes the number of redistributors in the region.
>
> I assume it's implied that the user must register a total number of
> redistributors across all the regions that matches the number of vcpus,
> and that otherwise something bad happens?
Yes the regions registered by the userspace must be large enough to
assign all the vcpu redistributors. Otherwise an error is produced on
first vcpu run (on map_resources). At that time the number of vcpu is
frozen and we can perform the check.
Thanks
Eric
>
>> + Only valid for KVM_DEV_TYPE_ARM_VGIC_V3.
>> +
>> + It is invalid to mix calls with KVM_VGIC_V3_ADDR_TYPE_REDIST and
>> + KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION attributes. When attempted an
>> + -EINVAL error is returned.
>> +
>> Errors:
>> -E2BIG: Address outside of addressable IPA range
>> -EINVAL: Incorrectly aligned address
>> --
>> 2.5.5
>>
>
> Thanks,
> -Christoffer
>
next prev parent reply other threads:[~2018-04-12 15:51 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-27 14:04 [RFC v2 00/12] KVM: arm/arm64: Allow multiple GICv3 redistributor regions Eric Auger
2018-03-27 14:04 ` [RFC v2 01/12] KVM: arm/arm64: Set dist->spis to NULL after kfree Eric Auger
2018-03-27 17:10 ` Marc Zyngier
2018-03-28 6:41 ` Auger Eric
2018-03-27 14:04 ` [RFC v2 02/12] KVM: arm/arm64: Document KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION Eric Auger
2018-04-09 21:38 ` Christoffer Dall
2018-04-12 15:51 ` Auger Eric [this message]
2018-03-27 14:04 ` [RFC v2 03/12] KVM: arm/arm64: Replace the single rdist region by a list Eric Auger
2018-03-27 14:04 ` [RFC v2 04/12] KVM: arm/arm64: Helper to locate free rdist index Eric Auger
2018-03-27 14:04 ` [RFC v2 05/12] KVM: arm/arm64: Revisit Redistributor TYPER last bit computation Eric Auger
2018-03-27 14:04 ` [RFC v2 06/12] KVM: arm/arm64: Helper to register a new redistributor region Eric Auger
2018-03-27 14:04 ` [RFC v2 07/12] KVM: arm/arm64: Adapt vgic_v3_check_base to multiple rdist regions Eric Auger
2018-03-27 14:04 ` [RFC v2 08/12] KVM: arm/arm64: Check vcpu redist base before registering an iodev Eric Auger
2018-03-27 14:04 ` [RFC v2 09/12] KVM: arm/arm64: Check all vcpu redistributors are set on map_resources Eric Auger
2018-03-27 14:04 ` [RFC v2 10/12] KVM: arm/arm64: Add KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION Eric Auger
2018-03-27 14:04 ` [RFC v2 11/12] KVM: arm/arm64: Implement KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION Eric Auger
2018-03-28 18:55 ` Peter Maydell
2018-03-28 20:19 ` Auger Eric
2018-03-27 14:04 ` [RFC v2 12/12] KVM: arm/arm64: Bump VGIC_V3_MAX_CPUS to 512 Eric Auger
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=ad884b2d-7809-70e6-c968-8411f43b915e@redhat.com \
--to=eric.auger@redhat.com \
--cc=andre.przywara@arm.com \
--cc=cdall@kernel.org \
--cc=drjones@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=peter.maydell@linaro.org \
--cc=wei@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox