On 09/07/2015 10:14, Wen Congyang wrote: > > flush_compressed_data(f); > > ram_control_after_iterate(f, RAM_CONTROL_FINISH); > > - migration_end(); > > - > > rcu_read_unlock(); > > + > > + migration_end(); > > qemu_put_be64(f, RAM_SAVE_FLAG_EOS); > > Yes, this patch can work. But if the caller hold the rcu read lock in > the future, we may need to fix it again. I think it is better to use > call_rcu().
Why? Just document that migration_end must be called outside an RCU read-side critical section. It's not a heavy limitation. Paolo