Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-05 Thread Robin Holt
On Wed, Mar 05, 2008 at 07:09:55AM +0200, Avi Kivity wrote: Isn't that out of the question for .25? I keep hearing this mantra. What is so compelling about the .25 release? When seems to be more important than what. While I understand product release cycles, etc. and can certainly agree with

Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-05 Thread Avi Kivity
Robin Holt wrote: On Wed, Mar 05, 2008 at 07:09:55AM +0200, Avi Kivity wrote: Isn't that out of the question for .25? I keep hearing this mantra. What is so compelling about the .25 release? When seems to be more important than what. While I understand product release cycles,

Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-05 Thread Dor Laor
On Wed, 2008-03-05 at 03:47 -0600, Robin Holt wrote: On Wed, Mar 05, 2008 at 07:09:55AM +0200, Avi Kivity wrote: Isn't that out of the question for .25? I keep hearing this mantra. What is so compelling about the .25 release? When seems to be more important than what. While I understand

Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-04 Thread Andrea Arcangeli
On Mon, Mar 03, 2008 at 11:31:15PM -0800, Christoph Lameter wrote: @@ -446,6 +450,8 @@ static int page_mkclean_one(struct page if (address == -EFAULT) goto out; + /* rmap lock held */ + emm_notify(mm, emm_invalidate_start, address, address + PAGE_SIZE);

Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-04 Thread Christoph Lameter
On Tue, 4 Mar 2008, Andrea Arcangeli wrote: When working with single pages it's more efficient and preferable to call invalidate_page and only later release the VM reference on the page. But as you pointed out before that path is a slow path anyways. Its rarely taken. Having a single

Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-04 Thread Andrea Arcangeli
On Tue, Mar 04, 2008 at 11:00:31AM -0800, Christoph Lameter wrote: But as you pointed out before that path is a slow path anyways. Its rarely It's a slow path but I don't see why you think two hooks are better than one, when only one is necessary. I once ripped invalidate_page while working on

Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-04 Thread Christoph Lameter
On Tue, 4 Mar 2008, Andrea Arcangeli wrote: I once ripped invalidate_page while working on #v8 but then I reintroduced it because I thought reducing the total number of hooks was beneficial to the core linux VM (even if only a microoptimization, I sure agree about that, but it's trivial to

Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-04 Thread Christoph Lameter
On Tue, 4 Mar 2008, Peter Zijlstra wrote: On Tue, 2008-03-04 at 14:35 -0800, Christoph Lameter wrote: RCU means that the callbacks occur in an atomic context. Not really, if it requires moving the VM locks to sleepable locks under a .config option, I think its also fair to require

Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-04 Thread Peter Zijlstra
FWIW, I'll cut the kvm and openfabrics lists from any future posts. I'm getting tired of the bounces. - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008.

Re: [kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-04 Thread Avi Kivity
Peter Zijlstra wrote: On Tue, 2008-03-04 at 14:35 -0800, Christoph Lameter wrote: RCU means that the callbacks occur in an atomic context. Not really, if it requires moving the VM locks to sleepable locks under a .config option, I think its also fair to require PREEMPT_RCU. OTOH,

[kvm-devel] [RFC] Notifier for Externally Mapped Memory (EMM)

2008-03-03 Thread Christoph Lameter
Stripped things down and did what Andrea and I talked about last Friday. No invalidate_page callbacks. No ops anymore. Simple linked list for notifier. No RCU. Added the code to rmap.h and rmap.c (after all it is concerned with handling mappings). This patch implements a simple callback for