linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Ilya Loginov <isloginov@gmail.com>
Cc: Jens Axboe <jens.axboe@oracle.com>, linux-arch@vger.kernel.org
Subject: Re: problems in commit 2d4dc890b5c8 (block: add helpers to run flush_dcache_page() against a bio and a request's pages)
Date: Thu, 10 Dec 2009 16:00:18 -0600	[thread overview]
Message-ID: <1260482418.2457.208.camel@mulgrave.site> (raw)
In-Reply-To: <20091211002700.0600d327.isloginov@gmail.com>

On Fri, 2009-12-11 at 00:27 +0300, Ilya Loginov wrote:
> On Thu, 10 Dec 2009 14:59:36 -0600
> James Bottomley <James.Bottomley@HansenPartnership.com> wrote:
> 
> > To fix mips, you just need a
> > flush_kernel_dcache_page() in slram_read so that the alias is updated
> > after the memcpy. 
> 
> I think you right. But! If we choose this way:
> 
> First. We need to realize flush_kernel_dcache_page() for many
> architectures. Am I right?

Actually, I think only sparc and mips need it.  It's only needed for an
aliasing architecture.  Next, it's only used for pio drivers, so if the
platform never uses a pio driver, it can get away without having this
(that's the sparc case, I think).

> Second. What difference will be between flush_kernel_dcache_page and
> flush_dcache_page on MIPS? In common, flush_dcache_page in MIPS set 
> bit dirty on page.

You already replied to this.

> > I would also expect this driver not to work on any
> > highmem system without additional kmap/kunmap(_atomic) pairs in the read
> > and write routines.
> 
> > How many other mtd drivers are affected, I'm not sure ... any that do
> > PIO are wrong ... those that do MMIO should be right (that looks to be
> > just the omap driver).
> 
> Third. We should fix all other PIO drivers with problem and patch
> aoe: switch to the new bio_flush_dcache_pages() interface in -mm tree
> (i can't find this commit in the Linus tree). There is same problem.

Unfortunately, you can't do it at the bio level.  The reason is the
kmap/kunmap.  On a highmem system the mapping disappears after kunmap,
so you have to flush before you lose the mapping ... that means right in
the guts of the driver where it's doing the kmap/copy/kunmap.

Sounds like aio does have the issue, yes.  If you grep the kernel for
flush_kernel_dcache_pages(), you'll see that a lot of PIO drivers are
already using this, so there's not a lot of conversion to be done.

> May be I wrong. And we have much less work.

James

  parent reply	other threads:[~2009-12-10 22:00 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-09 22:39 problems in commit 2d4dc890b5c8 (block: add helpers to run flush_dcache_page() against a bio and a request's pages) James Bottomley
2009-12-09 22:45 ` Russell King
2009-12-09 22:56   ` James Bottomley
2009-12-09 23:03 ` Ilya Loginov
2009-12-09 23:11   ` James Bottomley
2009-12-09 23:36     ` Ilya Loginov
2009-12-09 23:47       ` James Bottomley
2009-12-10  0:06         ` Ilya Loginov
2009-12-10  0:19           ` James Bottomley
2009-12-10  4:40             ` Ilya Loginov
2009-12-10 17:07               ` James Bottomley
2009-12-10 17:48                 ` Russell King
2009-12-10 17:59                   ` James Bottomley
2009-12-10 18:06                     ` Russell King
2009-12-10 18:20                       ` James Bottomley
2009-12-10 19:05                         ` Russell King
2009-12-10 20:29                           ` James Bottomley
2009-12-10 20:39                             ` Russell King
2009-12-10 19:42                         ` Ilya Loginov
2009-12-10 19:43                           ` Russell King
2009-12-10 19:48                             ` Ilya Loginov
2009-12-10 19:46                 ` Ilya Loginov
2009-12-10 20:28                   ` James Bottomley
2009-12-10 20:41                     ` Ilya Loginov
2009-12-10 20:48                     ` Ilya Loginov
2009-12-10 20:59                       ` James Bottomley
2009-12-10 21:27                         ` Ilya Loginov
2009-12-10 21:43                           ` Ilya Loginov
2009-12-10 22:00                           ` James Bottomley [this message]
2009-12-10 22:03                             ` David Miller
2009-12-10 22:33                             ` Ilya Loginov

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=1260482418.2457.208.camel@mulgrave.site \
    --to=james.bottomley@hansenpartnership.com \
    --cc=isloginov@gmail.com \
    --cc=jens.axboe@oracle.com \
    --cc=linux-arch@vger.kernel.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 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).