On 04/04/2017 19:23, Christoffer Dall wrote: >> I think all !IN_GUEST_MODE should behave the same, so I was avoiding >> the use of EXITING_GUEST_MODE and OUTSIDE_GUEST_MODE, which wouldn't be >> hard to address, but then I'd also have to address >> READING_SHADOW_PAGE_TABLES, which may complicate the document more than >> necessary. I'm not sure we need to address a VCPU exiting guest mode, >> other than making sure it's clear that a VCPU that exits must check >> requests before it enters again. > > But the problem is that kvm_make_all_cpus_request() only sends IPIs to > CPUs where the mode was different from OUTSIDE_GUEST_MODE, so there it's > about !OUTSIDE_GUEST_MODE rather than !IN_GUEST_MODE, so there's some > subtlety here which I feel like it's dangerous to paper over. Don't bother documenting READING_SHADOW_PAGE_TABLES---but EXITING_GUEST_MODE should be used in ARM and documented, because it's the key in making kvm_vcpu_kick not racy. Paolo