[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Implementing GICv3 ITS support for TCG emulation
From: |
Auger Eric |
Subject: |
Re: Implementing GICv3 ITS support for TCG emulation |
Date: |
Tue, 17 Nov 2020 18:46:19 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
Hi Alex,
On 11/17/20 5:44 PM, Alex Bennée wrote:
>
> Hi,
>
> I've been asked what the state of ITS support is for emulation. The
> documentation explicitly states that there is currently no ITS support
> under TCG.
effectively it is not supported.
>
> Looking at the code it looks like there was a deliberate attempt to
> separate common and KVM related code. Currently the only realizable
> device (via its_class_name) is the TYPE_KVM_ARM_ITS device with a
> comment saying emulation is "not implemented yet". My question is what
> is left to do?
>
> - do we just need a wrapper akin to arm_gicv3_its_kvm.c?
> - do we need to implement more logic normally carried out in KVM?
You definitively need plenty of logic implemented in KVM:
arch/arm64/kvm/vgic/vgic-its.c. implement all the ITS commands sent
through the command queue. implement all the translation logic that
takes as input an eventid/deviceid into an lpi id. This translation
logic uses several tables populated by the commands: the device table,
the collection table and interrupt translation table. Configuration and
status of LPIs are stored in other tables. So yes that's a huge work and
amount of code I think. There are KVM unit tests usable for incremental
testing.
Thanks
Eric
>
> Thanks,
>