Messages in this thread | | | Date | Thu, 09 May 2019 08:58:23 +0100 | From | Marc Zyngier <> | Subject | Re: Why do we mark vpending table as non-shareable in GICR_VPENDBASER? |
| |
On Thu, 09 May 2019 08:10:09 +0100, Heyi Guo <guoheyi@huawei.com> wrote: > > Hi Marc, > > We can see in its_vpe_schedule() the shareability bits of > GICR_VPENDBASER are set as non-shareable, But we set physical > PENDBASER as inner-shareable. Is there any special reason for doing > this? If it is because the vpending table is GICR specific, why > don't we do the same for physical pending table?
That's a good question. They should have similar attributes.
> We have not seen function issue with this setting, but a special > detector in our hardware warns us that there are non-shareable > requests sent out while some inner shareable cache entries still > present in the cache, and it may cause data inconsistent.
The main issue with the inner-shareable attributes and the GIC is that nothing in the spec says that CPUs and GIC have to be in the same inner-shareable domain, as the system can have as many as you want.
You obviously have built it with GICR in the same inner-shareability domain as the CPU. I'm happy to change the VPENDBASER attributes, given that the CPU has a mapping to that memory already, and that shouldn't affect systems where GICR isn't in the same inner shareable domain anyway.
Thanks,
M.
-- Jazz is not dead, it just smell funny.
| |