Hi, Chuang, On Fri, Mar 03, 2023 at 06:56:50PM +0800, Chuang Xu wrote: > Sorry to forget to update the test results in the last patch of v6. > > In this version: > > - add peter's patch. > - split mr_do_commit() from mr_commit(). > - adjust the sanity check in address_space_to_flatview(). > - rebase to latest upstream. > - replace 8260 with 8362 as testing host. > - update the latest test results. > > Here I list some cases which will trigger do_commit() in > address_space_to_flatview(): > > 1.virtio_load->virtio_init_region_cache > 2.virtio_load->virtio_set_features_nocheck
What is this one specifically? I failed to see quickly why this needs to reference the flatview. > 3.vapic_post_load Same confusion to this one.. > 4.tcg_commit This is not enabled if kvm is on, right? > 5.ahci_state_post_load > > During my test, virtio_init_region_cache() will frequently trigger > do_commit() in address_space_to_flatview(), which will reduce the > optimization effect of v6 compared with v1. IIU above 1 & 4 could leverage one address_space_to_flatview_rcu() which can keep the old semantics of address_space_to_flatview() by just assert rcu read lock and do qatomic_rcu_read() (e.g., tcg_commit() will run again at last stage of vm load). Not sure how much it'll help. You may also want to have a look at the other patch to optimize ioeventfd commit here; I think that'll also speed up vm load but not sure how much your series can further do upon: https://lore.kernel.org/all/20230228142514.2582-1-longpe...@huawei.com/ Thanks, -- Peter Xu