Re: [PATCH v3 02/12] KVM: arm/arm64: Document KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION

From: Christoffer Dall
Date: Tue Apr 24 2018 - 17:12:15 EST


On Tue, Apr 24, 2018 at 05:50:37PM +0100, Peter Maydell wrote:
> On 24 April 2018 at 17:46, Christoffer Dall <christoffer.dall@xxxxxxx> wrote:
> > On Fri, Apr 13, 2018 at 10:20:48AM +0200, Eric Auger wrote:
> >> --- a/Documentation/virtual/kvm/devices/arm-vgic-v3.txt
> >> +++ b/Documentation/virtual/kvm/devices/arm-vgic-v3.txt
> >> @@ -27,9 +27,32 @@ 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
> >
> > I'm not entirely sure I understand the purpose of the index field.
> > Isn't a redistributor region identified uniquely by its base address?
>
> You need a way to tell the difference beween:
> (1) redistributors for CPUs 0..63 at 0x40000000, redistributors
> for 64..127 at 0x80000000
> (2) redistributors for CPUs 0..63 at 0x80000000, redistributors
> for 64..127 at 0x40000000
>
> The index field tells you which order the redistributor
> regions go in.

ah, right. This could be implied by the order creating the regions
though, but ok, in that case it's nicer for userspace to state it
explicitly.

Thanks,
-Christoffer