S390x - REL5 stap_testing_200611132049.results]

David Wilder dwilder@us.ibm.com
Tue Nov 14 20:00:00 GMT 2006


David Smith wrote:

>
>>>
>>> # stap -v -p4 -e "probe begin {}"
>>>
>>>
>> Pass 4 is giving an error,  odd that it did not show up in the test 
>> log.  Here it is:
>> [....]
>> mp/stapuYgXg9/.tmp_stap_9001.o /tmp/stapuYgXg9/stap_9001.c
>> In file included from /usr/local/share/systemtap/runtime/runtime.h:79,
>>                 from /tmp/stapuYgXg9/stap_9001.c:31:
>> /usr/local/share/systemtap/runtime/alloc.c:66: error: expected 
>> declaration specifiers or '...' before '(' token
>> /usr/local/share/systemtap/runtime/alloc.c: In function 'percpu_free':
>> /usr/local/share/systemtap/runtime/alloc.c:67: error: number of 
>> arguments doesn't match prototype
>> include/linux/percpu.h:51: error: prototype declaration
>> [...]
>>
>>  From runtime/alloc.c
>> [...]
>> #ifdef CONFIG_SMP
>> [...]
>> 66: void _stp_free_percpu(const void *objp)
>> {
>>        int i;
>>        struct percpu_data *p = (struct percpu_data *) (~(unsigned 
>> long) objp);
>>
>>        for_each_cpu(i)
>>                kfree(p->ptrs[i]);
>>        kfree(p);
>> }
>>
>> But earler in alloc.c _stp_free_percpu() is defined:
>>
>> #ifdef CONFIG_SMP
>> #define _stp_free_percpu(ptr) free_percpu(ptr)
>> #else
>> #define _stp_free_percpu(ptr) kfree(ptr)
>> #endif
>>
>> I think the #ifdefs are messed up.  Both defines are under  CONFIG_SMP.
>> If I comment out the first defines it works better, but I am still 
>> net seeing the
>> "using cached " message.
>>
>
> Hmm.  It appears from that output that the 'stap' binary you are using 
> doesn't have caching support.  If it did, the name of the C file 
> wouldn't be 'stap_9388.c', it would be something like 
> 'stap_6bc3d92354bbb164201d174128e2eca5_122.c'.
>
> Can you check and ensure that the latest systemtap has been compiled 
> and installed?  Let's see the output of "stap -V".
>
Woops,  I thought I had run make install, I guess not.  Here is the 
output running the current version of stap.

[root@hez235 obj]# ./stap -v -p4 -e "probe begin {}"
Pass 1: parsed user script and 52 library script(s) in 
5740usr/130sys/6472real ms.
Pass 2: analyzed script: 1 probe(s), 0 function(s), 0 embed(s), 0 
global(s) in 80usr/0sys/102real ms.
Pass 3: translated to C into 
"/tmp/stapMeHOHh/stap_f087f4375cd915e8f124ba8ee388fbb9_177.c" in 
10usr/10sys/2real ms.
Pass 4: compiled C into "stap_f087f4375cd915e8f124ba8ee388fbb9_177.ko" 
in 7580usr/1360sys/10365real ms.
[root@hez235 obj]# ./stap -v -p4 -e "probe begin {}"
Pass 1: parsed user script and 52 library script(s) in 
5720usr/130sys/6756real ms.
Pass 2: analyzed script: 1 probe(s), 0 function(s), 0 embed(s), 0 
global(s) in 90usr/10sys/97real ms.
Pass 3: using cached 
/root/.systemtap/cache/f0/stap_f087f4375cd915e8f124ba8ee388fbb9_177.c
Pass 4: using cached 
/root/.systemtap/cache/f0/stap_f087f4375cd915e8f124ba8ee388fbb9_177.ko

Looks better,  But I still needed to comment out the extra defines for 
_stp_free_percpu() in alloc.c. 

-- 
David Wilder
IBM Linux Technology Center
Beaverton, Oregon, USA 
dwilder@us.ibm.com
(503)578-3789



More information about the Systemtap mailing list