![]() | ||||||||||
Messages in this thread |
From: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Date: Sun, 16 Oct 2005 23:36:00 +0400 > My opinion is that we don't need a barrier even _after_ ll/sc sequences > on Alpha - it's redundant; perhaps it's just a historical baggage. > I strongly believe that ll/sc _does_ imply an SMP memory barrier, as can > be seen from instructions timing: a standalone mb takes tens of cycles, > the mb before/after ll/sc takes 0 to 1 cycle on ev6 (a bit more on ev56) > depending on instruction slotting. > Note that superfluous mb's around atomic stuff still can hurt - > Alpha mb instruction also flushes IO write buffers, so it can > be _extremely_ expensive under heavy IO... Even a quick google tells me that on Alpha, LL/SC have implicit barriers only with respect to the locations being acted upon by the LL/SC, but don't have more general barrier properties. This is in line with how PPC is defined as well. I truly believe that you would be removing those Alpha memory barriers only at your own peril. :-) And since the PPC and Alpha defined semantics aparently match, I think it would be wise to add the missing memory barriers from the front of the LL/SC sequences which need them, just as PPC does. I just spent 6 months tracking down a bug that turned out to be a couple of missing memory barriers on sparc64. So, this has taught me to be extra careful in this area :-) I really think this is an area in which it's better to be safe than sorry. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | |||||||||
| Last update: 2005-10-17 04:32 [W:0.151 / U:0.010 seconds] ©2003-2008 Jasper Spaans | ||||||||||