Re: [PATCH 7/9] KVM: arm/arm64: vgic-its: free caches when GITS_BASER Valid bit is cleared
From: Christoffer Dall
Date: Mon Oct 16 2017 - 05:59:21 EST
On Mon, Oct 16, 2017 at 11:44:05AM +0200, Auger Eric wrote:
> Hi Christoffer,
> On 16/10/2017 11:26, Christoffer Dall wrote:
> > Hi Eric,
> >
> > On Mon, Sep 25, 2017 at 03:34:36PM +0200, Eric Auger wrote:
> >> When the GITS_BASER<n>.Valid gets cleared, the data structures in
> >> guest RAM are not provisionned anymore. The device, collection
> >> and LPI lists stored in the in-kernel ITS represent the same
> >> information in some form of cache. So let's void the cache.
> >
> > Just a thought. What about the opposite case, if the BASERs were
> > previously not valid, and then become valid, is the ITS expected restore
> > the state from memory?
> >
> > Thanks,
> > -Christoffer
> >
> No the spec does not mandate that as far as I understand. Also the spec
> does not mandate clearing the cache when BASER moves to invalid (which
> this patch does), although this would have madee sense to me. So maybe
> we should drop that patch and only clean the cache when the IOCTL is used.
>
I thought Marc pointed out that there is at least one hardware
implementation which does clean its cache when the BASER moves to
invalid, so it's not unlikely that software could rely on this behavior,
and I therefore think we should implement it, because it's not in
violation of the spec either.
Thanks,
-Christoffer