mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Ming Lei <tom.leiming@gmail.com>
Cc: Matthew Dharm <mdharm-usb@one-eyed-alien.net>,
	linux-usb@vger.kernel.org,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: USB mass storage and ARM cache coherency
Date: Fri, 29 Jan 2010 16:34:03 +0000	[thread overview]
Message-ID: <1264782843.4242.91.camel@pc1117.cambridge.arm.com> (raw)
In-Reply-To: <d82e647a1001290823s1c651e4am113f843bef4ff9e2@mail.gmail.com>

On Fri, 2010-01-29 at 16:23 +0000, Ming Lei wrote:
> 2010/1/29 Catalin Marinas <catalin.marinas@arm.com>:
> > I've been trying for some time to use a rootfs (ext2) on a USB memory
> > stick on ARM platforms but without any success. The USB HCD driver is
> > ISP1760 which doesn't use DMA.
> >
> > ARM has a Harvard cache architecture and what I get is incoherency
> > between the I and D caches. The CPU I'm using (ARM11MPCore) has PIPT
> > caches with D-cache lines allocation on write.
> >
> > Basically, when user space tries to execute from a new page, it faults
> > and the data is requested via the VFS layer, SCSI block device and USB
> > mass storage from the ISP1760 driver. The page is then mapped into user
> > space and update_mmu_cache() called.
> >
> > However, since the driver is PIO, the data copied from the USB device
> > into RAM gets stuck in the D-cache. On the above page requesting path
> > there is no call to flush_dcache_page() to handle D-cache maintenance
> > (for DMA drivers, that's handled by the DMA API).
> >
> > Since the USB mass storage code has the information about the USB driver
> 
> Sorry,  I am a little confused that usb mass storage has what information
> about DMA or PIO of low level usb transfer?

I was thinking about checking dev->bus->controller->dma_mask which the
code (though not the storage one) seems to imply that if the dma_mask is
0, the HCD driver is only capable of PIO.

That would be a more general solution rather than going through each HCD
driver since my understanding is that flush_dcache_page() is only needed
together with the mass storage support.

-- 
Catalin


  reply	other threads:[~2010-01-29 16:34 UTC|newest]

Thread overview: 193+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-29 14:34 Catalin Marinas
2010-01-29 16:10 ` Oliver Neukum
2010-01-29 16:23 ` Ming Lei
2010-01-29 16:34   ` Catalin Marinas [this message]
2010-01-29 16:41     ` Oliver Neukum
2010-01-29 17:14       ` Catalin Marinas
2010-01-29 17:51     ` Sergei Shtylyov
2010-01-29 18:54       ` Matthew Dharm
2010-01-29 19:35         ` Greg KH
2010-02-01 13:49         ` Catalin Marinas
2010-02-01 17:29         ` Catalin Marinas
2010-02-01 20:14           ` Alan Stern
2010-02-02  4:24             ` Paul Mundt
2010-02-02  9:58               ` Catalin Marinas
2010-02-01 22:30           ` Andreas Mohr
2010-02-02  6:58             ` Oliver Neukum
2010-02-02  9:31               ` Florian Fainelli
2010-02-02  6:39           ` Paul Mundt
2010-02-02 11:05             ` Catalin Marinas
2010-02-02 11:15               ` Paul Mundt
2010-02-02  9:11           ` Sebastian Andrzej Siewior
2010-02-02 11:09             ` Catalin Marinas
2010-02-02 11:48           ` Oliver Neukum
2010-02-02 12:01             ` Catalin Marinas
2010-02-02 12:07               ` Oliver Neukum
2010-02-02 12:11                 ` Andreas Mohr
2010-02-02 14:42                   ` Clemens Ladisch
2010-02-02 14:52                     ` Oliver Neukum
2010-02-02 15:10                       ` Andreas Mohr
2010-02-02 15:34                         ` Catalin Marinas
2010-02-02 20:38                     ` Andreas Mohr
2010-02-02 12:39                 ` Catalin Marinas
2010-02-02 13:08                   ` Oliver Neukum
2010-02-02 14:34                     ` Catalin Marinas
2010-02-02 17:11                     ` Alan Stern
2010-02-02 17:20                       ` Catalin Marinas
2010-02-02 21:52                         ` Andreas Mohr
2010-02-03 15:15                           ` Alan Stern
2010-02-08  6:55                       ` Pavel Machek
2010-02-02 13:36                   ` Ming Lei
2010-02-02 14:35                     ` Catalin Marinas
2010-02-08  6:55           ` 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 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 22:27                                                                 ` Andreas Mohr
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
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
2010-02-03 23:56 George Spelvin
2010-02-04  4:39 ` Paul Mundt

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=1264782843.4242.91.camel@pc1117.cambridge.arm.com \
    --to=catalin.marinas@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mdharm-usb@one-eyed-alien.net \
    --cc=tom.leiming@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

Powered by JetHome