On 9/25/09, Jason Nymble <jason.nymble@xxxxxxxxx> wrote: > For posterity, I've finally solved this issue. It ended up having > nothing to do with the interrupts/tasklets themselves. The driver uses > ioremap() to get hold of some reserved memory, and it seems from about > 2.6.25 onwards or so this defaults to ioremap_nocache(), so our driver > was doing memory operations in the tasklet on uncacheable pages. > Calling ioremap_cache() explicitly in the driver solved the issue > (nice when you can fix a perf regression of 50-100x with a single line > fix!). Oprofile was of tremendous help in solving this issue. Hi Jason Nice to hear you finally fix your problem. BTW, may I ask a bit about ioremap_cache? By using this function, it is like saying "map and cache these pages so next time we access them, we don't need to fetch them from device memory again"? CMIIW If it is so, then logically it is the answer as it was proven by your experiments... -- regards, Mulyadi Santosa Freelance Linux trainer blog: the-hydra.blogspot.com -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ