[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120201134347.GA18998@amt.cnet>
Date: Wed, 1 Feb 2012 11:43:47 -0200
From: Marcelo Tosatti <mtosatti@...hat.com>
To: Avi Kivity <avi@...hat.com>
Cc: Takuya Yoshikawa <yoshikawa.takuya@....ntt.co.jp>,
Peter Zijlstra <peterz@...radead.org>,
paulmck@...ux.vnet.ibm.com, Oleg Nesterov <oleg@...hat.com>,
linux-kernel <linux-kernel@...r.kernel.org>,
KVM list <kvm@...r.kernel.org>
Subject: Re: [RFC][PATCH] srcu: Implement call_srcu()
On Wed, Feb 01, 2012 at 01:01:38PM +0200, Avi Kivity wrote:
> 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.
get dirty log: 5634134 ns for 262144 dirty pages
5ms (for the entire operation).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists