diff options
author | William Cohen <wcohen@redhat.com> | 2009-07-17 15:18:51 -0400 |
---|---|---|
committer | William Cohen <wcohen@redhat.com> | 2009-07-17 15:18:51 -0400 |
commit | deb635455c042a10cc74a45c9ef02458d890946f (patch) | |
tree | 576daa83bb6c72a98e1130965b156d4f6cc4d2a8 /testsuite/systemtap.examples/process | |
parent | 4bb6522cf62ade81ebdf578d187c93e5880e18be (diff) | |
download | systemtap-steved-deb635455c042a10cc74a45c9ef02458d890946f.tar.gz systemtap-steved-deb635455c042a10cc74a45c9ef02458d890946f.tar.xz systemtap-steved-deb635455c042a10cc74a45c9ef02458d890946f.zip |
Add chng_cpu.stp and migrate.stp examples.
Diffstat (limited to 'testsuite/systemtap.examples/process')
-rw-r--r-- | testsuite/systemtap.examples/process/chng_cpu.meta | 14 | ||||
-rwxr-xr-x | testsuite/systemtap.examples/process/chng_cpu.stp | 31 | ||||
-rw-r--r-- | testsuite/systemtap.examples/process/migrate.meta | 14 | ||||
-rwxr-xr-x | testsuite/systemtap.examples/process/migrate.stp | 27 |
4 files changed, 86 insertions, 0 deletions
diff --git a/testsuite/systemtap.examples/process/chng_cpu.meta b/testsuite/systemtap.examples/process/chng_cpu.meta new file mode 100644 index 00000000..944f417a --- /dev/null +++ b/testsuite/systemtap.examples/process/chng_cpu.meta @@ -0,0 +1,14 @@ +title: Monitor Changes in Processor Executing a Task +name: chng_cpu.stp +version: 1.0 +author: Ankita Garg at IBM +keywords: scheduler +subsystem: scheduler +status: production +exit: user-controlled +output: trace +scope: pid +description: The chng_cpu.stp script takes an argument which is the executable name of the task it should monitor. Each time a task with that executable name is found running on a different processor, the script prints out the thread id (tid), the executable name, the processor now running the task, the thread state, and a backtrace showing the kernel functions that triggered the running of the task on the processor. +arg_1: The name of the executable to monitor +test_check: stap -p4 chng_cpu.stp bash +test_installcheck: stap chng_cpu.stp -c "sleep 1" bash diff --git a/testsuite/systemtap.examples/process/chng_cpu.stp b/testsuite/systemtap.examples/process/chng_cpu.stp new file mode 100755 index 00000000..5617ec03 --- /dev/null +++ b/testsuite/systemtap.examples/process/chng_cpu.stp @@ -0,0 +1,31 @@ +#! /usr/bin/env stap +/* Filename: chng_cpu.stp + * Author: Ankita Garg <ankita@in.ibm.com> + * Description: Captures information on the number of times an executable + * switches cpu + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Copyright (C) IBM Corp. 2009. All Rights Reserved. + * + */ + +global threads + +probe scheduler.cpu_on +{ + if ((threads[tid()] != cpu() && (execname() == @1))) { + printf("\nthread %d (%s) context switched on cpu%d state: %d\n", + tid(), execname(), cpu(), task_state(task_current())); + print_stack(backtrace()); + threads[tid()] = cpu(); + } +} diff --git a/testsuite/systemtap.examples/process/migrate.meta b/testsuite/systemtap.examples/process/migrate.meta new file mode 100644 index 00000000..09a25de0 --- /dev/null +++ b/testsuite/systemtap.examples/process/migrate.meta @@ -0,0 +1,14 @@ +title: Track the Migration of Specific Executables +name: migrate.stp +version: 1.0 +author: Ankita Garg at IBM +keywords: scheduler +subsystem: scheduler +status: production +exit: user-controlled +output: trace +scope: pid +description: The migrate.stp script takes an argument which is the executable name of the task it should monitor. Each time a task with that executable name migrates between processors an entry is printed with the process id (pid), the executable name, the processor off loading the task, and the process taking the task. Note that the task may or may not be executing at the time of the migration. +arg_1: The name of the executable to watch +test_check: stap -p4 migrate.stp bash +test_installcheck: stap migrate.stp -c "sleep 1" bash diff --git a/testsuite/systemtap.examples/process/migrate.stp b/testsuite/systemtap.examples/process/migrate.stp new file mode 100755 index 00000000..601938f8 --- /dev/null +++ b/testsuite/systemtap.examples/process/migrate.stp @@ -0,0 +1,27 @@ +#! /usr/bin/env stap +/* Filename: migrate.stp + * Author: Ankita Garg <ankita@in.ibm.com> + * Description: Captures information on the migration of a thread + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * Copyright (C) IBM Corp. 2009. All Rights Reserved. + * +*/ + +probe kernel.function("__migrate_task") +{ + comm = kernel_string($p->comm); + if (comm == @1) { + printf ("thread %d (%s) is migrating from %d to %d \n", + $p->pid, comm, $src_cpu, $dest_cpu); + } +} |