On Fri, Mar 10, 2023 at 10:24:23AM +0800, Chuang Xu wrote: > Before using any flatview, sanity check whether BQL or rcu is held. And > if we're during a memory region transaction, try to immediately update > mappings, or the map can be invalid.
Sorry I didn't read into details in the previous version. This subject and commit message all need update. It's not only about sanity anymore. We need to state the major change to address_space_to_flatview() to allow triggering do_commit() during a very large memory transaction, also on why you did it. IMHO it's because we find it's beneficial for speeding up vm load if wrap the vm load into a whole memory transaction. The whole point is vm load contains far more memory updates than referencing to a specific address space / flatview, hence this nested do_commit should logically only be triggered in a few spots during vm load. Thanks, -- Peter Xu