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: stack_used() not accurate?


Mike Snitzer wrote:
Hi,

When I use the attached script for all ext3 call-chains stack_used()
is _always_ 481.  I'm running the latest systemtap.git on an RHEL5
x86_64 system (though older versions of systemtap showed the same
481).

I've tested switching the module from ext3 to others and 481 doesn't change.

Looking at tapset/context.stp the implementation for stack_used()
looks fine.  But given the constant 481 I'm seeing is systemtap
somehow showing systemtap-tainted stack usage?

Mike

Hi Mike,


I did a test and found it kept the constant value. And I changed to another function which is copied and tailored from check_stack_usage(). The function is added since 2.6.23, but has no much dependency on kernel version. Seems it works fine on my boxes(x86, x86_64).

function stack_used_new:long() %{ /*pure */
 {
         unsigned long *n = end_of_stack(current);
         unsigned long free;
         while (*n == 0)
                 n++;
         free = (unsigned long)n - (unsigned long)end_of_stack(current);

         THIS->__retvalue = THREAD_SIZE - free;
}
%}

Regards,
Wenji



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