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]

ERROR: MAXACTION exceeded


My dmesg shown below:

 =======================
INFO: task staprun:7694 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
staprun       D e55cef2c     0  7694   7498
       e55cef54 00000086 00000000 e55cef2c e4f8289e 00000127 e7c36dc0 e7c3701c
       c2012600 00000000 e55ce000 e5b35700 c083c904 00000000 00000000 c0635bf0
       c06357ec 00000000 e55cef40 c043f21c e55cef54 c0448a6d f8c87500 00000000
Call Trace:
 [<c0635bf0>] ? mutex_lock+0x1d/0x2d
 [<c06357ec>] ? wait_for_completion+0x12/0x14
 [<c043f21c>] ? put_online_cpus+0x54/0x56
 [<c0448a6d>] ? stop_machine_run+0x31/0x38
 [<c04423f6>] sys_delete_module+0x141/0x1ab
 [<c04048c6>] sysenter_past_esp+0x5f/0x85
 =======================

And my script hanged (not responding to ctrl-c):

ERROR: MAXACTION exceeded near identifier 'probefunc' at
/usr/local/share/systemtap/tapset/context.stp:90:10
WARNING: Number of errors: 1, skipped probes: 16

The script is just:

probe kernel.function("*@arch/x86/kernel/process_32.c").call {
        printf ("%s -> %s\n", thread_indent(1), probefunc())
        print_backtrace();
        printf("\n");
}
probe kernel.function("*@arch/x86/kernel/process_32.c").return {
        printf ("%s <- %s\n", thread_indent(-1), probefunc())
        printf("\n");
}

And the solution is (from year 2005 email):

Try to reset MAXACTION once in a while with this

function reset_maxaction () %{
       if (CONTEXT && CONTEXT->actioncount)
               CONTEXT->actioncount=0;
%}

OR try to start your script with -DMAXACTION=<somehugenumber>

Question:

a.   from the kernel C module autogenerated, I saw that MAXACTION is
just to prevent overrecursion, or too many loops - correct?
b.   under what condition are the above usable?  ie, no serious
problem will arise?
c.   why not just eliminate the MAXACTION detection altogether, if it
persistently give error display, but really nothing serious?
d.   deadlock problem (as implied from the dmesg display above) -
where is it and how to solve it?  is it userpsace type or system
level?  how to find out?


-- 
Regards,
Peter Teoh


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