On 18.08.2021 12:51, Jan Beulich wrote: > Paul, > > back at the time I did already question your intended meaning of > this flag. I notice that there's presently no consumer of it being > set (apart from yielding non-zero flush_flags). I'm afraid this > model makes accumulation of flush flags not work properly: With > both flags set and more than a single page altered, it is > impossible to tell apart whether two present PTEs were altered, or > a non-present and a present one. > > VT-d's flushing needs to know the distinction; it may in fact be > necessary to issue two flushes (or a single "heavier" one) when > both non-present and present entries got transitioned to present > in one go.
No two (or "heavier") flush looks to be needed upon further reading. I did derive this from our setting of "did" to zero in that case, but that looks to be wrong in the first place - it's correct only for context cache entry flushes. I'll make a(nother) patch ... Jan
