Re: MMIO and gcc re-ordering issue

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linus Torvalds
Date: Tuesday, May 27, 2008 - 2:30 pm

On Wed, 28 May 2008, Benjamin Herrenschmidt wrote:

Well..

There's really two different issues:

 (a) x86 and the fact that we have thousands of drivers

which in turn conflicts with

 (b) non-x86 and the fact that other architectures tend to be absolute 
     pieces of cr*p when it comes to ordering, _especially_ across IO.

and the thing about (b) is that the number of drivers involved is a hell 
of a lot smaller. For example, ia64 and the big SGI machines probably 
really only care about roughly five drivers (number taken out of my nether 
regions). 

So practically speaking, I suspect that the right approach is to just say 
"ok, x86 will continue to be pretty darn ordered, and the barriers won't 
really matter (*)" but at the same time also saying "we wish reality was 
different, and well-maintained drivers should probably try to work in the 
presense of re-ordering".

In *practice*, that probably means that most architectures will be better 
off if they emulate x86 closely, just because that means that they won't 
rely on drivers always getting things right, but I think we can leave the 
door open for the odd machines. We should just realize that they will 
never get a lot of testing, but on the other hand, their usage scenarios 
will generally also be very limited (very specific loads, and _very_ 
specific hardware).

And the patch I sent out actually made "__[raw_]readl()" different from 
"readl()" on x86 too, in that the assembly _allows_ a bit more 
re-ordering, even though I doubt it will be visible in practice. So if you 
use the "__" versions, you'd better have barriers even on x86!

			Linus

(*) With the possible but unlikely exception of some big machines with 
separate IO networks, but if they happen they will fall into the 'ia64' 
case of just having a few relevant drivers.
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Trent Piepho, (Tue May 20, 1:40 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Benjamin Herrenschmidt, (Tue May 20, 2:16 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Trent Piepho, (Tue May 20, 3:00 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Andreas Schwab, (Tue May 20, 3:00 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Benjamin Herrenschmidt, (Tue May 20, 3:02 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Trent Piepho, (Tue May 20, 3:11 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Trent Piepho, (Tue May 20, 3:21 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, David Miller, (Tue May 20, 3:39 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Andreas Schwab, (Tue May 20, 3:47 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, David Miller, (Tue May 20, 3:53 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Trent Piepho, (Tue May 20, 3:55 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Trent Piepho, (Tue May 20, 4:14 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Andreas Schwab, (Wed May 21, 1:03 am)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Benjamin Herrenschmidt, (Wed May 21, 7:00 am)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Benjamin Herrenschmidt, (Wed May 21, 7:01 am)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Trent Piepho, (Wed May 21, 12:44 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Trent Piepho, (Wed May 21, 1:25 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Benjamin Herrenschmidt, (Wed May 21, 1:41 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Trent Piepho, (Thu May 22, 3:56 pm)
Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code, Benjamin Herrenschmidt, (Thu May 22, 9:24 pm)
MMIO and gcc re-ordering (Was: [PATCH] [POWERPC] Improve ( ..., Benjamin Herrenschmidt, (Fri May 23, 5:36 am)
Re: MMIO and gcc re-ordering (Was: [PATCH] [POWERPC] Impro ..., Benjamin Herrenschmidt, (Fri May 23, 5:50 am)
Re: MMIO and gcc re-ordering (Was: [PATCH] [POWERPC] Impro ..., Benjamin Herrenschmidt, (Fri May 23, 3:47 pm)
MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Mon May 26, 6:33 pm)
Re: MMIO and gcc re-ordering issue, David Miller, (Mon May 26, 6:40 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Mon May 26, 7:15 pm)
Re: MMIO and gcc re-ordering issue, David Miller, (Mon May 26, 7:28 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Mon May 26, 8:39 pm)
Re: MMIO and gcc re-ordering issue, Arjan van de Ven, (Mon May 26, 8:42 pm)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Mon May 26, 9:08 pm)
Re: MMIO and gcc re-ordering issue, Arjan van de Ven, (Mon May 26, 9:20 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue May 27, 12:08 am)
Re: MMIO and gcc re-ordering issue, Alan Cox, (Tue May 27, 1:24 am)
Re: MMIO and gcc re-ordering issue, Jonathan Corbet, (Tue May 27, 8:28 am)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue May 27, 8:35 am)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Tue May 27, 8:50 am)
Re: MMIO and gcc re-ordering issue, James Bottomley, (Tue May 27, 9:37 am)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue May 27, 9:47 am)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue May 27, 10:31 am)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Tue May 27, 10:38 am)
Re: MMIO and gcc re-ordering issue, James Bottomley, (Tue May 27, 10:53 am)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Tue May 27, 11:07 am)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Tue May 27, 11:17 am)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Tue May 27, 11:23 am)
Re: MMIO and gcc re-ordering issue, Scott Wood, (Tue May 27, 11:33 am)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue May 27, 2:10 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue May 27, 2:11 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue May 27, 2:12 pm)
Re: MMIO and gcc re-ordering issue, Chris Friesen, (Tue May 27, 2:23 pm)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Tue May 27, 2:29 pm)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue May 27, 2:30 pm)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Tue May 27, 2:33 pm)
Re: MMIO and gcc re-ordering issue, Alan Cox, (Tue May 27, 2:38 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue May 27, 2:38 pm)
Re: MMIO and gcc re-ordering issue, Matthew Wilcox, (Tue May 27, 2:42 pm)
Re: MMIO and gcc re-ordering issue, Alan Cox, (Tue May 27, 2:46 pm)
Re: MMIO and gcc re-ordering issue, Matthew Wilcox, (Tue May 27, 2:53 pm)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue May 27, 2:55 pm)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue May 27, 2:59 pm)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue May 27, 3:02 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue May 27, 3:13 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue May 27, 3:17 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue May 27, 3:19 pm)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Tue May 27, 3:39 pm)
Re: MMIO and gcc re-ordering issue, Paul Mackerras, (Tue May 27, 4:04 pm)
Re: MMIO and gcc re-ordering issue, Haavard Skinnemoen, (Wed May 28, 1:36 am)
Re: MMIO and gcc re-ordering issue, Arnd Bergmann, (Thu May 29, 12:10 am)
Re: MMIO and gcc re-ordering issue, Alan Cox, (Thu May 29, 3:46 am)
Re: MMIO and gcc re-ordering issue, Pantelis Antoniou, (Thu May 29, 4:05 am)
Re: MMIO and gcc re-ordering issue, Jes Sorensen, (Thu May 29, 7:47 am)
Re: MMIO and gcc re-ordering issue, James Bottomley, (Thu May 29, 8:01 am)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Thu May 29, 2:40 pm)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Thu May 29, 2:48 pm)
Re: MMIO and gcc re-ordering issue, Jesse Barnes, (Thu May 29, 2:53 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Thu May 29, 3:05 pm)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Thu May 29, 3:06 pm)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Thu May 29, 3:25 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Thu May 29, 6:13 pm)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Thu May 29, 6:53 pm)
Re: MMIO and gcc re-ordering issue, Paul Mackerras, (Thu May 29, 8:56 pm)
Re: MMIO and gcc re-ordering issue, Haavard Skinnemoen, (Thu May 29, 11:07 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Fri May 30, 12:24 am)
Re: MMIO and gcc re-ordering issue, Haavard Skinnemoen, (Fri May 30, 1:27 am)
Re: MMIO and gcc re-ordering issue, Geert Uytterhoeven, (Fri May 30, 2:22 am)
Re: MMIO and gcc re-ordering issue, Jes Sorensen, (Fri May 30, 2:36 am)
Re: MMIO and gcc re-ordering issue, Jes Sorensen, (Fri May 30, 2:39 am)
Re: MMIO and gcc re-ordering issue, Jes Sorensen, (Fri May 30, 2:48 am)
Re: MMIO and gcc re-ordering issue, Jesse Barnes, (Fri May 30, 10:21 am)
Re: MMIO and gcc re-ordering issue, Jeremy Higdon, (Sat May 31, 12:52 am)
Re: MMIO and gcc re-ordering issue, Jeremy Higdon, (Sat May 31, 12:57 am)
Re: MMIO and gcc re-ordering issue, Pavel Machek, (Sat May 31, 1:04 am)
Re: MMIO and gcc re-ordering issue, Pavel Machek, (Sat May 31, 1:14 am)
Re: MMIO and gcc re-ordering issue, Russell King, (Mon Jun 2, 12:24 am)
Re: MMIO and gcc re-ordering issue, Haavard Skinnemoen, (Mon Jun 2, 1:11 am)
Re: MMIO and gcc re-ordering issue, Jes Sorensen, (Mon Jun 2, 2:48 am)
Re: MMIO and gcc re-ordering issue, Jes Sorensen, (Mon Jun 2, 2:56 am)
Re: MMIO and gcc re-ordering issue, Ingo Molnar, (Mon Jun 2, 3:36 am)
Re: MMIO and gcc re-ordering issue, Scott Wood, (Mon Jun 2, 8:48 am)
Re: MMIO and gcc re-ordering issue, Jeremy Higdon, (Mon Jun 2, 2:02 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Mon Jun 2, 2:53 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Mon Jun 2, 9:16 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Mon Jun 2, 9:32 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Mon Jun 2, 9:33 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Mon Jun 2, 11:11 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Mon Jun 2, 11:48 pm)
Re: MMIO and gcc re-ordering issue, Paul Mackerras, (Mon Jun 2, 11:53 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 3, 12:18 am)
Re: MMIO and gcc re-ordering issue, Haavard Skinnemoen, (Tue Jun 3, 12:46 am)
Re: MMIO and gcc re-ordering issue, Jeremy Higdon, (Tue Jun 3, 1:15 am)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 3, 1:19 am)
Re: MMIO and gcc re-ordering issue, Jeremy Higdon, (Tue Jun 3, 1:45 am)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue Jun 3, 7:47 am)
Re: MMIO and gcc re-ordering issue, Jesse Barnes, (Tue Jun 3, 9:52 am)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Tue Jun 3, 11:47 am)
Re: MMIO and gcc re-ordering issue, Matthew Wilcox, (Tue Jun 3, 11:55 am)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue Jun 3, 12:07 pm)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Tue Jun 3, 12:43 pm)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Tue Jun 3, 12:57 pm)
Re: MMIO and gcc re-ordering issue, Matthew Wilcox, (Tue Jun 3, 2:33 pm)
Re: MMIO and gcc re-ordering issue, Matthew Wilcox, (Tue Jun 3, 2:35 pm)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Tue Jun 3, 2:44 pm)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Tue Jun 3, 2:58 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue Jun 3, 3:26 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 3, 7:00 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 3, 7:05 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 3, 7:19 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 3, 7:25 pm)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Tue Jun 3, 7:46 pm)
Re: MMIO and gcc re-ordering issue, Trent Piepho, (Tue Jun 3, 11:39 pm)
Re: MMIO and gcc re-ordering issue, Alan Cox, (Wed Jun 4, 4:47 am)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Wed Jun 4, 8:31 am)
Re: MMIO and gcc re-ordering issue, Jes Sorensen, (Thu Jun 5, 1:40 am)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Thu Jun 5, 1:43 am)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Mon Jun 9, 11:56 pm)
Re: MMIO and gcc re-ordering issue, Jesse Barnes, (Tue Jun 10, 10:41 am)
Re: MMIO and gcc re-ordering issue, James Bottomley, (Tue Jun 10, 11:10 am)
Re: MMIO and gcc re-ordering issue, Roland Dreier, (Tue Jun 10, 12:05 pm)
Re: MMIO and gcc re-ordering issue, Jesse Barnes, (Tue Jun 10, 12:19 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 10, 8:29 pm)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Tue Jun 10, 8:40 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 10, 9:06 pm)
Re: MMIO and gcc re-ordering issue, Paul Mackerras, (Tue Jun 10, 9:18 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 10, 10:00 pm)
Re: MMIO and gcc re-ordering issue, Paul Mackerras, (Tue Jun 10, 10:13 pm)
Re: MMIO and gcc re-ordering issue, Paul Mackerras, (Tue Jun 10, 10:20 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 10, 10:35 pm)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Tue Jun 10, 11:02 pm)
Re: MMIO and gcc re-ordering issue, Linus Torvalds, (Wed Jun 11, 7:46 am)
Re: MMIO and gcc re-ordering issue, Jesse Barnes, (Wed Jun 11, 9:07 am)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Thu Jun 12, 4:27 am)
Re: MMIO and gcc re-ordering issue, Paul Mackerras, (Thu Jun 12, 5:14 am)
Re: MMIO and gcc re-ordering issue, Nick Piggin, (Thu Jun 12, 6:08 am)
Re: MMIO and gcc re-ordering issue, Matthew Wilcox, (Thu Jun 12, 8:07 am)
Re: MMIO and gcc re-ordering issue, Benjamin Herrenschmidt, (Thu Jun 12, 5:07 pm)