On 7/25/22 15:32, Sean Christopherson wrote:
... If we go the "always flush" route, I would word the comment to explicitly call out that the alternative would be to check if the SPTE is MMU-writable. But my preference would actually be to keep the conditional flushing. Not because I think it will provide better performance (probably the opposite if anything), but because it documents the dependencies/rules in code, and because "always flush" reads like it's working around a KVM bug. It's not a super strong preference though. Partially, I think it'd be this?
This would work, but I am slightly leaning away from it because it could increase CPU overhead in some cases. If you don't have a strong preference for it, then I think we could just do an unconditional flush with a more detailed comment explaining the interaction with clear_young() as well as the alternative of checking the MMU-writable bit.
Thanks, Junaid