All of lore.kernel.org
 help / color / mirror / Atom feed
* USB mass storage and ARM cache coherency
@ 2010-01-29 14:34 Catalin Marinas
  2010-01-29 16:10 ` Oliver Neukum
  2010-01-29 16:23 ` Ming Lei
  0 siblings, 2 replies; 352+ messages in thread
From: Catalin Marinas @ 2010-01-29 14:34 UTC (permalink / raw)
  To: Matthew Dharm; +Cc: linux-usb, linux-kernel

Hi Matthew,

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
capabilities (DMA or PIO), it looks like the best place to call
flush_dcache_page(). But I got lost in the SCSI emulation and all my
attempts failed to get a working rootfs.

Adding flush_dcache_page() higher up in mpage_end_io_read() solves the
problem but that's not the correct fix as it has wider implications and
it's not needed for DMA-capable devices.

Thanks.

-- 
Catalin


^ permalink raw reply	[flat|nested] 352+ messages in thread
* Re: USB mass storage and ARM cache coherency
@ 2010-02-03 23:56 George Spelvin
  2010-02-04  4:39 ` Paul Mundt
  0 siblings, 1 reply; 352+ messages in thread
From: George Spelvin @ 2010-02-03 23:56 UTC (permalink / raw)
  To: catalin.marinas; +Cc: linux, linux-kernel

> Apart from that, flush_dcache_page() doesn't have any data flow
> information. Optimisations could be done on ARM if we know that the
> kernel only intends to read from a page (no flushing necessary with a
> non-aliasing D-cache).

Already done in flush_dcache_page().  If possible (uniprocessor), it just
flags the page as PG_dcache_dirty, and defers the actual flush operation
until it's mapped somewhere else (either a virtual alias or executable).

See Documentation/cachetlb.txt.  (Really, all PIO drivers should
be calling flush_dcache_page.)

^ permalink raw reply	[flat|nested] 352+ messages in thread

end of thread, other threads:[~2010-03-11 21:49 UTC | newest]

Thread overview: 352+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-29 14:34 USB mass storage and ARM cache coherency Catalin Marinas
2010-01-29 16:10 ` Oliver Neukum
2010-01-29 16:23 ` Ming Lei
2010-01-29 16:34   ` Catalin Marinas
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  6:55             ` Pavel Machek
2010-02-08  7:33             ` Andreas Mohr
2010-02-08  7:33               ` Andreas Mohr
2010-02-08 10:19               ` Catalin Marinas
2010-02-08 10:19                 ` Catalin Marinas
2010-02-08  9:51             ` Catalin Marinas
2010-02-08  9:51               ` Catalin Marinas
2010-02-08 10:03               ` Andy Green
2010-02-08 10:03                 ` Andy Green
2010-02-17  9:50                 ` Sascha Hauer
2010-02-17  9:50                   ` Sascha Hauer
2010-02-17  9:57                   ` Andy Green
2010-02-17  9:57                     ` Andy Green
2010-02-08 10:52               ` Pavel Machek
2010-02-08 10:52                 ` Pavel Machek
2010-02-08 11:28                 ` Catalin Marinas
2010-02-08 11:28                   ` Catalin Marinas
2010-02-16  7:57                   ` Shilimkar, Santosh
2010-02-16  7:57                     ` Shilimkar, Santosh
2010-02-16  8:22                     ` Oliver Neukum
2010-02-16  8:22                       ` Oliver Neukum
2010-02-16  8:55                       ` Shilimkar, Santosh
2010-02-16  8:55                         ` Shilimkar, Santosh
2010-02-16  9:07                         ` Oliver Neukum
2010-02-16  9:07                           ` Oliver Neukum
2010-02-16  9:39                           ` Russell King - ARM Linux
2010-02-16  9:39                             ` Russell King - ARM Linux
2010-02-16 13:32                             ` Oliver Neukum
2010-02-16 13:32                               ` Oliver Neukum
2010-02-16 13:40                               ` Shilimkar, Santosh
2010-02-16 13:40                                 ` Shilimkar, Santosh
2010-02-16 13:46                                 ` Oliver Neukum
2010-02-16 13:46                                   ` Oliver Neukum
2010-02-16 14:12                                   ` Shilimkar, Santosh
2010-02-16 14:12                                     ` Shilimkar, Santosh
2010-02-16 14:22                                     ` Oliver Neukum
2010-02-16 14:22                                       ` Oliver Neukum
2010-02-16 14:45                                       ` Shilimkar, Santosh
2010-02-16 14:45                                         ` Shilimkar, Santosh
2010-02-16 15:44                                         ` Alan Stern
2010-02-16 15:44                                           ` Alan Stern
2010-02-17  8:55                                       ` Shilimkar, Santosh
2010-02-17  8:55                                         ` Shilimkar, Santosh
2010-02-17  9:10                                         ` Oliver Neukum
2010-02-17  9:10                                           ` Oliver Neukum
2010-02-17  9:17                                           ` Shilimkar, Santosh
2010-02-17  9:17                                             ` Shilimkar, Santosh
2010-02-17 17:02                                         ` Alan Stern
2010-02-17 17:02                                           ` Alan Stern
2010-02-17 20:26                                           ` Russell King - ARM Linux
2010-02-17 20:26                                             ` Russell King - ARM Linux
2010-02-17 20:30                                           ` Gadiyar, Anand
2010-02-17 20:30                                             ` Gadiyar, Anand
2010-02-18  6:56                                             ` Oliver Neukum
2010-02-18  6:56                                               ` Oliver Neukum
2010-02-18  7:14                                               ` Gadiyar, Anand
2010-02-18  7:14                                                 ` Gadiyar, Anand
2010-02-17 12:29                             ` Jamie Lokier
2010-02-17 12:29                               ` Jamie Lokier
2010-02-17  3:21                         ` Ming Lei
2010-02-17  3:21                           ` Ming Lei
2010-02-17  9:05                       ` Benjamin Herrenschmidt
2010-02-17  9:05                         ` Benjamin Herrenschmidt
2010-02-17  9:15                         ` Oliver Neukum
2010-02-17  9:15                           ` Oliver Neukum
2010-02-17  9:40                           ` Benjamin Herrenschmidt
2010-02-17  9:40                             ` Benjamin Herrenschmidt
2010-02-17 10:09                             ` Oliver Neukum
2010-02-17 10:09                               ` Oliver Neukum
2010-02-17 10:18                               ` Benjamin Herrenschmidt
2010-02-17 10:18                                 ` Benjamin Herrenschmidt
2010-02-17 10:23                                 ` Oliver Neukum
2010-02-17 10:23                                   ` Oliver Neukum
2010-02-17 12:15                                   ` Benjamin Herrenschmidt
2010-02-17 12:15                                     ` Benjamin Herrenschmidt
2010-02-17  9:55                         ` Russell King - ARM Linux
2010-02-17  9:55                           ` Russell King - ARM Linux
2010-02-17 10:05                           ` Benjamin Herrenschmidt
2010-02-17 10:05                             ` Benjamin Herrenschmidt
2010-02-17 15:27                         ` Catalin Marinas
2010-02-17 15:27                           ` Catalin Marinas
2010-02-17 20:37                           ` Benjamin Herrenschmidt
2010-02-17 20:37                             ` Benjamin Herrenschmidt
2010-02-17 20:44                             ` Russell King - ARM Linux
2010-02-17 20:44                               ` Russell King - ARM Linux
2010-02-17 22:31                               ` Benjamin Herrenschmidt
2010-02-17 22:31                                 ` Benjamin Herrenschmidt
2010-02-19 17:15                                 ` Catalin Marinas
2010-02-19 17:15                                   ` Catalin Marinas
2010-02-19 17:36                                   ` Catalin Marinas
2010-02-19 17:36                                     ` Catalin Marinas
2010-02-19 20:53                                     ` Oliver Neukum
2010-02-19 20:53                                       ` Oliver Neukum
2010-02-24  2:48                                       ` Benjamin Herrenschmidt
2010-02-24  2:48                                         ` Benjamin Herrenschmidt
2010-02-24  7:16                                         ` Oliver Neukum
2010-02-24  7:16                                           ` Oliver Neukum
2010-02-24 21:12                                           ` Benjamin Herrenschmidt
2010-02-24 21:12                                             ` Benjamin Herrenschmidt
2010-02-25  3:48                                             ` Oliver Neukum
2010-02-25  3:48                                               ` Oliver Neukum
2010-02-26  0:22                                               ` Benjamin Herrenschmidt
2010-02-26  0:22                                                 ` Benjamin Herrenschmidt
2010-02-25 12:36                                             ` James Bottomley
2010-02-25 12:36                                               ` James Bottomley
2010-02-24  2:47                                     ` Benjamin Herrenschmidt
2010-02-24  2:47                                       ` Benjamin Herrenschmidt
2010-02-24 16:19                                       ` Alan Stern
2010-02-24 16:19                                         ` Alan Stern
2010-02-24 21:13                                         ` Benjamin Herrenschmidt
2010-02-24 21:13                                           ` Benjamin Herrenschmidt
2010-02-24 21:50                                           ` Alan Stern
2010-02-24 21:50                                             ` Alan Stern
2010-02-25 20:52                                             ` Benjamin Herrenschmidt
2010-02-25 20:52                                               ` Benjamin Herrenschmidt
2010-02-26 16:00                                           ` Catalin Marinas
2010-02-26 16:00                                             ` Catalin Marinas
2010-02-26 21:36                                             ` Benjamin Herrenschmidt
2010-02-26 21:36                                               ` Benjamin Herrenschmidt
2010-02-26 16:25                                       ` Catalin Marinas
2010-02-26 16:25                                         ` Catalin Marinas
2010-02-26 16:52                                         ` Alan Stern
2010-02-26 16:52                                           ` Alan Stern
2010-02-26 21:51                                           ` Benjamin Herrenschmidt
2010-02-26 21:51                                             ` Benjamin Herrenschmidt
2010-02-26 21:00                                         ` Russell King - ARM Linux
2010-02-26 21:00                                           ` Russell King - ARM Linux
2010-02-28  0:14                                           ` Benjamin Herrenschmidt
2010-02-28  0:14                                             ` Benjamin Herrenschmidt
2010-02-28  5:01                                             ` James Bottomley
2010-02-28  5:01                                               ` James Bottomley
2010-03-01 10:39                                               ` Catalin Marinas
2010-03-01 10:39                                                 ` Catalin Marinas
2010-03-01 11:06                                                 ` Russell King - ARM Linux
2010-03-01 11:06                                                   ` Russell King - ARM Linux
2010-03-02 12:11                                               ` FUJITA Tomonori
2010-03-02 12:11                                                 ` FUJITA Tomonori
2010-03-02 17:05                                                 ` Catalin Marinas
2010-03-02 17:05                                                   ` Catalin Marinas
2010-03-02 17:47                                                   ` Catalin Marinas
2010-03-02 17:47                                                     ` Catalin Marinas
2010-03-02 23:33                                                     ` Benjamin Herrenschmidt
2010-03-02 23:33                                                       ` Benjamin Herrenschmidt
2010-03-03 10:21                                                       ` Catalin Marinas
2010-03-03 10:21                                                         ` Catalin Marinas
2010-03-02 23:29                                                   ` Benjamin Herrenschmidt
2010-03-02 23:29                                                     ` Benjamin Herrenschmidt
2010-03-03  3:47                                                     ` FUJITA Tomonori
2010-03-03  3:47                                                       ` FUJITA Tomonori
2010-03-03  5:10                                                       ` Benjamin Herrenschmidt
2010-03-03  5:10                                                         ` Benjamin Herrenschmidt
2010-03-03  5:40                                                         ` James Bottomley
2010-03-03  5:40                                                           ` James Bottomley
2010-03-03  9:36                                                           ` Russell King - ARM Linux
2010-03-03  9:36                                                             ` Russell King - ARM Linux
2010-03-03 10:24                                                             ` James Bottomley
2010-03-03 10:24                                                               ` James Bottomley
2010-03-03 19:41                                                               ` Russell King - ARM Linux
2010-03-03 19:41                                                                 ` Russell King - ARM Linux
2010-03-04  2:00                                                           ` Benjamin Herrenschmidt
2010-03-04  2:00                                                             ` Benjamin Herrenschmidt
2010-03-04  8:26                                                             ` James Bottomley
2010-03-04  8:26                                                               ` James Bottomley
2010-03-04 21:25                                                               ` Benjamin Herrenschmidt
2010-03-04 21:25                                                                 ` Benjamin Herrenschmidt
2010-03-03  6:35                                                         ` FUJITA Tomonori
2010-03-03  6:35                                                           ` FUJITA Tomonori
2010-03-03 10:43                                                       ` Catalin Marinas
2010-03-03 10:43                                                         ` Catalin Marinas
2010-03-03 10:40                                                     ` Catalin Marinas
2010-03-03 10:40                                                       ` Catalin Marinas
2010-03-03 21:54                                                   ` Pavel Machek
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:35                                                       ` Catalin Marinas
2010-03-04 13:51                                                       ` Pavel Machek
2010-03-04 13:51                                                         ` Pavel Machek
2010-03-04 14:21                                                         ` James Bottomley
2010-03-04 14:21                                                           ` James Bottomley
2010-03-04 14:27                                                           ` Russell King - ARM Linux
2010-03-04 14:27                                                             ` Russell King - ARM Linux
2010-03-04 15:25                                                             ` Catalin Marinas
2010-03-04 15:25                                                               ` Catalin Marinas
2010-03-04 15:34                                                               ` Russell King - ARM Linux
2010-03-04 15:34                                                                 ` Russell King - ARM Linux
2010-03-04 21:31                                                               ` Benjamin Herrenschmidt
2010-03-04 21:31                                                                 ` Benjamin Herrenschmidt
2010-03-06 10:47                                                             ` James Bottomley
2010-03-06 10:47                                                               ` James Bottomley
2010-03-06 19:36                                                               ` Russell King - ARM Linux
2010-03-06 19:36                                                                 ` Russell King - ARM Linux
2010-03-06 21:07                                                                 ` Benjamin Herrenschmidt
2010-03-06 21:07                                                                   ` Benjamin Herrenschmidt
2010-03-07  5:54                                                                 ` James Bottomley
2010-03-07  5:54                                                                   ` James Bottomley
2010-03-08 11:17                                                                 ` Catalin Marinas
2010-03-08 11:17                                                                   ` Catalin Marinas
2010-03-06 21:03                                                               ` Benjamin Herrenschmidt
2010-03-06 21:03                                                                 ` Benjamin Herrenschmidt
2010-03-07  3:37                                                                 ` James Bottomley
2010-03-07  3:37                                                                   ` James Bottomley
2010-03-08  8:46                                                                   ` FUJITA Tomonori
2010-03-08  8:46                                                                     ` FUJITA Tomonori
2010-03-09  2:25                                                                   ` Benjamin Herrenschmidt
2010-03-09  2:25                                                                     ` Benjamin Herrenschmidt
2010-03-04 15:29                                                           ` Catalin Marinas
2010-03-04 15:29                                                             ` Catalin Marinas
2010-03-04 15:41                                                             ` Paul Mundt
2010-03-04 15:41                                                               ` Paul Mundt
2010-03-04 16:30                                                               ` Russell King - ARM Linux
2010-03-04 16:30                                                                 ` Russell King - ARM Linux
2010-03-04 17:34                                                                 ` Catalin Marinas
2010-03-04 17:34                                                                   ` Catalin Marinas
2010-03-04 17:54                                                                   ` Russell King - ARM Linux
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 18:07                                                                 ` Catalin Marinas
2010-03-04 21:37                                                                 ` Benjamin Herrenschmidt
2010-03-04 21:37                                                                   ` Benjamin Herrenschmidt
2010-03-04 22:11                                                                   ` Catalin Marinas
2010-03-04 22:11                                                                     ` Catalin Marinas
2010-03-05  4:34                                                                     ` Benjamin Herrenschmidt
2010-03-05  4:34                                                                       ` Benjamin Herrenschmidt
2010-03-05  9:27                                                                       ` Catalin Marinas
2010-03-05  9:27                                                                         ` Catalin Marinas
2010-03-05  1:17                                                                   ` Paul Mundt
2010-03-05  1:17                                                                     ` Paul Mundt
2010-03-05  1:17                                                                     ` Paul Mundt
2010-03-05  4:44                                                                     ` Benjamin Herrenschmidt
2010-03-05  4:44                                                                       ` Benjamin Herrenschmidt
2010-03-05  4:44                                                                       ` Benjamin Herrenschmidt
2010-03-10  3:52                                                                       ` Paul Mundt
2010-03-10  3:52                                                                         ` Paul Mundt
2010-03-10  3:52                                                                         ` Paul Mundt
2010-03-11 21:44                                                                         ` Benjamin Herrenschmidt
2010-03-11 21:44                                                                           ` Benjamin Herrenschmidt
2010-03-11 21:44                                                                           ` Benjamin Herrenschmidt
2010-03-04 21:34                                                               ` Benjamin Herrenschmidt
2010-03-04 21:34                                                                 ` Benjamin Herrenschmidt
2010-03-04 21:28                                                           ` Benjamin Herrenschmidt
2010-03-04 21:28                                                             ` Benjamin Herrenschmidt
2010-03-04 21:40                                                             ` Russell King - ARM Linux
2010-03-04 21:40                                                               ` Russell King - ARM Linux
2010-03-05  4:31                                                               ` Benjamin Herrenschmidt
2010-03-05  4:31                                                                 ` Benjamin Herrenschmidt
2010-03-04 15:35                                                         ` Catalin Marinas
2010-03-04 15:35                                                           ` Catalin Marinas
2010-03-07  8:23                                                           ` Pavel Machek
2010-03-07  8:23                                                             ` Pavel Machek
2010-03-08 10:57                                                             ` Catalin Marinas
2010-03-08 10:57                                                               ` Catalin Marinas
2010-03-02 23:26                                                 ` Benjamin Herrenschmidt
2010-03-02 23:26                                                   ` Benjamin Herrenschmidt
2010-03-01 10:42                                             ` Catalin Marinas
2010-03-01 10:42                                               ` Catalin Marinas
2010-03-03 20:24                                               ` Jamie Lokier
2010-03-03 20:24                                                 ` Jamie Lokier
2010-02-26 21:40                                         ` Benjamin Herrenschmidt
2010-02-26 21:40                                           ` Benjamin Herrenschmidt
2010-02-26 21:49                                           ` Russell King - ARM Linux
2010-02-26 21:49                                             ` Russell King - ARM Linux
2010-02-28  0:24                                             ` Benjamin Herrenschmidt
2010-02-28  0:24                                               ` Benjamin Herrenschmidt
2010-02-28 19:17                                               ` Pavel Machek
2010-02-28 19:17                                                 ` Pavel Machek
2010-03-01 11:10                                               ` Catalin Marinas
2010-03-01 11:10                                                 ` Catalin Marinas
2010-03-02  4:11                                                 ` Benjamin Herrenschmidt
2010-03-02  4:11                                                   ` Benjamin Herrenschmidt
2010-02-24  2:39                                   ` Benjamin Herrenschmidt
2010-02-24  2:39                                     ` Benjamin Herrenschmidt
2010-02-26 16:44                                     ` Catalin Marinas
2010-02-26 16:44                                       ` Catalin Marinas
2010-02-26 21:49                                       ` Benjamin Herrenschmidt
2010-02-26 21:49                                         ` Benjamin Herrenschmidt
2010-02-26 22:03                                         ` Russell King - ARM Linux
2010-02-26 22:03                                           ` Russell King - ARM Linux
2010-02-28  0:29                                           ` Benjamin Herrenschmidt
2010-02-28  0:29                                             ` Benjamin Herrenschmidt
2010-02-28 23:20                                           ` Catalin Marinas
2010-02-28 23:20                                             ` Catalin Marinas
2010-02-28 23:17                                         ` Catalin Marinas
2010-02-28 23:17                                           ` Catalin Marinas
2010-02-17 15:27                         ` Catalin Marinas
2010-02-17 15:27                           ` Catalin Marinas
2010-02-17 15:39                         ` 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 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-17 16:19                           ` Re: " Catalin Marinas
2010-02-17 16:19                             ` Catalin Marinas
2010-02-16  8:44                     ` Russell King - ARM Linux
2010-02-16  8:44                       ` Russell King - ARM Linux
2010-02-16  8:51                       ` Gadiyar, Anand
2010-02-16  8:51                         ` Gadiyar, Anand
2010-02-20  7:21                         ` Pete Zaitcev
2010-02-20  7:21                           ` Pete Zaitcev
2010-02-03 23:56 George Spelvin
2010-02-04  4:39 ` Paul Mundt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.