On 08.03.2021 10:25, Tim Deegan wrote: > At 16:37 +0100 on 05 Mar (1614962224), Jan Beulich wrote: >> We can't make correctness of our own behavior dependent upon a >> hypervisor underneath us correctly telling us the true physical address >> with hardware uses. Without knowing this, we can't be certain reserved >> bit faults can actually be observed. Therefore, besides evaluating the >> number of address bits when deciding whether to use the optimization, >> also check whether we're running virtualized ourselves. >> >> Requested-by: Andrew Cooper <[email protected]> >> Signed-off-by: Jan Beulich <[email protected]> > > Acked-by: Tim Deegan <[email protected]>
Thanks. > I would consider this to be a bug in the underlying hypervisor, but I > agree than in practice it won't be safe to rely on it being correct. Suffice it to say that I don't think we present a correct value to our guests. Plus, as said elsewhere, what would you suggest to hand to the guest in case it may need migrating (to a host with a different number of PA bits)? > These checks are getting fiddly now. I think that if we end up adding > any more to them it might be good to set a read-mostly variable at boot > time rather than do them on every MMIO/NP fault. Maybe, but I'd like to point out that the fault path uses only the sh_l1e_is_*() functions (plus sh_l1e_mmio_get_gfn()), and hence isn't affected by the added fiddly-ness. Jan
