Messages in this thread | | | Date | Wed, 01 Feb 2012 13:01:38 +0200 | From | Avi Kivity <> | Subject | Re: [RFC][PATCH] srcu: Implement call_srcu() |
| |
On 02/01/2012 01:00 PM, Takuya Yoshikawa wrote: > >> rcu_assign_pointer), and use atomic operations to copy and clear: >> >> word = bitmap[i] >> put_user(word) >> atomic_and(&bitmap[i], ~word) >> >> > > This kind of this was really slow IIRC. > > > How about just doing: > > take a spin_lock > copy the entire (or some portions of) bitmap locally > clear the bitmap > unlock >
That means that vcpus dirtying memory also have to take that lock, and spin while the bitmap is being copied. So kvm_vm_ioctl_get_dirty_log() will become faster, at the expense of vcpus, which I think is a bad tradeoff.
> write protect the dirty pages based on the copied dirty data > > copy_to_user > > > > I can show you some performance numbers, this weekend, if you like.
That'll be great, numbers are better than speculation.
-- error compiling committee.c: too many arguments to function
| |