vm_tools: sommelier: Add some simple surface tracing.
BUG=b:171318722
TEST=sommelier --trace-filename=/tmp/trace.pftrace -X xterm &; kill -USR1 %1
Change-Id: Ie4a59b92e60b7676176b5d7e120c48d345237dd3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform2/+/2476815
Tested-by: David Riley <davidriley@chromium.org>
Commit-Queue: David Riley <davidriley@chromium.org>
Reviewed-by: Fergus Dall <sidereal@google.com>
diff --git a/vm_tools/sommelier/sommelier-compositor.cc b/vm_tools/sommelier/sommelier-compositor.cc
index 86f08e1..61cbe7f 100644
--- a/vm_tools/sommelier/sommelier-compositor.cc
+++ b/vm_tools/sommelier/sommelier-compositor.cc
@@ -2,7 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "sommelier.h" // NOLINT(build/include_directory)
+#include "sommelier.h" // NOLINT(build/include_directory)
+#include "sommelier-tracing.h" // NOLINT(build/include_directory)
#include <assert.h>
#include <errno.h>
@@ -138,6 +139,7 @@
}
static void sl_output_buffer_release(void* data, struct wl_buffer* buffer) {
+ TRACE_EVENT("surface", "sl_output_buffer_release");
struct sl_output_buffer* output_buffer =
static_cast<sl_output_buffer*>(wl_buffer_get_user_data(buffer));
struct sl_host_surface* host_surface = output_buffer->surface;
@@ -476,6 +478,8 @@
struct sl_viewport* viewport = NULL;
struct sl_window* window;
+ TRACE_EVENT("surface", "sl_host_surface_commit");
+
if (!wl_list_empty(&host->contents_viewport))
viewport = wl_container_of(host->contents_viewport.next, viewport, link);
@@ -645,8 +649,10 @@
}
if (host->contents_shm_mmap) {
- if (host->contents_shm_mmap->buffer_resource)
+ if (host->contents_shm_mmap->buffer_resource) {
+ TRACE_EVENT("surface", "sl_host_surface_commit wl_buffer_send_release");
wl_buffer_send_release(host->contents_shm_mmap->buffer_resource);
+ }
sl_mmap_unref(host->contents_shm_mmap);
host->contents_shm_mmap = NULL;
}
diff --git a/vm_tools/sommelier/sommelier.cc b/vm_tools/sommelier/sommelier.cc
index 629dd0f..dc8ab11 100644
--- a/vm_tools/sommelier/sommelier.cc
+++ b/vm_tools/sommelier/sommelier.cc
@@ -844,6 +844,8 @@
sl_host_buffer_destroy};
static void sl_buffer_release(void* data, struct wl_buffer* buffer) {
+ TRACE_EVENT("surface", "sl_buffer_release");
+
struct sl_host_buffer* host =
static_cast<sl_host_buffer*>(wl_buffer_get_user_data(buffer));