From deb635455c042a10cc74a45c9ef02458d890946f Mon Sep 17 00:00:00 2001 From: William Cohen Date: Fri, 17 Jul 2009 15:18:51 -0400 Subject: Add chng_cpu.stp and migrate.stp examples. --- testsuite/systemtap.examples/process/chng_cpu.stp | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 testsuite/systemtap.examples/process/chng_cpu.stp (limited to 'testsuite/systemtap.examples/process/chng_cpu.stp') 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 + * 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(); + } +} -- cgit