![]() | |||||||||||||
Messages in this thread |
Hi! > > > + * Note that the context and timing of this function is pretty critical. > > > + * With a minimal amount of things going on in the caller and in here, gcc > > > + * does a good job of being just a dumb compiler. Watch the assembly output > > > + * if anything changes, though, and make sure everything is going in the right > > > + * place. > > > > You should include assembly source (unless you can test all the compilers...). Feel free > > to include C version, too, but #ifdef it out. > > I'm thinking I should actually be removing the comment. The C is simple, > clear, fast and easy to maintain and we haven't actually had any > problems at all with compilers. All my tweaking in here has turned out > to be irrelevant to the real cause of problems (I recently found a bug > where work queues were wrongly inheriting freezer flags; since fixing > that, all the symptoms in this area have gone away). See the flames I got when I did just that. No, it needs to be in assembly, because (by standard) C compiler is allowed to misoptimize it. Pavel -- People were complaining that M$ turns users into beta-testers... ...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl! - 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-03-22 14:08 [from the cache] ©2003-2008 | |||||||||||||