Commit Message

On Tue, 2013-05-28 at 14:18 +0200, Paolo Bonzini wrote:
> Il 28/05/2013 14:09, Alon Levy ha scritto:> >>> + --probe-prefix=qemu.local \> >>> >> Why change the prefix?> > > > It was one way to verify I was using the correct file. I'll change it> > back.> > > > But in general does it make sense for you to have this in addition to> > the existing stp file?> > I think it does (with the same prefix so that you can share the> scripts). But I'm not sure how you'd use it. :) Can you show an> example and also put it in the commit message?
I though it would be useful to have a bunch of scripts for developers. I
have the following (didn't fix yet to use the same prefix):
> > Paolo> >

Il 28/05/2013 15:57, Alon Levy ha scritto:
> On Tue, 2013-05-28 at 09:25 -0400, Alon Levy wrote:>>> Il 28/05/2013 14:33, Alon Levy ha scritto:>>>> On Tue, 2013-05-28 at 14:18 +0200, Paolo Bonzini wrote:>>>>> Il 28/05/2013 14:09, Alon Levy ha scritto:>>>>>>>> + --probe-prefix=qemu.local \>>>>>>>>>>>>>> Why change the prefix?> > Actually the problem is having two stp files (qemu-system-x86_64.stp &> qemu-system-x86_64.local.stp) in the same directory providing the same> probes is not workable with stap. In pass 2 it doesn't have any specific> order of going through the directory. Solutions> 1. have a different prefix> 2. introduce another subdirectory> x86_64-softmmu/local.stp/qemu-system-x86_64.stp
Ah... that's a bit ugly. What about changing the name of the
"installed" .stp file, for example
x86_64-softmmu/qemu-system-x86_64.stp-installed and renaming it at "make
install" time? The local file instead is built as
x86_64-softmmu/qemu-system-x86_64.stp and is the only one that -I finds.
Paolo
> >>>>>>>>>>>> It was one way to verify I was using the correct file. I'll change it>>>>>> back.>>>>>>>>>>>> But in general does it make sense for you to have this in addition to>>>>>> the existing stp file?>>>>>>>>>> I think it does (with the same prefix so that you can share the>>>>> scripts). But I'm not sure how you'd use it. :) Can you show an>>>>> example and also put it in the commit message?>>>>>>>> I though it would be useful to have a bunch of scripts for developers. I>>>> have the following (didn't fix yet to use the same prefix):>>>>>> Ok, so it's just a matter of using the -I option to stap. That's the>>> bit that has to be in the commit message.>>>> Yes. Note that you add a directory, not a file. The only sure way to notice which hooks were used I found is looking at the generated c file.>>>>>>>> Thanks!>>>>>> Paolo>>>>>>> diff --git a/scripts/stap-qxl-generic b/scripts/stap-qxl-generic>>>> new file mode 100755>>>> index 0000000..1c21911>>>> --- /dev/null>>>> +++ b/scripts/stap-qxl-generic>>>> @@ -0,0 +1,4 @@>>>> +#!/bin/bash -x>>>> +STP=$0.stp>>>> +ROOT=`dirname $0`/../>>>> +sudo stap -v -I $ROOT/x86_64-softmmu $STP>>>> diff --git a/scripts/stap-qxl-generic.stp b/scripts/stap-qxl-generic.stp>>>> new file mode 100644>>>> index 0000000..e201e69>>>> --- /dev/null>>>> +++ b/scripts/stap-qxl-generic.stp>>>> @@ -0,0 +1,24 @@>>>> +probe begin { printf("starting qxl generic probe\n") }>>>> +>>>> +global call, threads>>>> +>>>> +probe qemu.local.qxl* {>>>> + //printf("%d: %s: %s\n", tid(), pp(), $$vars)>>>> + //print_ubacktrace()>>>> + call[tid(), probefunc()] <<< 1>>>> + threads[tid()] <<< 1>>>> +}>>>> +>>>> +probe timer.s(%( $# > 0 %? $1 %: 5 %)) {>>>> + ansi_clear_screen()>>>> + printf("%10s %45s %s\n", "TID", "", "HITS");>>>> + foreach([t] in threads-) {>>>> + printf("%10d %45s %d\n", t, "", @count(threads[t]));>>>> + }>>>> + printf("%10s %45s %s\n",>>>> + "TID", "CALL", "HITS")>>>> + foreach([tid, name] in call-) {>>>> + printf("%10d %45s %d\n", tid, name,>>>> + @count(call[tid, name]))>>>> + }>>>> +}>>>>>>>>>>>>>>>>>> Paolo>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >