mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@SteelEye.com>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: rmk+lkml@arm.linux.org.uk, dhylands@gmail.com,
	guinan@bluebutton.com, linux-kernel@vger.kernel.org
Subject: Re: get_user_pages() cache issues on ARM
Date: Sat, 07 Oct 2006 08:13:38 -0500	[thread overview]
Message-ID: <1160226818.3459.6.camel@mulgrave.il.steeleye.com> (raw)
In-Reply-To: <E1GTiTy-0002kU-00@dorka.pomaz.szeredi.hu>

On Sat, 2006-09-30 at 19:18 +0200, Miklos Szeredi wrote:
> Added James Bottomley to the CC.  He designed this interface, and he
> explained to me how it's supposed to work, but I since forgot.
> 
> James, do you have some memory of these issues?

I can try, but the problems were very parisc specific.

> > The questions I have are:
> > 
> > - where do these pages that get_user_pages() finds and calls flush_anon_page()
> >   on come from?

Anonymous pages are non-file backed pages.  Fuse has them because it
uses non file backed buffers to operate the user level filesystem
(basically any memory you malloc at user level can end up as an
anonymous page).

> > - why is the current ARM flush_dcache_page() (which is also called after
> >   flush_anon_page()) not sufficient?

I think you do the same as we do on parisc: traverse the
page_mapping(page) list and flush.  Unfortunately, anonymous pages don't
have entries in the page_mapping(page) list (because they're not file
backed), so our flush_dcache_page() wasn't flushing them, hence the need
for an additional API for fuse.

if you have an archive of linux-arch, the original discussion is under
the subject

Potential problem with the page_mapping macro and flush_dcache_page()

and begins on 19 March 2006

> > - if we implement flush_anon_page() does that mean that we end up flushing
> >   multiple times in some circumstances?  If so, how do we avoid this?

In theory no, because the way I coded the parisc version, it ignores
non-anon pages, which are flushed by flush_dcache_page(); but it would
depend on how you implement this.

James



      reply	other threads:[~2006-10-07 13:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-30 16:59 Miklos Szeredi
2006-09-30 17:05 ` Russell King
2006-09-30 17:18   ` Miklos Szeredi
2006-10-07 13:13     ` James Bottomley [this message]

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=1160226818.3459.6.camel@mulgrave.il.steeleye.com \
    --to=james.bottomley@steeleye.com \
    --cc=dhylands@gmail.com \
    --cc=guinan@bluebutton.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=rmk+lkml@arm.linux.org.uk \
    /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

all inboxes | Powered by JetHome®