On 05/27/2015 01:51 AM, Paolo Bonzini wrote:
On 26/05/2015 17:49, Alexey Kardashevskiy wrote:
It's very little used, but that's just because it's not too common.
There's nothing wrong with it. :)
If you do del/set_size/add, you may want to put a
memory_region_transaction_{begin,commit} around the whole dance.
Here I lost you again :)
Why? These are IOMMU MRs -> they are dynamic, what will begin()/commit()
change here?
If you don't add them, the memory core may create two or three different
flatviews. With begin/commit, it will only do one change. It's just an
optimization.
One step back :) Whole dance is what here? There are:
1) del+set_size(0)
2) set_size(not zero)+add
1) and 2) are called in different places, between those the guest get
control so I cannot wrap these in begin/commit. If you suggest
begin+commit around, for example, 1)- this is just a single call and there
be one change to flatview, where many changes may happen? And only the last
one is used, right, or there is a list of them somewhere? :)
--
Alexey