On 02/10/2011 03:14 PM, Jan Kiszka wrote:
On 2011-02-10 13:57, Avi Kivity wrote: > On 02/10/2011 02:56 PM, Avi Kivity wrote: >>> What's the benefit? The downside is a bit more complexity as you need an >>> additional callback handler. >> >> >> synchronize_rcu() can be very slow (its a systemwide operation), and >> mmu_shrink() can be called often on a loaded system. >> > > In fact this just shows that vm_list is not a good candidate for rcu; > rcu is useful where most operations are reads, but if we discount stats, > most operations on vm_list are going to be writes. Accept for mmu_shrink, which is write but not delete, thus works without that slow synchronize_rcu.
I don't really see how you can implement list_move_rcu(), it has to be atomic or other users will see a partial vm_list.
And I don't see the need for call_rcu in the vm deletion path.
synchronize_rcu() is fine for vm destruction. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html