Corey Ashford wrote: > > stephane eranian wrote: >> On Mon, Aug 24, 2009 at 8:48 PM, Corey >> Ashford<cjash...@linux.vnet.ibm.com> wrote: >>> stephane eranian wrote: >>>> Corey, >>>> >>> [snip] >>>> Here are a couple of tests you could try and run to narrow it down: >>>> - taskset -c 0 self >>>> - syst >>>> >>> "taskset -c 0 self" doesn't improve the behavior. The results are still all >>> over the place. >>> >> That's strange, must be something really central. >> You need to enable debugging. Careful as this has changed again in 2.6.30 >> because of the dynamic_printk stuff. The good thing is that now you can >> turn on/off individual printk. > > I'm not familiar with dynamic_printk, so that will take some research. > >>> "syst" is giving me an error, which may be something completely unrelated: >>> >>> [r...@elm3c4 examples_v2.x]# ./syst >>> cannot set affinity to CPU0: Invalid argument >>> >> Weird. You have a CPU0, don't you? > > Yes :) I'm still debugging this to figure out what's going on. No results > yet > (took me awhile to get systemtap running due to many pilot errors)
Ok, I tracked the syst problem down. There is an error in syst.c which manifests itself on big-endian machines when syst.c is compiled in 32-bit mode. The bit vector which is used to describe the cpus that you want to set the affinity for is an array of 32-bit words (when using the compat_sys_sched_setaffinity system call in 32-bit mode). syst programs a vector of 64-bit words. On a little endian machine, this wouldn't matter, because the least significant byte of the 32-bit or 64-bit word is always at offset 0. But on a big-endian machine, the least significant byte is at offset 0x3 or 0x7 depending on the word size. So the result is that the bit vector is interpreted as setting the affinity for a cpu which does not exist. There are a couple of ways to fix this, and I will post a patch which contains both versions. So, after fixing this problem, syst does produce reliable results on 2.6.30. So I am assuming now that this the problem with the self test (and others) is that something is messed up with the per-thread context code. I will be start working on this. - Corey ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel