Cari di RHE Linux 
    RHE Linux User Manual
Daftar Isi
(Sebelumnya) 22 : Chapter 3. Context Functi ...22 : Chapter 11. Networking Ta ... (Berikutnya)

SystemTap Tapset Reference

Chapter 4. Timestamp Functions

function::get_cycles - Processor cycle count.
function::gettimeofday_ns - Number of nanoseconds since UNIX epoch.
function::gettimeofday_us - Number of microseconds since UNIX epoch.
function::gettimeofday_ms - Number of milliseconds since UNIX epoch.
function::gettimeofday_s - Number of seconds since UNIX epoch.

Each timestamp function returns a value to indicate when a function is executed. These returned values can then be used to indicate when an event occurred, provide an ordering for events, or compute the amount of time elapsed between two time stamps.

Name

function::get_cycles - Processor cycle count.

Synopsis

function get_cycles:long()

Arguments

None

General Syntax

get_cycles:long

Description

This function returns the processor cycle counter value if available, else it returns zero. The cycle counter is free running and unsynchronized on each processor. Thus, the order of events cannot determined by comparing the results of the get_cycles function on different processors.

Name

function::gettimeofday_ns - Number of nanoseconds since UNIX epoch.

Synopsis

function gettimeofday_ns:long()

Arguments

None

General Syntax

gettimeofday_ns:long

Description

This function returns the number of nanoseconds since the UNIX epoch.

Name

function::gettimeofday_us - Number of microseconds since UNIX epoch.

Synopsis

function gettimeofday_us:long()

Arguments

None

General Syntax

gettimeofday_us:long

Description

This function returns the number of microseconds since the UNIX epoch.

Name

function::gettimeofday_ms - Number of milliseconds since UNIX epoch.

Synopsis

function gettimeofday_ms:long()

Arguments

None

General Syntax

gettimeofday_ms:long

Description

This function returns the number of milliseconds since the UNIX epoch.

Name

function::gettimeofday_s - Number of seconds since UNIX epoch.

Synopsis

function gettimeofday_s:long()

Arguments

None

General Syntax

gettimeofday_s:long

Description

This function returns the number of seconds since the UNIX epoch.

Chapter 5. Time string utility function

function::ctime - Convert seconds since epoch into human readable date/time string.

Utility function to turn seconds since the epoch (as returned by the timestamp function gettimeofday_s()) into a human readable date/time string.

Name

function::ctime - Convert seconds since epoch into human readable date/time string.

Synopsis

function ctime:string(epochsecs:long)

Arguments

epochsecs

Number of seconds since epoch (as returned by gettimeofday_s).

General Syntax

ctime:string(epochsecs:long)

Description

Takes an argument of seconds since the epoch as returned by gettimeofday_s. Returns a string of the form

"Wed Jun 30 21:49:08 1993"

The string will always be exactly 24 characters. If the time would be unreasonable far in the past (before what can be represented with a 32 bit offset in seconds from the epoch) the returned string will be "a long, long time ago...". If the time would be unreasonable far in the future the returned string will be "far far in the future..." (both these strings are also 24 characters wide).

Note that the epoch (zero) corresponds to

"Thu Jan 1 00:00:00 1970"

The earliest full date given by ctime, corresponding to epochsecs -2147483648 is "Fri Dec 13 20:45:52 1901". The latest full date given by ctime, corresponding to epochsecs 2147483647 is "Tue Jan 19 03:14:07 2038".

The abbreviations for the days of the week are �Sun�, �Mon�, �Tue�, �Wed�, �Thu�, �Fri�, and �Sat�. The abbreviations for the months are �Jan�, �Feb�, �Mar�, �Apr�, �May�, �Jun�, �Jul�, �Aug�, �Sep�, �Oct�, �Nov�, and �Dec�.

Note that the real C library ctime function puts a newline ('\n') character at the end of the string that this function does not. Also note that since the kernel has no concept of timezones, the returned time is always in GMT.

Chapter 6. Memory Tapset

function::vm_fault_contains - Test return value for page fault reason
probe::vm.pagefault - Records that a page fault occurred.
probe::vm.pagefault.return - Indicates what type of fault occurred.
function::addr_to_node - Returns which node a given address belongs to within a NUMA system.
probe::vm.write_shared - Attempts at writing to a shared page.
probe::vm.write_shared_copy - Page copy for shared page write.
probe::vm.mmap - Fires when an mmap is requested.
probe::vm.munmap - Fires when an munmap is requested.
probe::vm.brk - Fires when a brk is requested (i.e. the heap will be resized).
probe::vm.oom_kill - Fires when a thread is selected for termination by the OOM killer.
probe::vm.kmalloc - Fires when kmalloc is requested.
probe::vm.kmem_cache_alloc - Fires when \
probe::vm.kmalloc_node - Fires when kmalloc_node is requested.
probe::vm.kmem_cache_alloc_node - Fires when \
probe::vm.kfree - Fires when kfree is requested.
probe::vm.kmem_cache_free - Fires when \
function::proc_mem_size - Total program virtual memory size in pages
function::proc_mem_size_pid - Total program virtual memory size in pages
function::proc_mem_rss - Program resident set size in pages
function::proc_mem_rss_pid - Program resident set size in pages
function::proc_mem_shr - Program shared pages (from shared mappings)
function::proc_mem_shr_pid - Program shared pages (from shared mappings)
function::proc_mem_txt - Program text (code) size in pages
function::proc_mem_txt_pid - Program text (code) size in pages
function::proc_mem_data - Program data size (data + stack) in pages
function::proc_mem_data_pid - Program data size (data + stack) in pages
function::mem_page_size - Number of bytes in a page for this architecture
function::bytes_to_string - Human readable string for given bytes
function::pages_to_string - Turns pages into a human readable string
function::proc_mem_string - Human readable string of current proc memory usage
function::proc_mem_string_pid - Human readable string of process memory usage

This family of probe points is used to probe memory-related events or query the memory usage of the current process. It contains the following probe points:

Name

function::vm_fault_contains - Test return value for page fault reason

Synopsis

function vm_fault_contains:long(value:long,test:long)

Arguments

value

The fault_type returned by vm.page_fault.return
test

The type of fault to test for (VM_FAULT_OOM or similar)

Name

probe::vm.pagefault - Records that a page fault occurred.

Synopsis

vm.pagefault

Values

write_access

Indicates whether this was a write or read access; 1 indicates a write, while 0 indicates a read.
name

Name of the probe point
address

The address of the faulting memory access; i.e. the address that caused the page fault.

Context

The process which triggered the fault

Name

probe::vm.pagefault.return - Indicates what type of fault occurred.

Synopsis

vm.pagefault.return

Values

name

Name of the probe point
fault_type

Returns either 0 (VM_FAULT_OOM) for out of memory faults, 2 (VM_FAULT_MINOR) for minor faults, 3 (VM_FAULT_MAJOR) for major faults, or 1 (VM_FAULT_SIGBUS) if the fault was neither OOM, minor fault, nor major fault.

Name

function::addr_to_node - Returns which node a given address belongs to within a NUMA system.

Synopsis

function addr_to_node:long(addr:long)

Arguments

addr

The address of the faulting memory access.

General Syntax

addr_to_node:long(addr:long)

Description

This function accepts an address, and returns the node that the given address belongs to in a NUMA system.

Name

probe::vm.write_shared - Attempts at writing to a shared page.

Synopsis

vm.write_shared

Values

name

Name of the probe point
address

The address of the shared write.

Context

The context is the process attempting the write.

Description

Fires when a process attempts to write to a shared page. If a copy is necessary, this will be followed by a vm.write_shared_copy.

Name

probe::vm.write_shared_copy - Page copy for shared page write.

Synopsis

vm.write_shared_copy

Values

name

Name of the probe point
zero

Boolean indicating whether it is a zero page (can do a clear instead of a copy).
address

The address of the shared write.

Context

The process attempting the write.

Description

Fires when a write to a shared page requires a page copy. This is always preceded by a vm.shared_write.

Name

probe::vm.mmap - Fires when an mmap is requested.

Synopsis

vm.mmap

Values

length

The length of the memory segment
name

Name of the probe point
address

The requested address

Context

The process calling mmap.

Name

probe::vm.munmap - Fires when an munmap is requested.

Synopsis

vm.munmap

Values

length

The length of the memory segment
name

Name of the probe point
address

The requested address

Context

The process calling munmap.

Name

probe::vm.brk - Fires when a brk is requested (i.e. the heap will be resized).

Synopsis

vm.brk

Values

length

The length of the memory segment
name

Name of the probe point
address

The requested address

Context

The process calling brk.

Name

probe::vm.oom_kill - Fires when a thread is selected for termination by the OOM killer.

Synopsis

vm.oom_kill

Values

name

Name of the probe point
task

The task being killed

Context

The process that tried to consume excessive memory, and thus triggered the OOM.

Name

probe::vm.kmalloc - Fires when kmalloc is requested.

Synopsis

vm.kmalloc

Values

ptr

Pointer to the kmemory allocated
caller_function

Name of the caller function.
call_site

Address of the kmemory function.
gfp_flag_name

type of kmemory to allocate (in String format)
name

Name of the probe point
bytes_req

Requested Bytes
bytes_alloc

Allocated Bytes
gfp_flags

type of kmemory to allocate

Name

probe::vm.kmem_cache_alloc - Fires when \

Synopsis

vm.kmem_cache_alloc

Values

ptr

Pointer to the kmemory allocated
caller_function

Name of the caller function.
call_site

Address of the function calling this kmemory function.
gfp_flag_name

Type of kmemory to allocate(in string format)
name

Name of the probe point
bytes_req

Requested Bytes
bytes_alloc

Allocated Bytes
gfp_flags

type of kmemory to allocate

Description

kmem_cache_alloc is requested.

Name

probe::vm.kmalloc_node - Fires when kmalloc_node is requested.

Synopsis

vm.kmalloc_node

Values

ptr

Pointer to the kmemory allocated
caller_function

Name of the caller function.
call_site

Address of the function caling this kmemory function.
gfp_flag_name

Type of kmemory to allocate(in string format)
name

Name of the probe point
bytes_req

Requested Bytes
bytes_alloc

Allocated Bytes
gfp_flags

type of kmemory to allocate

Name

probe::vm.kmem_cache_alloc_node - Fires when \

Synopsis

vm.kmem_cache_alloc_node

Values

ptr

Pointer to the kmemory allocated
caller_function

Name of the caller function.
call_site

Address of the function calling this kmemory function.
gfp_flag_name

Type of kmemory to allocate(in string format)
name

Name of the probe point
bytes_req

Requested Bytes
bytes_alloc

Allocated Bytes
gfp_flags

type of kmemory to allocate

Description

kmem_cache_alloc_node is requested.

Name

probe::vm.kfree - Fires when kfree is requested.

Synopsis

vm.kfree

Values

ptr

Pointer to the kmemory allocated which is returned by kmalloc
caller_function

Name of the caller function.
call_site

Address of the function calling this kmemory function.
name

Name of the probe point

Name

probe::vm.kmem_cache_free - Fires when \

Synopsis

vm.kmem_cache_free

Values

ptr

Pointer to the kmemory allocated which is returned by kmem_cache
caller_function

Name of the caller function.
call_site

Address of the function calling this kmemory function.
name

Name of the probe point

Description

kmem_cache_free is requested.

Name

function::proc_mem_size - Total program virtual memory size in pages

Synopsis

function proc_mem_size:long()

Arguments

None

Description

Returns the total virtual memory size in pages of the current process, or zero when there is no current process or the number of pages couldn't be retrieved.

Name

function::proc_mem_size_pid - Total program virtual memory size in pages

Synopsis

function proc_mem_size_pid:long(pid:long)

Arguments

pid

The pid of process to examine

Description

Returns the total virtual memory size in pages of the given process, or zero when that process doesn't exist or the number of pages couldn't be retrieved.

Name

function::proc_mem_rss - Program resident set size in pages

Synopsis

function proc_mem_rss:long()

Arguments

None

Description

Returns the resident set size in pages of the current process, or zero when there is no current process or the number of pages couldn't be retrieved.

Name

function::proc_mem_rss_pid - Program resident set size in pages

Synopsis

function proc_mem_rss_pid:long(pid:long)

Arguments

pid

The pid of process to examine

Description

Returns the resident set size in pages of the given process, or zero when the process doesn't exist or the number of pages couldn't be retrieved.

Name

function::proc_mem_shr - Program shared pages (from shared mappings)

Synopsis

function proc_mem_shr:long()

Arguments

None

Description

Returns the shared pages (from shared mappings) of the current process, or zero when there is no current process or the number of pages couldn't be retrieved.

Name

function::proc_mem_shr_pid - Program shared pages (from shared mappings)

Synopsis

function proc_mem_shr_pid:long(pid:long)

Arguments

pid

The pid of process to examine

Description

Returns the shared pages (from shared mappings) of the given process, or zero when the process doesn't exist or the number of pages couldn't be retrieved.

Name

function::proc_mem_txt - Program text (code) size in pages

Synopsis

function proc_mem_txt:long()

Arguments

None

Description

Returns the current process text (code) size in pages, or zero when there is no current process or the number of pages couldn't be retrieved.

Name

function::proc_mem_txt_pid - Program text (code) size in pages

Synopsis

function proc_mem_txt_pid:long(pid:long)

Arguments

pid

The pid of process to examine

Description

Returns the given process text (code) size in pages, or zero when the process doesn't exist or the number of pages couldn't be retrieved.

Name

function::proc_mem_data - Program data size (data + stack) in pages

Synopsis

function proc_mem_data:long()

Arguments

None

Description

Returns the current process data size (data + stack) in pages, or zero when there is no current process or the number of pages couldn't be retrieved.

Name

function::proc_mem_data_pid - Program data size (data + stack) in pages

Synopsis

function proc_mem_data_pid:long(pid:long)

Arguments

pid

The pid of process to examine

Description

Returns the given process data size (data + stack) in pages, or zero when the process doesn't exist or the number of pages couldn't be retrieved.

Name

function::mem_page_size - Number of bytes in a page for this architecture

Synopsis

function mem_page_size:long()

Arguments

None

Name

function::bytes_to_string - Human readable string for given bytes

Synopsis

function bytes_to_string:string(bytes:long)

Arguments

bytes

Number of bytes to translate.

Description

Returns a string representing the number of bytes (up to 1024 bytes), the number of kilobytes (when less than 1024K) postfixed by 'K', the number of megabytes (when less than 1024M) postfixed by 'M' or the number of gigabytes postfixed by 'G'. If representing K, M or G, and the number is amount is less than 100, it includes a '.' plus the remainer. The returned string will be 5 characters wide (padding with whitespace at the front) unless negative or representing more than 9999G bytes.

Name

function::pages_to_string - Turns pages into a human readable string

Synopsis

function pages_to_string:string(pages:long)

Arguments

pages

Number of pages to translate.

Description

Multiplies pages by page_size to get the number of bytes and returns the result of bytes_to_string.

Name

function::proc_mem_string - Human readable string of current proc memory usage

Synopsis

function proc_mem_string:string()

Arguments

None

Description

Returns a human readable string showing the size, rss, shr, txt and data of the memory used by the current process. For example "size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k".

Name

function::proc_mem_string_pid - Human readable string of process memory usage

Synopsis

function proc_mem_string_pid:string(pid:long)

Arguments

pid

The pid of process to examine

Description

Returns a human readable string showing the size, rss, shr, txt and data of the memory used by the given process. For example "size: 301m, rss: 11m, shr: 8m, txt: 52k, data: 2248k".

Chapter 7. Task Time Tapset

function::task_utime - User time of the current task
function::task_utime_tid - User time of the given task
function::task_stime - System time of the current task
function::task_stime_tid - System time of the given task
function::cputime_to_msecs - Translates the given cputime into milliseconds
function::msecs_to_string - Human readable string for given milliseconds
function::cputime_to_string - Human readable string for given cputime
function::task_time_string - Human readable string of task time usage
function::task_time_string_tid - Human readable string of task time usage

This tapset defines utility functions to query time related properties of the current tasks, translate those in miliseconds and human readable strings.

Name

function::task_utime - User time of the current task

Synopsis

function task_utime:long()

Arguments

None

Description

Returns the user time of the current task in cputime. Does not include any time used by other tasks in this process, nor does it include any time of the children of this task.

Name

function::task_utime_tid - User time of the given task

Synopsis

function task_utime_tid:long(tid:long)

Arguments

tid

Thread id of the given task

Description

Returns the user time of the given task in cputime, or zero if the task doesn't exist. Does not include any time used by other tasks in this process, nor does it include any time of the children of this task.

Name

function::task_stime - System time of the current task

Synopsis

function task_stime:long()

Arguments

None

Description

Returns the system time of the current task in cputime. Does not include any time used by other tasks in this process, nor does it include any time of the children of this task.

Name

function::task_stime_tid - System time of the given task

Synopsis

function task_stime_tid:long(tid:long)

Arguments

tid

Thread id of the given task

Description

Returns the system time of the given task in cputime, or zero if the task doesn't exist. Does not include any time used by other tasks in this process, nor does it include any time of the children of this task.

Name

function::cputime_to_msecs - Translates the given cputime into milliseconds

Synopsis

function cputime_to_msecs:long(cputime:long)

Arguments

cputime

Time to convert to milliseconds.

Name

function::msecs_to_string - Human readable string for given milliseconds

Synopsis

function msecs_to_string:string(msecs:long)

Arguments

msecs

Number of milliseconds to translate.

Description

Returns a string representing the number of milliseconds as a human readable string consisting of "XmY.ZZZs", where X is the number of minutes, Y is the number of seconds and ZZZ is the number of milliseconds.

Name

function::cputime_to_string - Human readable string for given cputime

Synopsis

function cputime_to_string:string(cputime:long)

Arguments

cputime

Time to translate.

Description

Equivalent to calling: msec_to_string (cputime_to_msecs (cputime).

Name

function::task_time_string - Human readable string of task time usage

Synopsis

function task_time_string:string()

Arguments

None

Description

Returns a human readable string showing the user and system time the current task has used up to now. For example "usr: 0m12.908s, sys: 1m6.851s".

Name

function::task_time_string_tid - Human readable string of task time usage

Synopsis

function task_time_string_tid:string(tid:long)

Arguments

tid

Thread id of the given task

Description

Returns a human readable string showing the user and system time the given task has used up to now. For example "usr: 0m12.908s, sys: 1m6.851s".

Chapter 8. IO Scheduler and block IO Tapset

probe::ioscheduler.elv_next_request - Fires when a request is retrieved from the request queue
probe::ioscheduler.elv_next_request.return - Fires when a request retrieval issues a return signal
probe::ioscheduler.elv_completed_request - Fires when a request is completed
probe::ioscheduler.elv_add_request.kp - kprobe based probe to indicate that a request was added to the request queue
probe::ioscheduler.elv_add_request.tp - tracepoint based probe to indicate a request is added to the request queue.
probe::ioscheduler.elv_add_request - probe to indicate request is added to the request queue.
probe::ioscheduler_trace.elv_completed_request - Fires when a request is
probe::ioscheduler_trace.elv_issue_request - Fires when a request is
probe::ioscheduler_trace.elv_requeue_request - Fires when a request is
probe::ioscheduler_trace.elv_abort_request - Fires when a request is aborted.
probe::ioscheduler_trace.plug - Fires when a request queue is plugged;
probe::ioscheduler_trace.unplug_io - Fires when a request queue is unplugged;
probe::ioscheduler_trace.unplug_timer - Fires when unplug timer associated
probe::ioblock.request - Fires whenever making a generic block I/O request.
probe::ioblock.end - Fires whenever a block I/O transfer is complete.
probe::ioblock_trace.bounce - Fires whenever a buffer bounce is needed for at least one page of a block IO request.
probe::ioblock_trace.request - Fires just as a generic block I/O request is created for a bio.
probe::ioblock_trace.end - Fires whenever a block I/O transfer is complete.

This family of probe points is used to probe block IO layer and IO scheduler activities. It contains the following probe points:

Name

probe::ioscheduler.elv_next_request - Fires when a request is retrieved from the request queue

Synopsis

ioscheduler.elv_next_request

Values

name

Name of the probe point
elevator_name

The type of I/O elevator currently enabled

Name

probe::ioscheduler.elv_next_request.return - Fires when a request retrieval issues a return signal

Synopsis

ioscheduler.elv_next_request.return

Values

disk_major

Disk major number of the request
rq

Address of the request
name

Name of the probe point
disk_minor

Disk minor number of the request
rq_flags

Request flags

Name

probe::ioscheduler.elv_completed_request - Fires when a request is completed

Synopsis

ioscheduler.elv_completed_request

Values

disk_major

Disk major number of the request
rq

Address of the request
name

Name of the probe point
elevator_name

The type of I/O elevator currently enabled
disk_minor

Disk minor number of the request
rq_flags

Request flags

Name

probe::ioscheduler.elv_add_request.kp - kprobe based probe to indicate that a request was added to the request queue

Synopsis

ioscheduler.elv_add_request.kp

Values

disk_major

Disk major number of the request
rq

Address of the request
q

pointer to request queue
name

Name of the probe point
elevator_name

The type of I/O elevator currently enabled
disk_minor

Disk minor number of the request
rq_flags

Request flags

Name

probe::ioscheduler.elv_add_request.tp - tracepoint based probe to indicate a request is added to the request queue.

Synopsis

ioscheduler.elv_add_request.tp

Values

disk_major

Disk major no of request.
rq

Address of request.
q

Pointer to request queue.
name

Name of the probe point
elevator_name

The type of I/O elevator currently enabled.
disk_minor

Disk minor number of request.
rq_flags

Request flags.

Name

probe::ioscheduler.elv_add_request - probe to indicate request is added to the request queue.

Synopsis

ioscheduler.elv_add_request

Values

disk_major

Disk major no of request.
rq

Address of request.
q

Pointer to request queue.
elevator_name

The type of I/O elevator currently enabled.
disk_minor

Disk minor number of request.
rq_flags

Request flags.

Name

probe::ioscheduler_trace.elv_completed_request - Fires when a request is

Synopsis

ioscheduler_trace.elv_completed_request

Values

disk_major

Disk major no of request.
rq

Address of request.
name

Name of the probe point
elevator_name

The type of I/O elevator currently enabled.
disk_minor

Disk minor number of request.
rq_flags

Request flags.

Description

completed.

Name

probe::ioscheduler_trace.elv_issue_request - Fires when a request is

Synopsis

ioscheduler_trace.elv_issue_request

Values

disk_major

Disk major no of request.
rq

Address of request.
name

Name of the probe point
elevator_name

The type of I/O elevator currently enabled.
disk_minor

Disk minor number of request.
rq_flags

Request flags.

Description

scheduled.

Name

probe::ioscheduler_trace.elv_requeue_request - Fires when a request is

Synopsis

ioscheduler_trace.elv_requeue_request

Values

disk_major

Disk major no of request.
rq

Address of request.
name

Name of the probe point
elevator_name

The type of I/O elevator currently enabled.
disk_minor

Disk minor number of request.
rq_flags

Request flags.

Description

put back on the queue, when the hadware cannot accept more requests.

Name

probe::ioscheduler_trace.elv_abort_request - Fires when a request is aborted.

Synopsis

ioscheduler_trace.elv_abort_request

Values

disk_major

Disk major no of request.
rq

Address of request.
name

Name of the probe point
elevator_name

The type of I/O elevator currently enabled.
disk_minor

Disk minor number of request.
rq_flags

Request flags.

Name

probe::ioscheduler_trace.plug - Fires when a request queue is plugged;

Synopsis

ioscheduler_trace.plug

Values

name

Name of the probe point
rq_queue

request queue

Description

ie, requests in the queue cannot be serviced by block driver.

Name

probe::ioscheduler_trace.unplug_io - Fires when a request queue is unplugged;

Synopsis

ioscheduler_trace.unplug_io

Values

name

Name of the probe point
rq_queue

request queue

Description

Either, when number of pending requests in the queue exceeds threshold or, upon expiration of timer that was activated when queue was plugged.

Name

probe::ioscheduler_trace.unplug_timer - Fires when unplug timer associated

Synopsis

ioscheduler_trace.unplug_timer

Values

name

Name of the probe point
rq_queue

request queue

Description

with a request queue expires.

Name

probe::ioblock.request - Fires whenever making a generic block I/O request.

Synopsis

ioblock.request

Values

None

Description

name - name of the probe point devname - block device name ino - i-node number of the mapped file sector - beginning sector for the entire bio flags - see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported

rw - binary trace for read/write request vcnt - bio vector count which represents number of array element (page, offset, length) which make up this I/O request idx - offset into the bio vector array phys_segments - number of segments in this bio after physical address coalescing is performed hw_segments - number of segments after physical and DMA remapping hardware coalescing is performed size - total size in bytes bdev - target block device bdev_contains - points to the device object which contains the partition (when bio structure represents a partition) p_start_sect - points to the start sector of the partition structure of the device

Context

The process makes block I/O request

Name

probe::ioblock.end - Fires whenever a block I/O transfer is complete.

Synopsis

ioblock.end

Values

None

Description

name - name of the probe point devname - block device name ino - i-node number of the mapped file bytes_done - number of bytes transferred sector - beginning sector for the entire bio flags - see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported error - 0 on success rw - binary trace for read/write request vcnt - bio vector count which represents number of array element (page, offset, length) which makes up this I/O request idx - offset into the bio vector array phys_segments - number of segments in this bio after physical address coalescing is performed. hw_segments - number of segments after physical and DMA remapping hardware coalescing is performed size - total size in bytes

Context

The process signals the transfer is done.

Name

probe::ioblock_trace.bounce - Fires whenever a buffer bounce is needed for at least one page of a block IO request.

Synopsis

ioblock_trace.bounce

Values

None

Description

name - name of the probe point q - request queue on which this bio was queued. devname - device for which a buffer bounce was needed. ino - i-node number of the mapped file bytes_done - number of bytes transferred sector - beginning sector for the entire bio flags - see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported rw - binary trace for read/write request vcnt - bio vector count which represents number of array element (page, offset, length) which makes up this I/O request idx - offset into the bio vector array phys_segments - number of segments in this bio after physical address coalescing is performed. size - total size in bytes bdev - target block device bdev_contains - points to the device object which contains the partition (when bio structure represents a partition) p_start_sect - points to the start sector of the partition structure of the device

Context

The process creating a block IO request.

Name

probe::ioblock_trace.request - Fires just as a generic block I/O request is created for a bio.

Synopsis

ioblock_trace.request

Values

None

Description

name - name of the probe point q - request queue on which this bio was queued. devname - block device name ino - i-node number of the mapped file bytes_done - number of bytes transferred sector - beginning sector for the entire bio flags - see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported

rw - binary trace for read/write request vcnt - bio vector count which represents number of array element (page, offset, length) which make up this I/O request idx - offset into the bio vector array phys_segments - number of segments in this bio after physical address coalescing is performed. size - total size in bytes bdev - target block device bdev_contains - points to the device object which contains the partition (when bio structure represents a partition) p_start_sect - points to the start sector of the partition structure of the device

Context

The process makes block I/O request

Name

probe::ioblock_trace.end - Fires whenever a block I/O transfer is complete.

Synopsis

ioblock_trace.end

Values

None

Description

name - name of the probe point q - request queue on which this bio was queued. devname - block device name ino - i-node number of the mapped file bytes_done - number of bytes transferred sector - beginning sector for the entire bio flags - see below BIO_UPTODATE 0 ok after I/O completion BIO_RW_BLOCK 1 RW_AHEAD set, and read/write would block BIO_EOF 2 out-out-bounds error BIO_SEG_VALID 3 nr_hw_seg valid BIO_CLONED 4 doesn't own data BIO_BOUNCED 5 bio is a bounce bio BIO_USER_MAPPED 6 contains user pages BIO_EOPNOTSUPP 7 not supported

rw - binary trace for read/write request vcnt - bio vector count which represents number of array element (page, offset, length) which makes up this I/O request idx - offset into the bio vector array phys_segments - number of segments in this bio after physical address coalescing is performed. size - total size in bytes bdev - target block device bdev_contains - points to the device object which contains the partition (when bio structure represents a partition) p_start_sect - points to the start sector of the partition structure of the device

Context

The process signals the transfer is done.

Chapter 9. SCSI Tapset

probe::scsi.ioentry - Prepares a SCSI mid-layer request
probe::scsi.iodispatching - SCSI mid-layer dispatched low-level SCSI command
probe::scsi.iodone - SCSI command completed by low level driver and enqueued into the done queue.
probe::scsi.iocompleted - SCSI mid-layer running the completion processing for block device I/O requests
probe::scsi.ioexecute - Create mid-layer SCSI request and wait for the result
probe::scsi.set_state - Order SCSI device state change

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

Name

probe::scsi.ioentry - Prepares a SCSI mid-layer request

Synopsis

scsi.ioentry

Values

disk_major

The major number of the disk (-1 if no information)
device_state_str

The current state of the device, as a string
device_state

The current state of the device
req_addr

The current struct request pointer, as a number
disk_minor

The minor number of the disk (-1 if no information)

Name

probe::scsi.iodispatching - SCSI mid-layer dispatched low-level SCSI command

Synopsis

scsi.iodispatching

Values

device_state_str

The current state of the device, as a string
dev_id

The scsi device id
channel

The channel number
data_direction

The data_direction specifies whether this command is from/to the device 0 (DMA_BIDIRECTIONAL), 1 (DMA_TO_DEVICE), 2 (DMA_FROM_DEVICE), 3 (DMA_NONE)
lun

The lun number
request_bufflen

The request buffer length
host_no

The host number
device_state

The current state of the device
data_direction_str

Data direction, as a string
req_addr

The current struct request pointer, as a number
request_buffer

The request buffer address

Name

probe::scsi.iodone - SCSI command completed by low level driver and enqueued into the done queue.

Synopsis

scsi.iodone

Values

device_state_str

The current state of the device, as a string
dev_id

The scsi device id
channel

The channel number
data_direction

The data_direction specifies whether this command is from/to the device.
lun

The lun number
host_no

The host number
data_direction_str

Data direction, as a string
device_state

The current state of the device
scsi_timer_pending

1 if a timer is pending on this request
req_addr

The current struct request pointer, as a number

Name

probe::scsi.iocompleted - SCSI mid-layer running the completion processing for block device I/O requests

Synopsis

scsi.iocompleted

Values

device_state_str

The current state of the device, as a string
dev_id

The scsi device id
channel

The channel number
data_direction

The data_direction specifies whether this command is from/to the device
lun

The lun number
host_no

The host number
data_direction_str

Data direction, as a string
device_state

The current state of the device
req_addr

The current struct request pointer, as a number
goodbytes

The bytes completed

Name

probe::scsi.ioexecute - Create mid-layer SCSI request and wait for the result

Synopsis

scsi.ioexecute

Values

retries

Number of times to retry request
device_state_str

The current state of the device, as a string
dev_id

The scsi device id
channel

The channel number
data_direction

The data_direction specifies whether this command is from/to the device.
lun

The lun number
timeout

Request timeout in seconds
request_bufflen

The data buffer buffer length
host_no

The host number
data_direction_str

Data direction, as a string
device_state

The current state of the device
request_buffer

The data buffer address

Name

probe::scsi.set_state - Order SCSI device state change

Synopsis

scsi.set_state

Values

state_str

The new state of the device, as a string
dev_id

The scsi device id
channel

The channel number
state

The new state of the device
old_state_str

The current state of the device, as a string
lun

The lun number
old_state

The current state of the device
host_no

The host number

Chapter 10. TTY Tapset

probe::tty.open - Called when a tty is opened
probe::tty.release - Called when the tty is closed
probe::tty.resize - Called when a terminal resize happens
probe::tty.ioctl - called when a ioctl is request to the tty
probe::tty.init - Called when a tty is being initalized
probe::tty.register - Called when a tty device is registred
probe::tty.unregister - Called when a tty device is being unregistered
probe::tty.poll - Called when a tty device is being polled
probe::tty.receive - called when a tty receives a message
probe::tty.write - write to the tty line
probe::tty.read - called when a tty line will be read

This family of probe points is used to probe TTY (Teletype) activities. It contains the following probe points:

Name

probe::tty.open - Called when a tty is opened

Synopsis

tty.open

Values

inode_state

the inode state
file_name

the file name
file_mode

the file mode
file_flags

the file flags
inode_number

the inode number
inode_flags

the inode flags

Name

probe::tty.release - Called when the tty is closed

Synopsis

tty.release

Values

inode_state

the inode state
file_name

the file name
file_mode

the file mode
file_flags

the file flags
inode_number

the inode number
inode_flags

the inode flags

Name

probe::tty.resize - Called when a terminal resize happens

Synopsis

tty.resize

Values

new_ypixel

the new ypixel value
old_col

the old col value
old_xpixel

the old xpixel
old_ypixel

the old ypixel
name

the tty name
old_row

the old row value
new_row

the new row value
new_xpixel

the new xpixel value
new_col

the new col value

Name

probe::tty.ioctl - called when a ioctl is request to the tty

Synopsis

tty.ioctl

Values

cmd

the ioctl command
arg

the ioctl argument
name

the file name

Name

probe::tty.init - Called when a tty is being initalized

Synopsis

tty.init

Values

driver_name

the driver name
name

the driver .dev_name name
module

the module name

Name

probe::tty.register - Called when a tty device is registred

Synopsis

tty.register

Values

driver_name

the driver name
name

the driver .dev_name name
index

the tty index requested
module

the module name

Name

probe::tty.unregister - Called when a tty device is being unregistered

Synopsis

tty.unregister

Values

driver_name

the driver name
name

the driver .dev_name name
index

the tty index requested
module

the module name

Name

probe::tty.poll - Called when a tty device is being polled

Synopsis

tty.poll

Values

file_name

the tty file name
wait_key

the wait queue key

Name

probe::tty.receive - called when a tty receives a message

Synopsis

tty.receive

Values

driver_name

the driver name
count

The amount of characters received
name

the name of the module file
fp

The flag buffer
cp

the buffer that was received
index

The tty Index
id

the tty id

Name

probe::tty.write - write to the tty line

Synopsis

tty.write

Values

driver_name

the driver name
buffer

the buffer that will be written
file_name

the file name lreated to the tty
nr

The amount of characters

Name

probe::tty.read - called when a tty line will be read

Synopsis

tty.read

Values

driver_name

the driver name
buffer

the buffer that will receive the characters
file_name

the file name lreated to the tty
nr

The amount of characters to be read
(Sebelumnya) 22 : Chapter 3. Context Functi ...22 : Chapter 11. Networking Ta ... (Berikutnya)