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