On 2021/3/12 17:02, Marc Zyngier wrote: > On Thu, 11 Mar 2021 12:31:48 +0000, > Shenming Lu <lushenming@xxxxxxxxxx> wrote: >> >> On 2021/3/11 17:09, Marc Zyngier wrote: > >>> I have asked that question in the past: is it actually safe to remap >>> the vPEs and expect them to be runnable >> >> In my opinion, logically it can work, but there might be problems like the >> one below that I didn't notice... > > One thing is that you will have lost interrupts in the meantime > (assuming your devices are still alive). How will you make up for > that? I think that devices should be paused for (not only) saving interrupt states, and in fact, that's exactly what such as VFIO devices do... > >> >>> >>> Also, the current code assumes that VMAPP.PTZ can be advertised if a >>> VPT is mapped for the first time. Clearly, it is unlikely that the VPT >>> will be only populated with 0s, so you'll end up with state corruption >>> on the first remap. >> >> Oh, thanks for pointing it out. >> And if we always signal PTZ when alloc = 1, does it mean that we >> can't remap the vPE when the VPT is not empty, thus there is no >> chance to get the VLPI state? Could we just assume that the VPT is >> not empty when first mapping the vPE? > > I think we should drop the setting of PTZ altogether. It is a silly > micro-optimisation, and if the HW can't parse the VPT efficiently when > it is empty, then the HW is pretty bad, PTZ or not. agree :-) Thanks, Shenming > > Thanks, > > M. >