linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: benh@kernel.crashing.org (Benjamin Herrenschmidt)
To: linux-arm-kernel@lists.infradead.org
Subject: USB mass storage and ARM cache coherency
Date: Fri, 05 Mar 2010 08:34:40 +1100	[thread overview]
Message-ID: <1267738480.22204.74.camel@pasglop> (raw)
In-Reply-To: <20100304154103.GA9384@linux-sh.org>

On Fri, 2010-03-05 at 00:41 +0900, Paul Mundt wrote:
> On Thu, Mar 04, 2010 at 03:29:38PM +0000, Catalin Marinas wrote:
> > On Thu, 2010-03-04 at 14:21 +0000, James Bottomley wrote:
> > > The thing which was discovered in this thread is basically that ARM is
> > > handling deferred flushing (for D/I coherency) in a slightly different
> > > way from everyone else ... 
> > 
> > Doing a grep for PG_dcache_dirty defined in terms of PG_arch_1 reveals
> > that MIPS, Parisc, Score, SH and SPARC do similar things to ARM. PowerPC
> > and IA-64 use PG_arch_1 as a clean rather than dirty bit.
> > 
> SH used to use it as a PG_mapped which was roughly similar to the
> PG_dcache_clean approach, at which point things like flushing for the PIO
> case in the HCD wasn't necessary. It did result in rather aggressive over
> flushing though, which is one of the reasons we elected to switch to
> PG_dcache_dirty.
> 
> Note that the PG_dcache_dirty semantics are also outlined in
> Documentation/cachetlb.txt for PG_arch_1 usage, so it's hardly esoteric.

Doing this way though is a lot more fragile... since page cache pages
are no longer dirty by default, you need to ensure that any driver
writing to one without DMA sets PG_arch_1, and as we've seen, this is
generally not the case (it's almost never the case actually).

Also, in the DMA case, you may not need to flush D$, but you -still-
need to invalidate I$, and unless you then get another bit for tracking
it, you end up doing a lot of over-invalidating of I$ no ?

Or am I missing a critical piece of the puzzle ?

Cheers,
Ben.

  parent reply	other threads:[~2010-03-04 21:34 UTC|newest]

Thread overview: 155+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20100129185434.GH19501@one-eyed-alien.net>
     [not found] ` <1265045354.25750.52.camel@pc1117.cambridge.arm.com>
2010-02-08  6:55   ` USB mass storage and ARM cache coherency Pavel Machek
2010-02-08  7:33     ` Andreas Mohr
2010-02-08 10:19       ` Catalin Marinas
2010-02-08  9:51     ` Catalin Marinas
2010-02-08 10:03       ` Andy Green
2010-02-17  9:50         ` Sascha Hauer
2010-02-17  9:57           ` Andy Green
2010-02-08 10:52       ` Pavel Machek
2010-02-08 11:28         ` Catalin Marinas
2010-02-16  7:57           ` Shilimkar, Santosh
2010-02-16  8:22             ` Oliver Neukum
2010-02-16  8:55               ` Shilimkar, Santosh
2010-02-16  9:07                 ` Oliver Neukum
2010-02-16  9:39                   ` Russell King - ARM Linux
2010-02-16 13:32                     ` Oliver Neukum
2010-02-16 13:40                       ` Shilimkar, Santosh
2010-02-16 13:46                         ` Oliver Neukum
2010-02-16 14:12                           ` Shilimkar, Santosh
2010-02-16 14:22                             ` Oliver Neukum
2010-02-16 14:45                               ` Shilimkar, Santosh
2010-02-16 15:44                                 ` Alan Stern
2010-02-17  8:55                               ` Shilimkar, Santosh
2010-02-17  9:10                                 ` Oliver Neukum
2010-02-17  9:17                                   ` Shilimkar, Santosh
2010-02-17 17:02                                 ` Alan Stern
2010-02-17 20:26                                   ` Russell King - ARM Linux
2010-02-17 20:30                                   ` Gadiyar, Anand
2010-02-18  6:56                                     ` Oliver Neukum
2010-02-18  7:14                                       ` Gadiyar, Anand
2010-02-17 12:29                     ` Jamie Lokier
2010-02-17  3:21                 ` Ming Lei
2010-02-17  9:05               ` Benjamin Herrenschmidt
2010-02-17  9:15                 ` Oliver Neukum
2010-02-17  9:40                   ` Benjamin Herrenschmidt
2010-02-17 10:09                     ` Oliver Neukum
2010-02-17 10:18                       ` Benjamin Herrenschmidt
2010-02-17 10:23                         ` Oliver Neukum
2010-02-17 12:15                           ` Benjamin Herrenschmidt
2010-02-17  9:55                 ` Russell King - ARM Linux
2010-02-17 10:05                   ` Benjamin Herrenschmidt
2010-02-17 15:27                 ` Catalin Marinas
2010-02-17 20:37                   ` Benjamin Herrenschmidt
2010-02-17 20:44                     ` Russell King - ARM Linux
2010-02-17 22:31                       ` Benjamin Herrenschmidt
2010-02-19 17:15                         ` Catalin Marinas
2010-02-19 17:36                           ` Catalin Marinas
2010-02-19 20:53                             ` Oliver Neukum
2010-02-24  2:48                               ` Benjamin Herrenschmidt
2010-02-24  7:16                                 ` Oliver Neukum
2010-02-24 21:12                                   ` Benjamin Herrenschmidt
2010-02-25  3:48                                     ` Oliver Neukum
2010-02-26  0:22                                       ` Benjamin Herrenschmidt
2010-02-25 12:36                                     ` James Bottomley
2010-02-24  2:47                             ` Benjamin Herrenschmidt
2010-02-24 16:19                               ` Alan Stern
2010-02-24 21:13                                 ` Benjamin Herrenschmidt
2010-02-24 21:50                                   ` Alan Stern
2010-02-25 20:52                                     ` Benjamin Herrenschmidt
2010-02-26 16:00                                   ` Catalin Marinas
2010-02-26 21:36                                     ` Benjamin Herrenschmidt
2010-02-26 16:25                               ` Catalin Marinas
2010-02-26 16:52                                 ` Alan Stern
2010-02-26 21:51                                   ` Benjamin Herrenschmidt
2010-02-26 21:00                                 ` Russell King - ARM Linux
2010-02-28  0:14                                   ` Benjamin Herrenschmidt
2010-02-28  5:01                                     ` James Bottomley
2010-03-01 10:39                                       ` Catalin Marinas
2010-03-01 11:06                                         ` Russell King - ARM Linux
2010-03-02 12:11                                       ` FUJITA Tomonori
2010-03-02 17:05                                         ` Catalin Marinas
2010-03-02 17:47                                           ` Catalin Marinas
2010-03-02 23:33                                             ` Benjamin Herrenschmidt
2010-03-03 10:21                                               ` Catalin Marinas
2010-03-02 23:29                                           ` Benjamin Herrenschmidt
2010-03-03  3:47                                             ` FUJITA Tomonori
2010-03-03  5:10                                               ` Benjamin Herrenschmidt
2010-03-03  5:40                                                 ` James Bottomley
2010-03-03  9:36                                                   ` Russell King - ARM Linux
2010-03-03 10:24                                                     ` James Bottomley
2010-03-03 19:41                                                       ` Russell King - ARM Linux
2010-03-04  2:00                                                   ` Benjamin Herrenschmidt
2010-03-04  8:26                                                     ` James Bottomley
2010-03-04 21:25                                                       ` Benjamin Herrenschmidt
2010-03-03  6:35                                                 ` FUJITA Tomonori
2010-03-03 10:43                                               ` Catalin Marinas
2010-03-03 10:40                                             ` Catalin Marinas
2010-03-03 21:54                                           ` Pavel Machek
2010-03-04  6:54                                             ` Wolfgang Mües
2010-03-04  9:31                                               ` Russell King - ARM Linux
2010-03-06 10:56                                                 ` Wolfgang Mües
2010-03-06 11:05                                                   ` Oliver Neukum
2010-03-06 19:44                                                   ` Russell King - ARM Linux
2010-03-04 13:47                                               ` Catalin Marinas
2010-03-04 13:35                                             ` Catalin Marinas
2010-03-04 13:51                                               ` Pavel Machek
2010-03-04 14:21                                                 ` James Bottomley
2010-03-04 14:27                                                   ` Russell King - ARM Linux
2010-03-04 15:25                                                     ` Catalin Marinas
2010-03-04 15:34                                                       ` Russell King - ARM Linux
2010-03-04 21:31                                                       ` Benjamin Herrenschmidt
2010-03-06 10:47                                                     ` James Bottomley
2010-03-06 19:36                                                       ` Russell King - ARM Linux
2010-03-06 21:07                                                         ` Benjamin Herrenschmidt
2010-03-07  5:54                                                         ` James Bottomley
2010-03-08 11:17                                                         ` Catalin Marinas
2010-03-06 21:03                                                       ` Benjamin Herrenschmidt
2010-03-07  3:37                                                         ` James Bottomley
2010-03-08  8:46                                                           ` FUJITA Tomonori
2010-03-09  2:25                                                           ` Benjamin Herrenschmidt
2010-03-04 15:29                                                   ` Catalin Marinas
2010-03-04 15:41                                                     ` Paul Mundt
2010-03-04 16:30                                                       ` Russell King - ARM Linux
2010-03-04 17:34                                                         ` Catalin Marinas
2010-03-04 17:54                                                           ` Russell King - ARM Linux
2010-03-04 18:07                                                       ` Catalin Marinas
2010-03-04 21:37                                                         ` Benjamin Herrenschmidt
2010-03-04 22:11                                                           ` Catalin Marinas
2010-03-05  4:34                                                             ` Benjamin Herrenschmidt
2010-03-05  9:27                                                               ` Catalin Marinas
2010-03-05  1:17                                                           ` Paul Mundt
2010-03-05  4:44                                                             ` Benjamin Herrenschmidt
2010-03-10  3:52                                                               ` Paul Mundt
2010-03-11 21:44                                                                 ` Benjamin Herrenschmidt
2010-03-04 21:34                                                       ` Benjamin Herrenschmidt [this message]
2010-03-04 21:28                                                   ` Benjamin Herrenschmidt
2010-03-04 21:40                                                     ` Russell King - ARM Linux
2010-03-05  4:31                                                       ` Benjamin Herrenschmidt
2010-03-04 15:35                                                 ` Catalin Marinas
2010-03-07  8:23                                                   ` Pavel Machek
2010-03-08 10:57                                                     ` Catalin Marinas
2010-03-02 23:26                                         ` Benjamin Herrenschmidt
2010-03-01 10:42                                     ` Catalin Marinas
2010-03-03 20:24                                       ` Jamie Lokier
2010-02-26 21:40                                 ` Benjamin Herrenschmidt
2010-02-26 21:49                                   ` Russell King - ARM Linux
2010-02-28  0:24                                     ` Benjamin Herrenschmidt
2010-02-28 19:17                                       ` Pavel Machek
2010-03-01 11:10                                       ` Catalin Marinas
2010-03-02  4:11                                         ` Benjamin Herrenschmidt
2010-02-24  2:39                           ` Benjamin Herrenschmidt
2010-02-26 16:44                             ` Catalin Marinas
2010-02-26 21:49                               ` Benjamin Herrenschmidt
2010-02-26 22:03                                 ` Russell King - ARM Linux
2010-02-28  0:29                                   ` Benjamin Herrenschmidt
2010-02-28 23:20                                   ` Catalin Marinas
2010-02-28 23:17                                 ` Catalin Marinas
2010-02-17 15:27                 ` Catalin Marinas
2010-02-17 15:39                 ` Catalin Marinas
2010-02-17 15:40                 ` Catalin Marinas
2010-02-17 15:40                 ` Catalin Marinas
2010-02-17 16:19                   ` Catalin Marinas
2010-02-17 16:19                   ` Catalin Marinas
2010-02-16  8:44             ` Russell King - ARM Linux
2010-02-16  8:51               ` Gadiyar, Anand
2010-02-20  7:21                 ` Pete Zaitcev

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=1267738480.22204.74.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=linux-arm-kernel@lists.infradead.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).