On Wed, Mar 08, 2023 at 06:03:45AM -0800, Chuang Xu wrote:
> IIUC, Do you mean that different ways to get flatview are tricky?
Yes, and properly define when to use which.
> As you said, it's slightly beyond what this series does. Maybe it would be
> better if we discuss it in a new series and keep this series at v6?
> what's your take?
Quotting your test result:
time of loading non-iterable vmstate
before 112 ms
long's patch applied 103 ms
my patch applied 44 ms
both applied 39 ms
add as_to_flat_rcu 19 ms
If introducing address_space_to_flatview_rcu() can further half the time,
maybe still worth it?
The thing is the extra _rcu() doesn't bring the major complexity, IMHO. It
brings some on identifying which is really safe to not reference a latest
flatview (it seems to me only during a commit() hook..).
The major complexity still comes from the nested enforced commit() during
address_space_to_flatview() but that is already in the patchset.
Thanks,
--
Peter Xu