Re: [PATCH] ARM: allow, but warn, when issuing ioremap() on RAM

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Catalin Marinas
Date: Monday, October 11, 2010 - 4:23 am

On Mon, 2010-10-11 at 11:39 +0100, Felipe Contreras wrote:

Probably, it depends on how drivers use the memory returned by ioremap
and the assumptions they make about the memory type (strict ordering,
write buffers, speculation). I think such memory should be used via the
I/O accessors and not directly, so you get the benefit of explicit
memory barriers. If not, you have to cope with the loss of attributes
because of the WC mapping.

But as it has been said (and it's my opinion as well), the drivers are
broken and are misusing the ioremap API.


That's in the ARM ARM (Architecture Reference Manual), not a TRM.

You never know what "unpredictable" means and this is specific to the
processor implementation, not the ARM ARM. You should not mix different
memory types for the same page.

Back in 2006 there was a discussion for a set of palliative measures in
hardware (initially until the OSes are fixed) and these allow the same
memory type but with different cacheability attributes (e.g. Normal
Non-cacheable vs Normal Cacheable) given that care is taken in software
wrt stale cache lines and speculation (but at least you don't get random
corruption somewhere else). They would need to have the same
shareability attributes though.

With the hack above, MT_DEVICE_WC is actually Normal Non-cacheable
memory. It needs cache flushing but it's not worse than the original
ioremap allowing this. The driver may not work as expected though.

-- 
Catalin

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] ARM: allow, but warn, when issuing ioremap() on RAM, Felipe Contreras, (Thu Oct 7, 2:44 am)
Re: [PATCH v2] ARM: allow, but warn, when issuing ioremap( ..., Uwe Kleine-König, (Thu Oct 7, 11:00 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Thu Oct 7, 12:22 pm)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Fri Oct 8, 10:53 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Fri Oct 8, 4:04 pm)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Fri Oct 8, 4:44 pm)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Fri Oct 8, 5:10 pm)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Fri Oct 8, 5:25 pm)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Sat Oct 9, 1:56 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Sat Oct 9, 2:21 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Sat Oct 9, 5:05 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Sat Oct 9, 6:52 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Sat Oct 9, 7:37 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Sat Oct 9, 9:45 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Guennadi Liakhovetski, (Sat Oct 9, 11:59 am)
RE: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Pedanekar, Hemant, (Sun Oct 10, 7:23 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Uwe Kleine-König, (Mon Oct 11, 1:35 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Mon Oct 11, 2:02 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Uwe Kleine-König, (Mon Oct 11, 2:24 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Mon Oct 11, 3:15 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Mon Oct 11, 3:52 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Catalin Marinas, (Mon Oct 11, 4:23 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Mon Oct 11, 8:25 am)
RE: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Woodruff, Richard, (Wed Oct 13, 9:17 am)
RE: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Woodruff, Richard, (Thu Oct 14, 8:29 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Felipe Contreras, (Thu Oct 14, 10:44 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Benjamin Herrenschmidt, (Fri Oct 15, 7:36 pm)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Benjamin Herrenschmidt, (Fri Oct 15, 7:39 pm)
RE: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Woodruff, Richard, (Sun Oct 17, 6:05 am)
RE: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Benjamin Herrenschmidt, (Sun Oct 17, 4:17 pm)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Tue Oct 19, 11:12 am)
Re: [PATCH] ARM: allow, but warn, when issuing ioremap() o ..., Russell King - ARM Linux, (Tue Oct 19, 12:21 pm)
Re: About multi-line printk and the need (not) to repeat l ..., Uwe Kleine-König, (Tue Nov 23, 3:39 am)
Re: About multi-line printk and the need (not) to repeat l ..., Uwe Kleine-König, (Tue Nov 23, 3:58 am)
Re: About multi-line printk and the need (not) to repeat l ..., Russell King - ARM Linux, (Tue Nov 23, 3:33 pm)
Re: About multi-line printk and the need (not) to repeat l ..., Uwe Kleine-König, (Wed Nov 24, 1:17 am)
[PATCH 0/6] add some KERN_CONT markers to continuation lines, Uwe Kleine-König, (Wed Nov 24, 1:56 am)
[PATCH 1/6] ARM: add some KERN_CONT markers to continuatio ..., =?UTF-8?q?Uwe=20Klei ..., (Wed Nov 24, 1:57 am)
[PATCH 2/6] block: add some KERN_CONT markers to continuat ..., =?UTF-8?q?Uwe=20Klei ..., (Wed Nov 24, 1:57 am)
[PATCH 3/6] net: add some KERN_CONT markers to continuatio ..., =?UTF-8?q?Uwe=20Klei ..., (Wed Nov 24, 1:57 am)
[PATCH 4/6] init: add some KERN_CONT markers to continuati ..., =?UTF-8?q?Uwe=20Klei ..., (Wed Nov 24, 1:57 am)
[PATCH 5/6] mm: add some KERN_CONT markers to continuation ..., =?UTF-8?q?Uwe=20Klei ..., (Wed Nov 24, 1:57 am)
[PATCH 6/6] tty/vt: add some KERN_CONT markers to continua ..., =?UTF-8?q?Uwe=20Klei ..., (Wed Nov 24, 1:57 am)
Re: About multi-line printk and the need (not) to repeat l ..., Michał Mirosław, (Wed Nov 24, 2:09 am)