All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brice Goglin <Brice.Goglin@inria.fr>
To: Andrea Arcangeli <andrea@qumranet.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH] mmu notifiers #v2
Date: Wed, 16 Jan 2008 10:01:32 +0100	[thread overview]
Message-ID: <478DC7EC.1040101@inria.fr> (raw)
In-Reply-To: <20080113162418.GE8736@v2.random>

Andrea Arcangeli wrote:
> This patch is last version of a basic implementation of the mmu
> notifiers.
>
> In short when the linux VM decides to free a page, it will unmap it
> from the linux pagetables. However when a page is mapped not just by
> the regular linux ptes, but also from the shadow pagetables, it's
> currently unfreeable by the linux VM.
>
> This patch allows the shadow pagetables to be dropped and the page to
> be freed after that, if the linux VM decides to unmap the page from
> the main ptes because it wants to swap out the page.
>
> [...]
>
> Comments welcome... especially from SGI/IBM/Quadrics and all other
> potential users of this functionality.
>   

For HPC, this should be very interesting. Managing the registration 
cache of high-speed networks from user-space is a huge mess. This 
approach should help a lot. In fact, back in 2004, I implemented 
something similar called vmaspy to update the regcache of Myrinet 
drivers. I never submitted any patch because Infiniband would have been 
the only user in the mainline kernel and they were reluctant to these 
ideas [1]. In the meantime, some of them apparently changed their mind 
since they implemented some vmops-overriding hack to do something 
similar [2]. This patch should simplify all this.

One of the difference with my patch is that you attach the notifier list 
to the mm_struct while my code attached it to vmas. But I now don't 
think it was such a good idea since it probably didn't reduce the number 
of notifier calls a lot.

Also, one thing that I looked at in vmaspy was notifying fork. I am not 
sure what happens on Copy-on-write with your code, but for sure C-o-w is 
problematic for shadow page tables. I thought shadow pages should just 
be invalidated when a fork happens and the caller would refill them 
after forcing C-o-w or so. So adding a notifier call there too might be 
nice.

Brice

[1] http://lkml.org/lkml/2005/4/29/175
[2] http://www.osc.edu/~pw/papers/wyckoff-memreg-ccgrid05.pdf


WARNING: multiple messages have this Message-ID (diff)
From: Brice Goglin <Brice.Goglin@inria.fr>
To: Andrea Arcangeli <andrea@qumranet.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH] mmu notifiers #v2
Date: Wed, 16 Jan 2008 10:01:32 +0100	[thread overview]
Message-ID: <478DC7EC.1040101@inria.fr> (raw)
In-Reply-To: <20080113162418.GE8736@v2.random>

Andrea Arcangeli wrote:
> This patch is last version of a basic implementation of the mmu
> notifiers.
>
> In short when the linux VM decides to free a page, it will unmap it
> from the linux pagetables. However when a page is mapped not just by
> the regular linux ptes, but also from the shadow pagetables, it's
> currently unfreeable by the linux VM.
>
> This patch allows the shadow pagetables to be dropped and the page to
> be freed after that, if the linux VM decides to unmap the page from
> the main ptes because it wants to swap out the page.
>
> [...]
>
> Comments welcome... especially from SGI/IBM/Quadrics and all other
> potential users of this functionality.
>   

For HPC, this should be very interesting. Managing the registration 
cache of high-speed networks from user-space is a huge mess. This 
approach should help a lot. In fact, back in 2004, I implemented 
something similar called vmaspy to update the regcache of Myrinet 
drivers. I never submitted any patch because Infiniband would have been 
the only user in the mainline kernel and they were reluctant to these 
ideas [1]. In the meantime, some of them apparently changed their mind 
since they implemented some vmops-overriding hack to do something 
similar [2]. This patch should simplify all this.

One of the difference with my patch is that you attach the notifier list 
to the mm_struct while my code attached it to vmas. But I now don't 
think it was such a good idea since it probably didn't reduce the number 
of notifier calls a lot.

Also, one thing that I looked at in vmaspy was notifying fork. I am not 
sure what happens on Copy-on-write with your code, but for sure C-o-w is 
problematic for shadow page tables. I thought shadow pages should just 
be invalidated when a fork happens and the caller would refill them 
after forcing C-o-w or so. So adding a notifier call there too might be 
nice.

Brice

[1] http://lkml.org/lkml/2005/4/29/175
[2] http://www.osc.edu/~pw/papers/wyckoff-memreg-ccgrid05.pdf

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2008-01-16  9:01 UTC|newest]

Thread overview: 192+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-13 16:24 [PATCH] mmu notifiers #v2 Andrea Arcangeli
2008-01-13 16:24 ` Andrea Arcangeli
2008-01-13 16:24 ` Andrea Arcangeli
2008-01-13 21:11 ` Benjamin Herrenschmidt
2008-01-13 21:11   ` Benjamin Herrenschmidt
2008-01-13 21:11   ` Benjamin Herrenschmidt
2008-01-14 20:02 ` Christoph Lameter
2008-01-14 20:02   ` Christoph Lameter
2008-01-14 20:02   ` Christoph Lameter
2008-01-15  4:28   ` Benjamin Herrenschmidt
2008-01-15  4:28     ` Benjamin Herrenschmidt
2008-01-15  4:28     ` Benjamin Herrenschmidt
2008-01-15 12:44   ` Andrea Arcangeli
2008-01-15 12:44     ` Andrea Arcangeli
2008-01-15 12:44     ` Andrea Arcangeli
2008-01-15 20:18     ` Benjamin Herrenschmidt
2008-01-15 20:18       ` Benjamin Herrenschmidt
2008-01-15 20:18       ` Benjamin Herrenschmidt
2008-01-16  1:06       ` Andrea Arcangeli
2008-01-16  1:06         ` Andrea Arcangeli
2008-01-16  9:01 ` Brice Goglin [this message]
2008-01-16  9:01   ` Brice Goglin
2008-01-16 10:19   ` Andrea Arcangeli
2008-01-16 10:19     ` Andrea Arcangeli
2008-01-16 17:42 ` Rik van Riel
2008-01-16 17:42   ` Rik van Riel
2008-01-16 17:42   ` Rik van Riel
2008-01-16 17:48   ` Izik Eidus
2008-01-16 17:48     ` Izik Eidus
2008-01-16 17:48     ` Izik Eidus
2008-01-17 16:23     ` Andrea Arcangeli
2008-01-17 16:23       ` Andrea Arcangeli
2008-01-17 16:23       ` Andrea Arcangeli
2008-01-17 18:21       ` Izik Eidus
2008-01-17 18:21         ` Izik Eidus
2008-01-17 19:32         ` Andrea Arcangeli
2008-01-17 19:32           ` Andrea Arcangeli
2008-01-17 19:32           ` Andrea Arcangeli
2008-01-21 12:52           ` [PATCH] mmu notifiers #v3 Andrea Arcangeli
2008-01-21 12:52             ` Andrea Arcangeli
2008-01-21 12:52             ` Andrea Arcangeli
2008-01-22  2:21             ` Rik van Riel
2008-01-22  2:21               ` Rik van Riel
2008-01-22  2:21               ` Rik van Riel
2008-01-22 14:12             ` [kvm-devel] " Avi Kivity
2008-01-22 14:12               ` Avi Kivity
2008-01-22 14:12               ` Avi Kivity
2008-01-22 14:43               ` [kvm-devel] " Andrea Arcangeli
2008-01-22 14:43                 ` Andrea Arcangeli
2008-01-22 14:43                 ` Andrea Arcangeli
2008-01-22 20:08                 ` [kvm-devel] [PATCH] mmu notifiers #v4 Andrea Arcangeli
2008-01-22 20:08                   ` Andrea Arcangeli
2008-01-22 20:08                   ` Andrea Arcangeli
2008-01-22 20:34                   ` [kvm-devel] [PATCH] export notifier #1 Christoph Lameter
2008-01-22 20:34                     ` Christoph Lameter
2008-01-22 20:34                     ` Christoph Lameter
2008-01-22 22:31                     ` [kvm-devel] " Andrea Arcangeli
2008-01-22 22:31                       ` Andrea Arcangeli
2008-01-22 22:31                       ` Andrea Arcangeli
2008-01-22 22:53                       ` [kvm-devel] " Christoph Lameter
2008-01-22 22:53                         ` Christoph Lameter
2008-01-22 22:53                         ` Christoph Lameter
2008-01-23 10:27                         ` [kvm-devel] " Avi Kivity
2008-01-23 10:27                           ` Avi Kivity
2008-01-23 10:27                           ` Avi Kivity
2008-01-23 10:52                           ` [kvm-devel] " Robin Holt
2008-01-23 10:52                             ` Robin Holt
2008-01-23 10:52                             ` Robin Holt
2008-01-23 12:04                             ` [kvm-devel] " Andrea Arcangeli
2008-01-23 12:04                               ` Andrea Arcangeli
2008-01-23 12:34                               ` Robin Holt
2008-01-23 12:34                                 ` Robin Holt
2008-01-23 12:34                                 ` Robin Holt
2008-01-23 19:48                               ` [kvm-devel] " Christoph Lameter
2008-01-23 19:48                                 ` Christoph Lameter
2008-01-23 19:48                                 ` Christoph Lameter
2008-01-23 19:58                                 ` [kvm-devel] " Robin Holt
2008-01-23 19:58                                   ` Robin Holt
2008-01-23 19:58                                   ` Robin Holt
2008-01-23 19:47                             ` [kvm-devel] " Christoph Lameter
2008-01-23 19:47                               ` Christoph Lameter
2008-01-23 19:47                               ` Christoph Lameter
2008-01-24  5:56                               ` [kvm-devel] " Avi Kivity
2008-01-24  5:56                                 ` Avi Kivity
2008-01-24  5:56                                 ` Avi Kivity
2008-01-24 12:26                                 ` [kvm-devel] " Andrea Arcangeli
2008-01-24 12:26                                   ` Andrea Arcangeli
2008-01-24 12:26                                   ` Andrea Arcangeli
2008-01-24 12:34                                   ` [kvm-devel] " Avi Kivity
2008-01-24 12:34                                     ` Avi Kivity
2008-01-24 12:34                                     ` Avi Kivity
2008-01-23 11:41                         ` [kvm-devel] " Andrea Arcangeli
2008-01-23 11:41                           ` Andrea Arcangeli
2008-01-23 11:41                           ` Andrea Arcangeli
2008-01-23 12:32                           ` [kvm-devel] " Robin Holt
2008-01-23 12:32                             ` Robin Holt
2008-01-23 12:32                             ` Robin Holt
2008-01-23 17:33                             ` [kvm-devel] " Andrea Arcangeli
2008-01-23 17:33                               ` Andrea Arcangeli
2008-01-23 17:33                               ` Andrea Arcangeli
2008-01-23 20:27                               ` [kvm-devel] " Christoph Lameter
2008-01-23 20:27                                 ` Christoph Lameter
2008-01-23 20:27                                 ` Christoph Lameter
2008-01-24 15:42                                 ` [kvm-devel] " Andrea Arcangeli
2008-01-24 15:42                                   ` Andrea Arcangeli
2008-01-24 20:07                                   ` Christoph Lameter
2008-01-24 20:07                                     ` Christoph Lameter
2008-01-24 20:07                                     ` Christoph Lameter
2008-01-25  6:35                                     ` [kvm-devel] " Avi Kivity
2008-01-25  6:35                                       ` Avi Kivity
2008-01-25  6:35                                       ` Avi Kivity
2008-01-23 20:18                           ` [kvm-devel] " Christoph Lameter
2008-01-23 20:18                             ` Christoph Lameter
2008-01-23 20:18                             ` Christoph Lameter
2008-01-24 14:34                             ` [kvm-devel] " Andrea Arcangeli
2008-01-24 14:34                               ` Andrea Arcangeli
2008-01-24 14:34                               ` Andrea Arcangeli
2008-01-24 14:41                               ` [kvm-devel] " Andrea Arcangeli
2008-01-24 14:41                                 ` Andrea Arcangeli
2008-01-24 14:41                                 ` Andrea Arcangeli
2008-01-24 15:15                               ` [kvm-devel] " Avi Kivity
2008-01-24 15:15                                 ` Avi Kivity
2008-01-24 15:15                                 ` Avi Kivity
2008-01-24 15:18                                 ` [kvm-devel] " Avi Kivity
2008-01-24 15:18                                   ` Avi Kivity
2008-01-24 15:18                                   ` Avi Kivity
2008-01-24 20:01                               ` [kvm-devel] " Christoph Lameter
2008-01-24 20:01                                 ` Christoph Lameter
2008-01-24 20:01                                 ` Christoph Lameter
2008-01-22 23:36                     ` [kvm-devel] " Benjamin Herrenschmidt
2008-01-22 23:36                       ` Benjamin Herrenschmidt
2008-01-22 23:36                       ` Benjamin Herrenschmidt
2008-01-23  0:40                       ` [kvm-devel] " Christoph Lameter
2008-01-23  0:40                         ` Christoph Lameter
2008-01-23  0:40                         ` Christoph Lameter
2008-01-23  1:21                         ` [kvm-devel] " Robin Holt
2008-01-23  1:21                           ` Robin Holt
2008-01-23  1:21                           ` Robin Holt
2008-01-23 12:51                     ` [kvm-devel] " Gerd Hoffmann
2008-01-23 12:51                       ` Gerd Hoffmann
2008-01-23 12:51                       ` Gerd Hoffmann
2008-01-23 13:19                       ` [kvm-devel] " Robin Holt
2008-01-23 13:19                         ` Robin Holt
2008-01-23 13:19                         ` Robin Holt
2008-01-23 14:12                         ` [kvm-devel] " Gerd Hoffmann
2008-01-23 14:12                           ` Gerd Hoffmann
2008-01-23 14:12                           ` Gerd Hoffmann
2008-01-23 14:18                           ` [kvm-devel] " Robin Holt
2008-01-23 14:18                             ` Robin Holt
2008-01-23 14:18                             ` Robin Holt
2008-01-23 14:35                             ` [kvm-devel] " Gerd Hoffmann
2008-01-23 14:35                               ` Gerd Hoffmann
2008-01-23 14:35                               ` Gerd Hoffmann
2008-01-23 15:48                               ` [kvm-devel] " Robin Holt
2008-01-23 15:48                                 ` Robin Holt
2008-01-23 15:48                                 ` Robin Holt
2008-01-23 14:17                         ` [kvm-devel] " Avi Kivity
2008-01-23 14:17                           ` Avi Kivity
2008-01-23 14:17                           ` Avi Kivity
2008-01-24  4:03                           ` [kvm-devel] " Benjamin Herrenschmidt
2008-01-24  4:03                             ` Benjamin Herrenschmidt
2008-01-24  4:03                             ` Benjamin Herrenschmidt
2008-01-23 15:41                       ` [kvm-devel] " Andrea Arcangeli
2008-01-23 15:41                         ` Andrea Arcangeli
2008-01-23 17:47                         ` Gerd Hoffmann
2008-01-23 17:47                           ` Gerd Hoffmann
2008-01-23 17:47                           ` Gerd Hoffmann
2008-01-24  6:01                           ` [kvm-devel] " Avi Kivity
2008-01-24  6:01                             ` Avi Kivity
2008-01-24  6:01                             ` Avi Kivity
2008-01-24  6:45                           ` [kvm-devel] " Jeremy Fitzhardinge
2008-01-24  6:45                             ` Jeremy Fitzhardinge
2008-01-23 20:40                         ` Christoph Lameter
2008-01-23 20:40                           ` Christoph Lameter
2008-01-23 20:40                           ` Christoph Lameter
2008-01-24  2:00                   ` Enhance mmu notifiers to accomplish a lockless implementation (incomplete) Robin Holt
2008-01-24  2:00                     ` Robin Holt
2008-01-24  2:00                     ` Robin Holt
2008-01-24  4:05                     ` Robin Holt
2008-01-24  4:05                       ` Robin Holt
2008-01-24  4:05                       ` Robin Holt
2008-01-22 19:28             ` [PATCH] mmu notifiers #v3 Peter Zijlstra
2008-01-22 19:28               ` Peter Zijlstra
2008-01-22 20:31               ` Christoph Lameter
2008-01-22 20:31                 ` Christoph Lameter
2008-01-22 20:31                 ` Christoph Lameter
2008-01-22 20:31               ` Andrea Arcangeli
2008-01-22 20:31                 ` Andrea Arcangeli
2008-01-22 20:31                 ` Andrea Arcangeli
2008-01-22 22:10                 ` Hugh Dickins
2008-01-22 22:10                   ` Hugh Dickins
2008-01-22 22:10                   ` Hugh Dickins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=478DC7EC.1040101@inria.fr \
    --to=brice.goglin@inria.fr \
    --cc=andrea@qumranet.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.