[Tracing] Add proto configuration for the ETW proto.
This is the follow up CL to adding the ETW proto. This adds the necessary config to Perfetto.
In upcoming CLs:
- Support ETW context switch in trace processor
- Display ETW context switch in UI
Bug: 303263148
Change-Id: I5075c9f3287aa95e90265d2b71e468e0d5fdb960
diff --git a/Android.bp b/Android.bp
index 3e523f5..c2a5340 100644
--- a/Android.bp
+++ b/Android.bp
@@ -37,6 +37,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -124,6 +126,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -305,6 +309,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -401,6 +407,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -510,6 +518,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -616,6 +626,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -754,6 +766,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -839,6 +853,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -925,6 +941,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -1014,6 +1032,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -1067,6 +1087,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -1148,6 +1170,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -1226,6 +1250,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -1316,6 +1342,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -1448,6 +1476,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -1519,6 +1549,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -1614,6 +1646,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -1732,6 +1766,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -1803,6 +1839,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -2113,6 +2151,9 @@
":perfetto_protos_perfetto_config_android_lite_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_lite_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_lite_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
@@ -2387,6 +2428,9 @@
"perfetto_protos_perfetto_config_android_lite_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_lite_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
@@ -3010,6 +3054,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -3045,6 +3090,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -3109,6 +3155,7 @@
"protos/perfetto/config/chrome/chrome_config.proto",
"protos/perfetto/config/chrome/scenario_config.proto",
"protos/perfetto/config/data_source_config.proto",
+ "protos/perfetto/config/etw/etw_config.proto",
"protos/perfetto/config/ftrace/ftrace_config.proto",
"protos/perfetto/config/gpu/gpu_counter_config.proto",
"protos/perfetto/config/gpu/vulkan_memory_config.proto",
@@ -3138,6 +3185,136 @@
],
}
+// GN: //protos/perfetto/config/etw:cpp
+filegroup {
+ name: "perfetto_protos_perfetto_config_etw_cpp",
+ srcs: [
+ "protos/perfetto/config/etw/etw_config.proto",
+ ],
+}
+
+// GN: //protos/perfetto/config/etw:cpp
+genrule {
+ name: "perfetto_protos_perfetto_config_etw_cpp_gen",
+ srcs: [
+ ":perfetto_protos_perfetto_config_etw_cpp",
+ ],
+ tools: [
+ "aprotoc",
+ "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_config_etw_cpp)",
+ out: [
+ "external/perfetto/protos/perfetto/config/etw/etw_config.gen.cc",
+ ],
+}
+
+// GN: //protos/perfetto/config/etw:cpp
+genrule {
+ name: "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ srcs: [
+ ":perfetto_protos_perfetto_config_etw_cpp",
+ ],
+ tools: [
+ "aprotoc",
+ "perfetto_src_protozero_protoc_plugin_cppgen_plugin",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_config_etw_cpp)",
+ out: [
+ "external/perfetto/protos/perfetto/config/etw/etw_config.gen.h",
+ ],
+ export_include_dirs: [
+ ".",
+ "protos",
+ ],
+}
+
+// GN: //protos/perfetto/config/etw:lite
+filegroup {
+ name: "perfetto_protos_perfetto_config_etw_lite",
+ srcs: [
+ "protos/perfetto/config/etw/etw_config.proto",
+ ],
+}
+
+// GN: //protos/perfetto/config/etw:lite
+genrule {
+ name: "perfetto_protos_perfetto_config_etw_lite_gen",
+ srcs: [
+ ":perfetto_protos_perfetto_config_etw_lite",
+ ],
+ tools: [
+ "aprotoc",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_config_etw_lite)",
+ out: [
+ "external/perfetto/protos/perfetto/config/etw/etw_config.pb.cc",
+ ],
+}
+
+// GN: //protos/perfetto/config/etw:lite
+genrule {
+ name: "perfetto_protos_perfetto_config_etw_lite_gen_headers",
+ srcs: [
+ ":perfetto_protos_perfetto_config_etw_lite",
+ ],
+ tools: [
+ "aprotoc",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_config_etw_lite)",
+ out: [
+ "external/perfetto/protos/perfetto/config/etw/etw_config.pb.h",
+ ],
+ export_include_dirs: [
+ ".",
+ "protos",
+ ],
+}
+
+// GN: //protos/perfetto/config/etw:zero
+filegroup {
+ name: "perfetto_protos_perfetto_config_etw_zero",
+ srcs: [
+ "protos/perfetto/config/etw/etw_config.proto",
+ ],
+}
+
+// GN: //protos/perfetto/config/etw:zero
+genrule {
+ name: "perfetto_protos_perfetto_config_etw_zero_gen",
+ srcs: [
+ ":perfetto_protos_perfetto_config_etw_zero",
+ ],
+ tools: [
+ "aprotoc",
+ "protozero_plugin",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_config_etw_zero)",
+ out: [
+ "external/perfetto/protos/perfetto/config/etw/etw_config.pbzero.cc",
+ ],
+}
+
+// GN: //protos/perfetto/config/etw:zero
+genrule {
+ name: "perfetto_protos_perfetto_config_etw_zero_gen_headers",
+ srcs: [
+ ":perfetto_protos_perfetto_config_etw_zero",
+ ],
+ tools: [
+ "aprotoc",
+ "protozero_plugin",
+ ],
+ cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(locations :perfetto_protos_perfetto_config_etw_zero)",
+ out: [
+ "external/perfetto/protos/perfetto/config/etw/etw_config.pbzero.h",
+ ],
+ export_include_dirs: [
+ ".",
+ "protos",
+ ],
+}
+
// GN: //protos/perfetto/config/ftrace:cpp
filegroup {
name: "perfetto_protos_perfetto_config_ftrace_cpp",
@@ -3693,6 +3870,7 @@
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_config_android_lite",
+ ":perfetto_protos_perfetto_config_etw_lite",
":perfetto_protos_perfetto_config_ftrace_lite",
":perfetto_protos_perfetto_config_gpu_lite",
":perfetto_protos_perfetto_config_inode_file_lite",
@@ -3727,6 +3905,7 @@
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_config_android_lite",
+ ":perfetto_protos_perfetto_config_etw_lite",
":perfetto_protos_perfetto_config_ftrace_lite",
":perfetto_protos_perfetto_config_gpu_lite",
":perfetto_protos_perfetto_config_inode_file_lite",
@@ -4734,6 +4913,7 @@
srcs: [
":perfetto_protos_perfetto_common_zero",
":perfetto_protos_perfetto_config_android_zero",
+ ":perfetto_protos_perfetto_config_etw_zero",
":perfetto_protos_perfetto_config_ftrace_zero",
":perfetto_protos_perfetto_config_gpu_zero",
":perfetto_protos_perfetto_config_inode_file_zero",
@@ -4769,6 +4949,7 @@
srcs: [
":perfetto_protos_perfetto_common_zero",
":perfetto_protos_perfetto_config_android_zero",
+ ":perfetto_protos_perfetto_config_etw_zero",
":perfetto_protos_perfetto_config_ftrace_zero",
":perfetto_protos_perfetto_config_gpu_zero",
":perfetto_protos_perfetto_config_inode_file_zero",
@@ -4818,6 +4999,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -4849,6 +5031,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -4893,6 +5076,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -4926,6 +5110,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -5676,6 +5861,7 @@
"protos/perfetto/config/chrome/chrome_config.proto",
"protos/perfetto/config/chrome/scenario_config.proto",
"protos/perfetto/config/data_source_config.proto",
+ "protos/perfetto/config/etw/etw_config.proto",
"protos/perfetto/config/ftrace/ftrace_config.proto",
"protos/perfetto/config/gpu/gpu_counter_config.proto",
"protos/perfetto/config/gpu/vulkan_memory_config.proto",
@@ -7197,6 +7383,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -7230,6 +7417,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -7277,6 +7465,7 @@
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_config_android_lite",
+ ":perfetto_protos_perfetto_config_etw_lite",
":perfetto_protos_perfetto_config_ftrace_lite",
":perfetto_protos_perfetto_config_gpu_lite",
":perfetto_protos_perfetto_config_inode_file_lite",
@@ -7309,6 +7498,7 @@
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_config_android_lite",
+ ":perfetto_protos_perfetto_config_etw_lite",
":perfetto_protos_perfetto_config_ftrace_lite",
":perfetto_protos_perfetto_config_gpu_lite",
":perfetto_protos_perfetto_config_inode_file_lite",
@@ -7356,6 +7546,7 @@
srcs: [
":perfetto_protos_perfetto_common_zero",
":perfetto_protos_perfetto_config_android_zero",
+ ":perfetto_protos_perfetto_config_etw_zero",
":perfetto_protos_perfetto_config_ftrace_zero",
":perfetto_protos_perfetto_config_gpu_zero",
":perfetto_protos_perfetto_config_inode_file_zero",
@@ -7389,6 +7580,7 @@
srcs: [
":perfetto_protos_perfetto_common_zero",
":perfetto_protos_perfetto_config_android_zero",
+ ":perfetto_protos_perfetto_config_etw_zero",
":perfetto_protos_perfetto_config_ftrace_zero",
":perfetto_protos_perfetto_config_gpu_zero",
":perfetto_protos_perfetto_config_inode_file_zero",
@@ -7442,6 +7634,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -7496,6 +7689,7 @@
":perfetto_protos_perfetto_common_cpp",
":perfetto_protos_perfetto_config_android_cpp",
":perfetto_protos_perfetto_config_cpp",
+ ":perfetto_protos_perfetto_config_etw_cpp",
":perfetto_protos_perfetto_config_ftrace_cpp",
":perfetto_protos_perfetto_config_gpu_cpp",
":perfetto_protos_perfetto_config_inode_file_cpp",
@@ -7568,6 +7762,7 @@
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_config_android_lite",
+ ":perfetto_protos_perfetto_config_etw_lite",
":perfetto_protos_perfetto_config_ftrace_lite",
":perfetto_protos_perfetto_config_gpu_lite",
":perfetto_protos_perfetto_config_inode_file_lite",
@@ -7621,6 +7816,7 @@
srcs: [
":perfetto_protos_perfetto_common_lite",
":perfetto_protos_perfetto_config_android_lite",
+ ":perfetto_protos_perfetto_config_etw_lite",
":perfetto_protos_perfetto_config_ftrace_lite",
":perfetto_protos_perfetto_config_gpu_lite",
":perfetto_protos_perfetto_config_inode_file_lite",
@@ -7693,6 +7889,7 @@
srcs: [
":perfetto_protos_perfetto_common_zero",
":perfetto_protos_perfetto_config_android_zero",
+ ":perfetto_protos_perfetto_config_etw_zero",
":perfetto_protos_perfetto_config_ftrace_zero",
":perfetto_protos_perfetto_config_gpu_zero",
":perfetto_protos_perfetto_config_inode_file_zero",
@@ -7747,6 +7944,7 @@
srcs: [
":perfetto_protos_perfetto_common_zero",
":perfetto_protos_perfetto_config_android_zero",
+ ":perfetto_protos_perfetto_config_etw_zero",
":perfetto_protos_perfetto_config_ftrace_zero",
":perfetto_protos_perfetto_config_gpu_zero",
":perfetto_protos_perfetto_config_inode_file_zero",
@@ -13093,6 +13291,7 @@
"protos/perfetto/config/chrome/chrome_config.proto",
"protos/perfetto/config/chrome/scenario_config.proto",
"protos/perfetto/config/data_source_config.proto",
+ "protos/perfetto/config/etw/etw_config.proto",
"protos/perfetto/config/ftrace/ftrace_config.proto",
"protos/perfetto/config/gpu/gpu_counter_config.proto",
"protos/perfetto/config/gpu/vulkan_memory_config.proto",
@@ -13274,6 +13473,7 @@
srcs: [
":perfetto_protos_perfetto_common_lite_gen",
":perfetto_protos_perfetto_config_android_lite_gen",
+ ":perfetto_protos_perfetto_config_etw_lite_gen",
":perfetto_protos_perfetto_config_ftrace_lite_gen",
":perfetto_protos_perfetto_config_gpu_lite_gen",
":perfetto_protos_perfetto_config_inode_file_lite_gen",
@@ -13312,6 +13512,7 @@
generated_headers: [
"perfetto_protos_perfetto_common_lite_gen_headers",
"perfetto_protos_perfetto_config_android_lite_gen_headers",
+ "perfetto_protos_perfetto_config_etw_lite_gen_headers",
"perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
"perfetto_protos_perfetto_config_gpu_lite_gen_headers",
"perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
@@ -13346,6 +13547,7 @@
export_generated_headers: [
"perfetto_protos_perfetto_common_lite_gen_headers",
"perfetto_protos_perfetto_config_android_lite_gen_headers",
+ "perfetto_protos_perfetto_config_etw_lite_gen_headers",
"perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
"perfetto_protos_perfetto_config_gpu_lite_gen_headers",
"perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
@@ -13433,6 +13635,9 @@
":perfetto_protos_perfetto_config_android_lite_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_lite_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_lite_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
@@ -13786,6 +13991,9 @@
"perfetto_protos_perfetto_config_android_lite_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_lite_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
@@ -13966,6 +14174,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -14091,6 +14301,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -14162,6 +14374,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -14279,6 +14493,7 @@
":perfetto_include_perfetto_trace_processor_trace_processor",
":perfetto_protos_perfetto_common_zero_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_zero_gen",
":perfetto_protos_perfetto_config_inode_file_zero_gen",
@@ -14397,6 +14612,7 @@
generated_headers: [
"perfetto_protos_perfetto_common_zero_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_zero_gen_headers",
"perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
@@ -14515,6 +14731,7 @@
":perfetto_include_perfetto_trace_processor_trace_processor",
":perfetto_protos_perfetto_common_zero_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_zero_gen",
":perfetto_protos_perfetto_config_inode_file_zero_gen",
@@ -14634,6 +14851,7 @@
generated_headers: [
"perfetto_protos_perfetto_common_zero_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_zero_gen_headers",
"perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
@@ -14748,6 +14966,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -14847,6 +15067,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
@@ -14955,6 +15177,8 @@
":perfetto_protos_perfetto_config_android_cpp_gen",
":perfetto_protos_perfetto_config_android_zero_gen",
":perfetto_protos_perfetto_config_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_cpp_gen",
+ ":perfetto_protos_perfetto_config_etw_zero_gen",
":perfetto_protos_perfetto_config_ftrace_cpp_gen",
":perfetto_protos_perfetto_config_ftrace_zero_gen",
":perfetto_protos_perfetto_config_gpu_cpp_gen",
@@ -15029,6 +15253,8 @@
"perfetto_protos_perfetto_config_android_cpp_gen_headers",
"perfetto_protos_perfetto_config_android_zero_gen_headers",
"perfetto_protos_perfetto_config_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_cpp_gen_headers",
+ "perfetto_protos_perfetto_config_etw_zero_gen_headers",
"perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
"perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
"perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
diff --git a/BUILD b/BUILD
index 4392c28..80fc73e 100644
--- a/BUILD
+++ b/BUILD
@@ -172,6 +172,7 @@
":protos_perfetto_common_cpp",
":protos_perfetto_config_android_cpp",
":protos_perfetto_config_cpp",
+ ":protos_perfetto_config_etw_cpp",
":protos_perfetto_config_ftrace_cpp",
":protos_perfetto_config_gpu_cpp",
":protos_perfetto_config_inode_file_cpp",
@@ -302,6 +303,7 @@
deps = [
":protos_perfetto_common_zero",
":protos_perfetto_config_android_zero",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_zero",
":protos_perfetto_config_inode_file_zero",
@@ -379,6 +381,8 @@
":protos_perfetto_config_android_cpp",
":protos_perfetto_config_android_zero",
":protos_perfetto_config_cpp",
+ ":protos_perfetto_config_etw_cpp",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_cpp",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_cpp",
@@ -492,6 +496,8 @@
":protos_perfetto_config_android_cpp",
":protos_perfetto_config_android_zero",
":protos_perfetto_config_cpp",
+ ":protos_perfetto_config_etw_cpp",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_cpp",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_cpp",
@@ -3175,6 +3181,7 @@
deps = [
":protos_perfetto_common_protos",
":protos_perfetto_config_android_protos",
+ ":protos_perfetto_config_etw_protos",
":protos_perfetto_config_ftrace_protos",
":protos_perfetto_config_gpu_protos",
":protos_perfetto_config_inode_file_protos",
@@ -3241,6 +3248,7 @@
deps = [
":protos_perfetto_common_protos",
":protos_perfetto_config_android_protos",
+ ":protos_perfetto_config_etw_protos",
":protos_perfetto_config_ftrace_protos",
":protos_perfetto_config_gpu_protos",
":protos_perfetto_config_inode_file_protos",
@@ -3589,6 +3597,7 @@
deps = [
":protos_perfetto_common_cpp",
":protos_perfetto_config_android_cpp",
+ ":protos_perfetto_config_etw_cpp",
":protos_perfetto_config_ftrace_cpp",
":protos_perfetto_config_gpu_cpp",
":protos_perfetto_config_inode_file_cpp",
@@ -3615,6 +3624,33 @@
],
)
+# GN target: //protos/perfetto/config/etw:cpp
+perfetto_cc_protocpp_library(
+ name = "protos_perfetto_config_etw_cpp",
+ deps = [
+ ":protos_perfetto_config_etw_protos",
+ ],
+)
+
+# GN target: //protos/perfetto/config/etw:source_set
+perfetto_proto_library(
+ name = "protos_perfetto_config_etw_protos",
+ srcs = [
+ "protos/perfetto/config/etw/etw_config.proto",
+ ],
+ visibility = [
+ PERFETTO_CONFIG.proto_library_visibility,
+ ],
+)
+
+# GN target: //protos/perfetto/config/etw:zero
+perfetto_cc_protozero_library(
+ name = "protos_perfetto_config_etw_zero",
+ deps = [
+ ":protos_perfetto_config_etw_protos",
+ ],
+)
+
# GN target: //protos/perfetto/config/ftrace:cpp
perfetto_cc_protocpp_library(
name = "protos_perfetto_config_ftrace_cpp",
@@ -3835,6 +3871,7 @@
deps = [
":protos_perfetto_common_protos",
":protos_perfetto_config_android_protos",
+ ":protos_perfetto_config_etw_protos",
":protos_perfetto_config_ftrace_protos",
":protos_perfetto_config_gpu_protos",
":protos_perfetto_config_inode_file_protos",
@@ -3974,6 +4011,7 @@
deps = [
":protos_perfetto_common_zero",
":protos_perfetto_config_android_zero",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_zero",
":protos_perfetto_config_inode_file_zero",
@@ -3996,6 +4034,7 @@
":protos_perfetto_common_cpp",
":protos_perfetto_config_android_cpp",
":protos_perfetto_config_cpp",
+ ":protos_perfetto_config_etw_cpp",
":protos_perfetto_config_ftrace_cpp",
":protos_perfetto_config_gpu_cpp",
":protos_perfetto_config_inode_file_cpp",
@@ -4018,6 +4057,7 @@
":protos_perfetto_common_cpp",
":protos_perfetto_config_android_cpp",
":protos_perfetto_config_cpp",
+ ":protos_perfetto_config_etw_cpp",
":protos_perfetto_config_ftrace_cpp",
":protos_perfetto_config_gpu_cpp",
":protos_perfetto_config_inode_file_cpp",
@@ -4047,6 +4087,7 @@
deps = [
":protos_perfetto_common_protos",
":protos_perfetto_config_android_protos",
+ ":protos_perfetto_config_etw_protos",
":protos_perfetto_config_ftrace_protos",
":protos_perfetto_config_gpu_protos",
":protos_perfetto_config_inode_file_protos",
@@ -4541,6 +4582,7 @@
deps = [
":protos_perfetto_common_protos",
":protos_perfetto_config_android_protos",
+ ":protos_perfetto_config_etw_protos",
":protos_perfetto_config_ftrace_protos",
":protos_perfetto_config_gpu_protos",
":protos_perfetto_config_inode_file_protos",
@@ -4562,6 +4604,7 @@
deps = [
":protos_perfetto_common_zero",
":protos_perfetto_config_android_zero",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_zero",
":protos_perfetto_config_inode_file_zero",
@@ -4597,6 +4640,7 @@
deps = [
":protos_perfetto_common_protos",
":protos_perfetto_config_android_protos",
+ ":protos_perfetto_config_etw_protos",
":protos_perfetto_config_ftrace_protos",
":protos_perfetto_config_gpu_protos",
":protos_perfetto_config_inode_file_protos",
@@ -4638,6 +4682,7 @@
deps = [
":protos_perfetto_common_zero",
":protos_perfetto_config_android_zero",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_zero",
":protos_perfetto_config_inode_file_zero",
@@ -5104,6 +5149,8 @@
":protos_perfetto_config_android_cpp",
":protos_perfetto_config_android_zero",
":protos_perfetto_config_cpp",
+ ":protos_perfetto_config_etw_cpp",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_cpp",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_cpp",
@@ -5196,6 +5243,8 @@
":protos_perfetto_config_android_cpp",
":protos_perfetto_config_android_zero",
":protos_perfetto_config_cpp",
+ ":protos_perfetto_config_etw_cpp",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_cpp",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_cpp",
@@ -5340,6 +5389,7 @@
deps = [
":protos_perfetto_common_zero",
":protos_perfetto_config_android_zero",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_zero",
":protos_perfetto_config_inode_file_zero",
@@ -5494,6 +5544,7 @@
deps = [
":protos_perfetto_common_zero",
":protos_perfetto_config_android_zero",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_zero",
":protos_perfetto_config_inode_file_zero",
@@ -5582,6 +5633,7 @@
deps = [
":protos_perfetto_common_zero",
":protos_perfetto_config_android_zero",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_zero",
":protos_perfetto_config_inode_file_zero",
@@ -5718,6 +5770,7 @@
deps = [
":protos_perfetto_common_zero",
":protos_perfetto_config_android_zero",
+ ":protos_perfetto_config_etw_zero",
":protos_perfetto_config_ftrace_zero",
":protos_perfetto_config_gpu_zero",
":protos_perfetto_config_inode_file_zero",
diff --git a/protos/perfetto/config/BUILD.gn b/protos/perfetto/config/BUILD.gn
index 1366a44..c9cf032 100644
--- a/protos/perfetto/config/BUILD.gn
+++ b/protos/perfetto/config/BUILD.gn
@@ -22,6 +22,7 @@
deps = [
"../common:@TYPE@",
"android:@TYPE@",
+ "etw:@TYPE@",
"ftrace:@TYPE@",
"gpu:@TYPE@",
"inode_file:@TYPE@",
diff --git a/protos/perfetto/config/data_source_config.proto b/protos/perfetto/config/data_source_config.proto
index d0f8bbf..7af57dc 100644
--- a/protos/perfetto/config/data_source_config.proto
+++ b/protos/perfetto/config/data_source_config.proto
@@ -28,6 +28,7 @@
import "protos/perfetto/config/android/surfaceflinger_layers_config.proto";
import "protos/perfetto/config/android/surfaceflinger_transactions_config.proto";
import "protos/perfetto/config/chrome/chrome_config.proto";
+import "protos/perfetto/config/etw/etw_config.proto";
import "protos/perfetto/config/ftrace/ftrace_config.proto";
import "protos/perfetto/config/gpu/gpu_counter_config.proto";
import "protos/perfetto/config/gpu/vulkan_memory_config.proto";
@@ -45,7 +46,7 @@
import "protos/perfetto/config/system_info/system_info.proto";
// The configuration that is passed to each data source when starting tracing.
-// Next id: 125
+// Next id: 126
message DataSourceConfig {
enum SessionInitiator {
SESSION_INITIATOR_UNSPECIFIED = 0;
@@ -181,6 +182,9 @@
optional AndroidSdkSyspropGuardConfig android_sdk_sysprop_guard_config = 124
[lazy = true];
+ // Data source name: windows.etw
+ optional EtwConfig etw_config = 125 [lazy = true];
+
// This is a fallback mechanism to send a free-form text config to the
// producer. In theory this should never be needed. All the code that
// is part of the platform (i.e. traced service) is supposed to *not* truncate
diff --git a/protos/perfetto/config/etw/BUILD.gn b/protos/perfetto/config/etw/BUILD.gn
new file mode 100644
index 0000000..3e298f6
--- /dev/null
+++ b/protos/perfetto/config/etw/BUILD.gn
@@ -0,0 +1,20 @@
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("../../../../gn/perfetto.gni")
+import("../../../../gn/proto_library.gni")
+
+perfetto_proto_library("@TYPE@") {
+ sources = [ "etw_config.proto" ]
+}
diff --git a/protos/perfetto/config/etw/etw_config.proto b/protos/perfetto/config/etw/etw_config.proto
new file mode 100644
index 0000000..c8f7e83
--- /dev/null
+++ b/protos/perfetto/config/etw/etw_config.proto
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package perfetto.protos;
+
+// Proto definition based on the struct _EVENT_TRACE_PROPERTIES definition
+// See: https://learn.microsoft.com/en-us/windows/win32/api/evntrace/
+// ns-evntrace-event_trace_properties
+message EtwConfig {
+ // The KernelFlag represent list of kernel flags that we are intrested in.
+ // To get a more extensive list run 'xperf -providers k'.
+ enum KernelFlag {
+ C_SWITCH = 0;
+ IDLE_STATES = 1;
+ }
+
+ // The kernel_flags determines the flags that will be used by the etw tracing
+ // session. These kernel flags have been built to expose the useful events
+ // captured from the kernel mode only.
+ repeated KernelFlag kernel_flags = 1;
+}
\ No newline at end of file
diff --git a/protos/perfetto/config/perfetto_config.proto b/protos/perfetto/config/perfetto_config.proto
index c245505..a4cab08 100644
--- a/protos/perfetto/config/perfetto_config.proto
+++ b/protos/perfetto/config/perfetto_config.proto
@@ -645,6 +645,26 @@
// End of protos/perfetto/config/chrome/chrome_config.proto
+// Begin of protos/perfetto/config/etw/etw_config.proto
+
+// Proto definition based on the struct _EVENT_TRACE_PROPERTIES definition
+// See: https://learn.microsoft.com/en-us/windows/win32/api/evntrace/
+// ns-evntrace-event_trace_properties
+message EtwConfig {
+ // The KernelFlag represent list of kernel flags that we are intrested in.
+ // To get a more extensive list run 'xperf -providers k'.
+ enum KernelFlag {
+ C_SWITCH = 0;
+ IDLE_STATES = 1;
+ }
+
+ // The kernel_flags determines the flags that will be used by the etw tracing
+ // session. These kernel flags have been built to expose the useful events
+ // captured from the kernel mode only.
+ repeated KernelFlag kernel_flags = 1;
+}
+// End of protos/perfetto/config/etw/etw_config.proto
+
// Begin of protos/perfetto/config/ftrace/ftrace_config.proto
// Next id: 26.
@@ -2702,7 +2722,7 @@
// Begin of protos/perfetto/config/data_source_config.proto
// The configuration that is passed to each data source when starting tracing.
-// Next id: 125
+// Next id: 126
message DataSourceConfig {
enum SessionInitiator {
SESSION_INITIATOR_UNSPECIFIED = 0;
@@ -2838,6 +2858,9 @@
optional AndroidSdkSyspropGuardConfig android_sdk_sysprop_guard_config = 124
[lazy = true];
+ // Data source name: windows.etw
+ optional EtwConfig etw_config = 125 [lazy = true];
+
// This is a fallback mechanism to send a free-form text config to the
// producer. In theory this should never be needed. All the code that
// is part of the platform (i.e. traced service) is supposed to *not* truncate
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 2c09723..232ccd5 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -645,6 +645,26 @@
// End of protos/perfetto/config/chrome/chrome_config.proto
+// Begin of protos/perfetto/config/etw/etw_config.proto
+
+// Proto definition based on the struct _EVENT_TRACE_PROPERTIES definition
+// See: https://learn.microsoft.com/en-us/windows/win32/api/evntrace/
+// ns-evntrace-event_trace_properties
+message EtwConfig {
+ // The KernelFlag represent list of kernel flags that we are intrested in.
+ // To get a more extensive list run 'xperf -providers k'.
+ enum KernelFlag {
+ C_SWITCH = 0;
+ IDLE_STATES = 1;
+ }
+
+ // The kernel_flags determines the flags that will be used by the etw tracing
+ // session. These kernel flags have been built to expose the useful events
+ // captured from the kernel mode only.
+ repeated KernelFlag kernel_flags = 1;
+}
+// End of protos/perfetto/config/etw/etw_config.proto
+
// Begin of protos/perfetto/config/ftrace/ftrace_config.proto
// Next id: 26.
@@ -2702,7 +2722,7 @@
// Begin of protos/perfetto/config/data_source_config.proto
// The configuration that is passed to each data source when starting tracing.
-// Next id: 125
+// Next id: 126
message DataSourceConfig {
enum SessionInitiator {
SESSION_INITIATOR_UNSPECIFIED = 0;
@@ -2838,6 +2858,9 @@
optional AndroidSdkSyspropGuardConfig android_sdk_sysprop_guard_config = 124
[lazy = true];
+ // Data source name: windows.etw
+ optional EtwConfig etw_config = 125 [lazy = true];
+
// This is a fallback mechanism to send a free-form text config to the
// producer. In theory this should never be needed. All the code that
// is part of the platform (i.e. traced service) is supposed to *not* truncate