public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* copy_one_pte()
@ 2007-03-13 19:15 Zoltan Menyhart
  2007-03-13 19:18 ` copy_one_pte() Christoph Hellwig
  0 siblings, 1 reply; 7+ messages in thread
From: Zoltan Menyhart @ 2007-03-13 19:15 UTC (permalink / raw)
  To: linux-kernel, linux-mm; +Cc: Zoltan Menyhart

I had a look at copy_one_pte().
I cannot see any ioproc_update_page() call, not even for the COW pages.
Is it intentional?

We can live with a COW page for a considerably long time.
How could the IO-PROC. know that a process-ID / user virt. addr. pair
refers to the same page?

The comment above ioproc_update_page() says that every time when a PTE
is created / modified...

Thanks,

Zoltan Menyhart


^ permalink raw reply	[flat|nested] 7+ messages in thread
* Re: copy_one_pte()
@ 2007-04-02 16:17 Daniel J Blueman
       [not found] ` <461209BE.6010905@bull.net>
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel J Blueman @ 2007-04-02 16:17 UTC (permalink / raw)
  To: Zoltan Menyhart; +Cc: Linux Kernel

On 13 Mar, 20:20, Zoltan Menyhart <Zoltan.Menyh...@free.fr> wrote:
> I had a look at copy_one_pte().
> I cannot see any ioproc_update_page() call, not even for the COW pages.
> Is it intentional?

There could be an ioproc_update_range() call in
memory.c:copy_pte_range(), after the pte_unmap_unlock(), and this
would be an optimisation, since explicitly updating the mappings in
the Quadrics RDMA NIC avoids the need for the NIC to trap and update
it's MMU later.

The code which implements [1] this takes the pagetable locks with
pte_offset_map_lock(), and uses one of the kmap_atomic slots, so has
to be after the pagetables are unlocked. The
ioproc_invalidate_page/range() calls are different and can't live with
this race, so have to be used with the pagetable locks held.

Daniel

--- [1]

http://lwn.net/Articles/133627/
http://www.quadrics.com/linux

> We can live with a COW page for a considerably long time.
> How could the IO-PROC. know that a process-ID / user virt. addr. pair
> refers to the same page?
>
> The comment above ioproc_update_page() says that every time when a PTE
> is created / modified...
>
> Thanks,
>
> ZoltanMenyhart
-- 
Daniel J Blueman

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-05-16 13:10 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-13 19:15 copy_one_pte() Zoltan Menyhart
2007-03-13 19:18 ` copy_one_pte() Christoph Hellwig
2007-03-14  8:35   ` copy_one_pte() Matt Keenan
2007-03-15 19:06     ` copy_one_pte() Andrew Morton
2007-03-15 19:51       ` copy_one_pte() Matt Keenan
  -- strict thread matches above, loose matches on Subject: below --
2007-04-02 16:17 copy_one_pte() Daniel J Blueman
     [not found] ` <461209BE.6010905@bull.net>
2007-05-16 13:09   ` copy_one_pte() Daniel J Blueman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox