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

Reply via email to