STAPPROBES.SIGNAL

Section: Misc. Reference Manual Pages (3stap)
Updated: 2009-10-21
Index Return to Main Contents
 

NAME

stapprobes.signal - systemtap signal probe points

 

DESCRIPTION

This family of probe points is used to probe signal activities. It contains the following probe points:

signal.send

Fires when a signal is sent to a process

Arguments:

sig
  signal number

sig_name
  a string representation of the signal

sig_pid
  pid of the signal recipient process

pid_name
  name of the signal recipient process

si_code
  indicates the signal type

task
  a task handle to the signal recipient

sinfo
  the address of siginfo struct

shared
  indicates whether this signal is shared by the thread group

send2queue
  indicates whether this signal is sent to an existing sigqueue

name
  name of the function used to send out this signal

signal.send.return

Fires when return from sending a signal

Arguments:

retstr
  the return value


  Return values for "__group_send_sig_info" and "specific_send_sig_info"

- return 0 if the signal is successfully sent to a process, which means the following:

<1> the signal is ignored by receiving process

<2> this is a non-RT signal and we already have one queued

<3> the signal is successfully added into the sigqueue of receiving process

- return -EAGAIN if the sigqueue is overflow the signal was RT and sent by user using something other than kill()


  Return values for "send_group_sigqueue"

- return 0 if the signal is either successfully added into the sigqueue of receiving process or a SI_TIMER entry is already queued so just increment the overrun count

- return 1 if this signal is ignored by receiving process


  Return values for "send_sigqueue"

- return 0 if the signal is either successfully added into the sigqueue of receiving process or a SI_TIMER entry is already queued so just increment the overrun count

- return 1 if this signal is ignored by receiving process

- return -1 if the task is marked exiting, so posix_timer_event can redirect it to the group leader

shared
  indicates whether this signal is shared by the thread group

send2queue
  indicates whether this signal is sent to an existing sigqueue

name
  name of the function used to send out this signal

signal.checkperm

Fires when check permissions for sending the signal

Arguments:

sig
  the number of the signal

sig_name
  a string representation of the signal

sig_pid
  pid of the signal recipient process

pid_name
  name of the signal recipient process

si_code
  indicates the signal type

task
  a task handle to the signal recipient

sinfo
  the address of siginfo struct

name
  name of the probe point, is set to "signal.checkperm"

signal.checkperm.return

Fires when return from permissions check for sending a signal

Arguments:

retstr
  the return value

name
  name of the probe point, is set to "signal.checkperm"

signal.wakeup

Fires when wake up the process for new active signals

Arguments:

sig_pid
  pid of the process to be woke up

pid_name
  name of the process to be woke up

resume
  indicate whether to wake up a task in STOPPED or TRACED state

state_mask
  a string representation indicate the mask of task states that can be woken. Possible values are (TASK_INTERRUPTIBLE|TASK_STOPPED|TASK_TRACED) and TASK_INTERRUPTIBLE.

signal.check_ignored

Fires when check whether the signal is ignored or not

Arguments:

sig_pid
  pid of the signal recipient process

pid_name
  name of the signal recipient process

sig
  the signal to be checked

sig_name
  name of the signal

signal.check_ignored.return

Fires when return from signal.check_ignored

Arguments:

retstr
  return value. 0 indicate the current signal isn't ignored.

signal.force_segv

Forces SIGSEGV when there are some issues while handling signals for the process

Arguments:

sig_pid
  pid of the signal recipient process

pid_name
  name of the signal recipient process

sig
  the signal being handled

sig_name
  name of this signal

signal.force_segv.return

Fires when return from signal.force_segv

Arguments:

retstr
  return value. Always return 0

signal.syskill

Fires when sys_kill is called to send a signal to a process.

Arguments:

pid
  pid of the recipient process

sig
  the signal to be sent

signal.syskill.return

Fires when returning from sys_kill

signal.tgkill

Fires when sys_tgkill is called to send a signal to one specific thread

Arguments:

pid
  pid of the recipient thread

tgid
  thread group id which the target thread should have

sig
  the signal to be sent

signal.tgkill.return

Fires when returning from sys_tgkill

signal.tkill

Fires when sys_tkill is called to send a signal to a single process.

Arguments:

pid
  pid of the recipient process

sig
  the signal to be sent

signal.tkill.return

Fires when returning from sys_tkill

signal.send_sig_queue

Fires when queue a signal to a process

Arguments:

sig
  the signal to be queued

sig_name
  name of this signal

sig_pid
  pid of the process to which the signal is queued

pid_name
  name of the process  to which the signal is queued

sigqueue_addr
  address of the signal queue

signal.send_sig_queue.return

Fires when return from signal.send_sig_queue

Arguments:

retstr
  return value

signal.pending

Fires when examine the set of signals that are pending for delivery to the calling thread

Arguments:

sigset_add
  address of user space sigset_t

sigset_size
  sigset size

signal.pending.return

Fires when return from signal.pending

Arguments:

retstr
  return value

signal.handle

Fires when invoking the signal handler

Arguments:

sig
  signal number

sig_name
  signal name

sinfo
  address of siginfo struct

sig_code
  the si_code of siginfo

ka_addr
  Address of the k_sigaction struct associated with the signal

oldset_addr
  Address of a bit mask array of blocked signals

sig_mode
  indicates whether the signal is a User Mode or Kernel mode Signal

signal.handle.return

Fires when return from signal.handle

Arguments:

retstr
  return value of handle_signal()

signal.do_action

Fires by calling thread to examine and change a signal action
  Arguments:

sig
  signal number

sigact_addr
  address of the new sigaction struct associated with the signal

oldsigact_addr
  address of a previous sigaction struct associated with the signal

sa_handler
  the new handler of the signal

sa_mask
  the new mask of the signal

signal.do_action.return

Fires when return from signal.do_action

Arguments:

retstr
  return value of do_sigaction()

signal.procmask

Fires by calling thread to examine and change blocked signals

Arguments:

how
  indicates how to change the blocked signals. 
  Possible values are:
    SIG_BLOCK=0 for blocking signals
    SIG_UNBLOCK=1 for unblocking signals
    SIG_SETMASK=2 for setting the signal mask

sigset_addr
  address of sigset_t to be set

oldsigset_addr
  address of the old sigset_t

sigset
  the actual sigset to be set

signal.procmask.return

Fires when return from signal.procmask

Arguments:

retstr
  return value of sigprocmask()

signal.flush

Fires when flush all pending signals for a task

Arguments:

task
  the task handler of the process

sig_pid
  pid of the task

pid_name
  name of the task

 

SEE ALSO

stap(1), stapprobes(3stap)