* Implementing GICv3 ITS support for TCG emulation
@ 2020-11-17 16:44 Alex Bennée
2020-11-17 17:46 ` Auger Eric
0 siblings, 1 reply; 2+ messages in thread
From: Alex Bennée @ 2020-11-17 16:44 UTC (permalink / raw)
To: Peter Maydell, Pavel Fedin, Eric Auger; +Cc: Shashi Mallela, qemu-arm
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.
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?
Thanks,
--
Alex Bennée
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Implementing GICv3 ITS support for TCG emulation
2020-11-17 16:44 Implementing GICv3 ITS support for TCG emulation Alex Bennée
@ 2020-11-17 17:46 ` Auger Eric
0 siblings, 0 replies; 2+ messages in thread
From: Auger Eric @ 2020-11-17 17:46 UTC (permalink / raw)
To: Alex Bennée, Peter Maydell, Pavel Fedin; +Cc: Shashi Mallela, qemu-arm
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,
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-11-17 17:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-17 16:44 Implementing GICv3 ITS support for TCG emulation Alex Bennée
2020-11-17 17:46 ` Auger Eric
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.