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. Luckily no flush accumulation has been committed so far (besides some during Dom0 construction), meaning this has only been a latent issue until now that I try to get large page mappings to work. (I think I have page table construction working, but after the removal of some debug output I'm now facing faults on non-present entries which I believe are actually present in the page tables, albeit I yet have to check that.) Question therefore is: Do we want to re-purpose the flag (my preference), or do I need to add a 3rd one (in which case I'm afraid I can't think of a good name, with "added" already in use)? Jan