summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2012-09-10 00:22:03 +0300
committerAlon Levy <alevy@redhat.com>2012-09-10 00:22:03 +0300
commitf00f01f889461f9f8516b00859bf27b2fc9a57b8 (patch)
tree863a9cc9411a8ecc538ed6e463054765c5e102dd
parent720738f07ca11465519dcce266e70c173642763f (diff)
working old version (complex client_monitors_config solution)
-rwxr-xr-xstp/qxl_monitors_config.sh5
-rw-r--r--stp/qxl_monitors_config.stp90
-rwxr-xr-xstp/rhel6_qxl_monitors_config.sh5
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