JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Solaris Dynamic Tracing Guide
search filter icon
search icon

Document Information

Preface

1.  Introduction

2.  Types, Operators, and Expressions

3.  Variables

4.  D Program Structure

5.  Pointers and Arrays

6.  Strings

7.  Structs and Unions

8.  Type and Constant Definitions

9.  Aggregations

10.  Actions and Subroutines

11.  Buffers and Buffering

12.  Output Formatting

13.  Speculative Tracing

14.  dtrace(1M) Utility

15.  Scripting

16.  Options and Tunables

17.  dtrace Provider

18.  lockstat Provider

19.  profile Provider

20.  fbt Provider

21.  syscall Provider

22.  sdt Provider

23.  sysinfo Provider

24.  vminfo Provider

25.  proc Provider

26.  sched Provider

Probes

Arguments

cpuinfo_t

Examples

on-cpu and off-cpu

enqueue and dequeue

sleep and wakeup

preempt, remain-cpu

change-pri

tick

Stability

27.  io Provider

28.  mib Provider

29.  fpuinfo Provider

30.  pid Provider

31.  plockstat Provider

32.  fasttrap Provider

33.  User Process Tracing

34.  Statically Defined Tracing for User Applications

35.  Security

36.  Anonymous Tracing

37.  Postmortem Tracing

38.  Performance Considerations

39.  Stability

40.  Translators

41.  Versioning

Glossary

Index

Arguments

The argument types for the sched probes are listed in Table 26-2; the arguments are described in Table 26-1.

Table 26-2 sched Probe Arguments

Probe
args[0]
args[1]
args[2]
args[3]
change-pri
lwpsinfo_t *
psinfo_t *
pri_t
dequeue
lwpsinfo_t *
psinfo_t *
cpuinfo_t *
enqueue
lwpsinfo_t *
psinfo_t *
cpuinfo_t *
int
off-cpu
lwpsinfo_t *
psinfo_t *
on-cpu
preempt
remain-cpu
schedctl-nopreempt
lwpsinfo_t *
psinfo_t *
schedctl-preempt
lwpsinfo_t *
psinfo_t *
schedctl-yield
lwpsinfo_t *
psinfo_t *
sleep
surrender
lwpsinfo_t *
psinfo_t *
tick
lwpsinfo_t *
psinfo_t *
wakeup
lwpsinfo_t *
psinfo_t *

As Table 26-2 indicates, many sched probes have arguments consisting of a pointer to an lwpsinfo_t and a pointer to a psinfo_t, indicating a thread and the process containing the thread, respectively. These structures are described in detail in lwpsinfo_t and psinfo_t, respectively.

cpuinfo_t

The cpuinfo_t structure defines a CPU. As Table 26-2 indicates, arguments to both the enqueue and dequeue probes include a pointer to a cpuinfo_t. Additionally, the cpuinfo_t corresponding to the current CPU is pointed to by the curcpu variable. The definition of the cpuinfo_t structure is as follows:

typedef struct cpuinfo {
    processorid_t cpu_id;           /* CPU identifier */
    psetid_t cpu_pset;              /* processor set identifier */
    chipid_t cpu_chip;              /* chip identifier */
    lgrp_id_t cpu_lgrp;             /* locality group identifer */
    processor_info_t cpu_info;      /* CPU information */
} cpuinfo_t;

The cpu_id member is the processor identifier, as returned by psrinfo(1M) and p_online(2).

The cpu_pset member is the processor set that contains the CPU, if any. See psrset(1M) for more details on processor sets.

The cpu_chip member is the identifier of the physical chip. Physical chips may contain several CPUs. See psrinfo(1M) for more information.

The cpu_lgrp member is the identifier of the latency group associated with the CPU. See liblgrp(3LIB) for details on latency groups.

The cpu_info member is the processor_info_t structure associated with the CPU, as returned by processor_info(2).