linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Paul Mundt <lethal@linux-sh.org>
Cc: magnus.damm@gmail.com, arnd@arndb.de, linux-mm@kvack.org,
	jayakumar.lkml@gmail.com
Subject: Re: [PATCH][RFC] mm: uncached vma support with writenotify
Date: Mon, 22 Jun 2009 15:15:37 -0700	[thread overview]
Message-ID: <20090622151537.2f8009f7.akpm@linux-foundation.org> (raw)
In-Reply-To: <20090615033240.GC31902@linux-sh.org>

On Mon, 15 Jun 2009 12:32:40 +0900
Paul Mundt <lethal@linux-sh.org> wrote:

> On Sun, Jun 14, 2009 at 10:28:45PM +0900, Magnus Damm wrote:
> > --- 0001/mm/mmap.c
> > +++ work/mm/mmap.c	2009-06-11 21:43:16.000000000 +0900
> > @@ -1209,8 +1209,20 @@ munmap_back:
> >  	pgoff = vma->vm_pgoff;
> >  	vm_flags = vma->vm_flags;
> >  
> > -	if (vma_wants_writenotify(vma))
> > +	if (vma_wants_writenotify(vma)) {
> > +		pgprot_t pprot = vma->vm_page_prot;
> > +
> > +		/* Can vma->vm_page_prot have changed??
> > +		 *
> > +		 * Answer: Yes, drivers may have changed it in their
> > +		 *         f_op->mmap method.
> > +		 *
> > +		 * Ensures that vmas marked as uncached stay that way.
> > +		 */
> >  		vma->vm_page_prot = vm_get_page_prot(vm_flags & ~VM_SHARED);
> > +		if (pgprot_val(pprot) == pgprot_val(pgprot_noncached(pprot)))
> > +			vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
> > +	}
> >  
> >  	vma_link(mm, vma, prev, rb_link, rb_parent);
> >  	file = vma->vm_file;
> > 
> I guess the only real issue here is that we presently have no generic
> interface in the kernel for setting a VMA uncached. pgprot_noncached()
> is the closest approximation we have, but there are still architectures
> that do not implement it.
> 
> Given that this comes up at least once a month, perhaps it makes sense to
> see which platforms are still outstanding. At least cris, h8300,
> m68knommu, s390, and xtensa all presently lack a definition for it. The
> nommu cases are easily handled, but the rest still require some attention
> from their architecture maintainers before we can really start treating
> this as a generic interface.
> 
> Until then, you will have to do what every other user of
> pgprot_noncached() code does in generic code:
> 
> 	#ifdef pgprot_noncached
> 		vma->vm_page_prot = pgprot_noncached(...);
> 	#endif
> 
> OTOH, I guess we could just add something like:
> 
> 	#define pgprot_noncached(x)	(x) 
> 
> which works fine for the nommu case, and which functionally is no
> different from what happens right now anyways for the users that don't
> wire it up sanely.
> 
> Arnd, what do you think about throwing this at asm-generic?
> 

I think Arnd fell asleep ;)

> 
>  include/asm-generic/pgtable.h |    4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
> index e410f60..e2bd73e 100644
> --- a/include/asm-generic/pgtable.h
> +++ b/include/asm-generic/pgtable.h
> @@ -129,6 +129,10 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres
>  #define move_pte(pte, prot, old_addr, new_addr)	(pte)
>  #endif
>  
> +#ifndef pgprot_noncached
> +#define pgprot_noncached(prot)	(prot)
> +#endif
> +
>  #ifndef pgprot_writecombine
>  #define pgprot_writecombine pgprot_noncached
>  #endif

--
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>

  reply	other threads:[~2009-06-22 22:15 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-14 13:28 [PATCH][RFC] mm: uncached vma support with writenotify Magnus Damm
2009-06-15  3:32 ` Paul Mundt
2009-06-22 22:15   ` Andrew Morton [this message]
2009-06-23 12:40     ` Arnd Bergmann
2009-06-23 12:41     ` [PATCH] asm-generic: add dummy pgprot_noncached() Arnd Bergmann
2009-06-23 12:55       ` Paul Mundt
2009-06-23 13:00       ` xtensa: add pgprot_noncached Arnd Bergmann
2009-06-23 13:07       ` m32r: define pgprot_noncached Arnd Bergmann
2009-06-23 12:55     ` [PATCH] cris: add pgprot_noncached Arnd Bergmann
2009-06-23 19:20       ` Jesper Nilsson
2009-06-23 20:07         ` Arnd Bergmann
2009-06-23 20:23           ` Jesper Nilsson

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=20090622151537.2f8009f7.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=jayakumar.lkml@gmail.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-mm@kvack.org \
    --cc=magnus.damm@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).