public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
* return probe not executed on SMP system
@ 2005-11-03 14:01 Guang Lei Li
  2005-11-03 16:58 ` Hien Nguyen
  2005-11-04  1:11 ` Hien Nguyen
  0 siblings, 2 replies; 8+ messages in thread
From: Guang Lei Li @ 2005-11-03 14:01 UTC (permalink / raw)
  To: systemtap

Hi,

  I met some difficulties when dealing with the return probe on a 
multi-processor system(Power5 System, 4 CPU).

  This is the stap script I used:

global counter

function info()
%{
  struct task_struct *cur = current;
  _stp_printf("\n|%ld|%ld|%ld|%u|", cur->pid, cur->tgid, 
cur->thread_info->cpu);
%}

probe kernel.function("sys_read")
{
  if(pid() == target())
  {
    counter--
    info()
    log("pid:".string(pid())." target:".string(target())."entry")
  }
}

probe kernel.function("sys_read").return
{
  if(pid() == target())
  {
    counter++
    info()
    log("pid:".string(pid())." target:".string(target())."return")
  }
}

probe begin
{
  counter=100
}

probe end
{
  log("counter: ".string(counter))
}

then I run:
  stap -g a.stp -c "ls > a"

The output:

root:/root/temp>stap -g b.stp -c "ls > a"

|3713|3713|3|0|pid:3713 target:3713entry

|3713|3713|3|0|pid:3713 target:3713entry

|3713|3713|3|0|pid:3713 target:3713entry

|3713|3713|3|0|pid:3713 target:3713entry

|3713|3713|3|0|pid:3713 target:3713entry
counter: 95

 It seemed that the return probe didn't work for me.
 I tried the same script on a uni-processor x86 system, it worked fine.

 And I also tried to write a simple c application which will open a file, 
and read some data from this file. I run it:
   stap -g b.stp -c "./a.out"
 It gave the output like:

...
|3881|3881|0|0|pid:3881 target:3881entry

|3881|3881|0|0|pid:3881 target:3881entry

|3881|3881|0|0|pid:3881 target:3881entry

|3881|3881|0|0|pid:3881 target:3881return

|3881|3881|0|0|pid:3881 target:3881entry

|3881|3881|0|0|pid:3881 target:3881return

|3881|3881|0|0|pid:3881 target:3881entry
....

|3881|3881|3|0|pid:3881 target:3881entry

|3881|3881|3|0|pid:3881 target:3881return
counter: 33

 You can see that there are still some return probes not be executed at 
all(if all are executed, the counter should be 100).

 Could anybody give me a hint about this problem?

Best Regards,

Li Guanglei

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2005-11-04  6:15 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-03 14:01 return probe not executed on SMP system Guang Lei Li
2005-11-03 16:58 ` Hien Nguyen
2005-11-04  1:11 ` Hien Nguyen
2005-11-04  2:11   ` Guang Lei Li
2005-11-04  5:03     ` Hien Nguyen
2005-11-04  5:34       ` Guang Lei Li
2005-11-04  6:06         ` Hien Nguyen
2005-11-04  6:15         ` Hien Nguyen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).