This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: S390x - REL5 stap_testing_200611132049.results]


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]