Merge "Drain BPF ring buffer after disabling tracing." am: 00b4e1ca38
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/2528027
Change-Id: I88491c7c3cde362f32ce356f28064eda2f447fe8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp b/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp
index 5cf6262..3de9897 100644
--- a/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp
+++ b/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp
@@ -99,9 +99,14 @@
ALOGW("Failed to disable tracing: %s", res.error().message().c_str());
}
- // make sure everything in the system has actually seen the 'false' we just wrote
+ // Make sure everything in the system has actually seen the 'false' we just
+ // wrote, things should now be well and truly disabled.
synchronizeKernelRCU();
- // things should now be well and truly disabled
+
+ // Drain remaining events from the ring buffer now that tracing is disabled.
+ // This prevents the next trace from seeing stale events and allows writing
+ // the last batch of events to Perfetto.
+ ConsumeAllLocked();
mTaskRunner.reset();
mRingBuffer.reset();