diff options
author | Alon Levy <alevy@redhat.com> | 2012-09-10 00:22:03 +0300 |
---|---|---|
committer | Alon Levy <alevy@redhat.com> | 2012-09-10 00:22:03 +0300 |
commit | f00f01f889461f9f8516b00859bf27b2fc9a57b8 (patch) | |
tree | 863a9cc9411a8ecc538ed6e463054765c5e102dd /stp | |
parent | 720738f07ca11465519dcce266e70c173642763f (diff) |
working old version (complex client_monitors_config solution)
Diffstat (limited to 'stp')
-rwxr-xr-x | stp/qxl_monitors_config.sh | 5 | ||||
-rw-r--r-- | stp/qxl_monitors_config.stp | 90 | ||||
-rwxr-xr-x | stp/rhel6_qxl_monitors_config.sh | 5 |
3 files changed, 93 insertions, 7 deletions
diff --git a/stp/qxl_monitors_config.sh b/stp/qxl_monitors_config.sh new file mode 100755 index 0000000..1ab005a --- /dev/null +++ b/stp/qxl_monitors_config.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# /home/alon/spice/rhel6/share/systemtap/tapset/qemu-system-x86_64.stp + +sudo stap -v -s1 -I/home/alon/spice/upstream/share/systemtap/tapset -I/home/alon/spice/rhel6/share/systemtap/tapset/ qxl_monitors_config.stp diff --git a/stp/qxl_monitors_config.stp b/stp/qxl_monitors_config.stp index 627739e..bc5e014 100644 --- a/stp/qxl_monitors_config.stp +++ b/stp/qxl_monitors_config.stp @@ -4,6 +4,92 @@ probe qemu.system.x86_64.qxl* { } */ -probe qemu.kvm.qxl_spice_monitors_config { - printf("[%d]%s(%d): %p\n", pid(), $$name, id, monitors_config); +probe + qemu.system.x86_64.qxl_spice_monitors_config, + qemu.system.x86_64.qxl_io_client_monitors_config_done, + qemu.system.x86_64.qxl_io_features_set +{ + printf("[%d]%s(%d)\n", pid(), $$name, qid); +} + +probe qemu.system.x86_64.qxl_io_read_client_monitors_config_num { + printf("[%d]%s(%d)\n", pid(), $$name, qid); +} + + +probe qemu.system.x86_64.qxl_io_update_monitors_config_from_client { + printf("[%d]%s(%d) %d %dx%d+%d+%d\n", pid(), $$name, qid, heads, + width, height, x, y); +} + +probe qemu.system.x86_64.qxl_clients_monitors_config_unsupported_by_guest, + qemu.system.x86_64.qxl_interrupt_client_monitors_config +{ + printf("[%d]%s %p\n", pid(), $$name, client_monitors_config); +// TODO: How to get this as VDAgentMonitorsConfig* +/* + for (i = 0 ; i < $client_monitors_config->num_of_monitors ; ++i) { + printf(" %dx%d+%d+%d\n", + $client_monitors_config->monitors[i]->width, + $client_monitors_config->monitors[i]->height, + $client_monitors_config->monitors[i]->x, + $client_monitors_config->monitors[i]->y); + } +*/ +} + +probe process("/home/alon/spice/rhel6/lib/libspice-server.so.1.3.0").function("red_worker_push_monitors_config") { + printf("[%d]spice red_worker_push_monitors_config: %d\n", pid(), + $worker->monitors_config->count); + for (i = 0 ; i < $worker->monitors_config->count ; ++i) { + printf(" %dx%d+%d+%d\n", + $worker->monitors_config->heads[i]->width, + $worker->monitors_config->heads[i]->height, + $worker->monitors_config->heads[i]->x, + $worker->monitors_config->heads[i]->y); + } +} + +probe process("/home/alon/spice/upstream/lib/libspice-server.so.1.4.0").function("red_marshall_monitors_config") +{ + printf("[%d]spice red_marshall_monitors_config: %d\n", pid(), + $monitors_config->count); + for (i = 0 ; i < $monitors_config->count ; ++i) { + printf(" %dx%d+%d+%d\n", + $monitors_config->heads[i]->width, + $monitors_config->heads[i]->height, + $monitors_config->heads[i]->x, + $monitors_config->heads[i]->y); + } +} + +/* +probe process("/home/alon/spice/rhel6/lib/libspice-server.so.1.3.0").function("spice_marshall_msg_display_monitors_config") { + printf("[%d]spice spice_marshall_msg_display_monitors_config: %p\n", pid(), + $msg); +} +*/ + +/* +probe process("/home/alon/spice/rhel6/lib/libspice-server.so.1.3.0").mark("red_marshall_monitors_config") { + printf("[%d]spice (mark) %s: %d\n", pid(), $$name, $monitors_config->count); + for (i = 0 ; i < $monitors_config->count ; ++i) { + printf(" %dx%d+%d+%d\n", + $monitors_config->heads[i]->width, + $monitors_config->heads[i]->height, + $monitors_config->heads[i]->x, + $monitors_config->heads[i]->y); + } +} +*/ + +probe process("/home/alon/spice/upstream/lib/libspice-server.so.1.4.0").function("red_dispatcher_client_monitors_config") { + printf("[%d]red_dispatcher_client_monitors_config\n", pid()); + for (i = 0 ; i < $monitors_config->num_of_monitors ; ++i) { + printf(" %dx%d+%d+%d\n", + $monitors_config->monitors[i]->width, + $monitors_config->monitors[i]->height, + $monitors_config->monitors[i]->x, + $monitors_config->monitors[i]->y); + } } diff --git a/stp/rhel6_qxl_monitors_config.sh b/stp/rhel6_qxl_monitors_config.sh deleted file mode 100755 index a61d919..0000000 --- a/stp/rhel6_qxl_monitors_config.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# /home/alon/spice/rhel6/share/systemtap/tapset/qemu-system-x86_64.stp - -sudo stap -I/home/alon/spice/rhel6/share/systemtap/tapset/ qxl_monitors_config.stp |