Comments (1)
Hi!
(1) Why does a normally running thread switch to sleeping state? The reason is lock?
In this case, it looks like the reason is a lock
(2) Is there a lock mechanism in the TRACE_EVENT interface? But I didn't find any lock.
Yes, there are some locks, I'm afraid:
- Every thread normally writes to its own shared memory chunk, so it doesn't need to take any lock. When the memory chunk is finished though (every 1Kb), it does take this lock to acquire another chunk:
- The first time each thread sees a Track
it will take a lock:
perfetto/include/perfetto/tracing/track.h
Line 364 in 13e65b2
Most of the times these are not taken and tracing goes through the fast path, but sometimes TRACE_EVENT can actually take a lock.
(3) How to avoid thread switching from running to sleeping in a friendly way when using TRACE_EVENT?
I'm afraid there's no solution. Perfetto has to perform cross thread synchronization from time to time and that involves taking a lock in the current implementation.
Please, let me know if you have any other questions.
from perfetto.
Related Issues (20)
- The recent updates seem to not support regular expression search. HOT 4
- Cannot write track events with custom datasource HOT 4
- tracing_muxer_impl.cc calls deprecated version of std::atomic_store HOT 8
- still racy prebuilt download HOT 11
- traced_probes crash HOT 4
- Question about the perfetto UI HOT 8
- How to turn off PERFETTO_WATCHDOG when compiling? HOT 1
- Perfetto is crashed HOT 5
- Perfetto UI: Minimizing the size of deployed files? HOT 12
- Feature request: support serving Perfetto UI resources from a different directory HOT 7
- A wrong link in docs/reference /perfetto-cli.md
- Why does The perfetto UI display The Trace Processor instance on X.X.X. x:9002 is too old? HOT 7
- ToTimecode function is not work properly HOT 1
- How to quickly locate a ftrace slice on the timeline based on the start timestamp HOT 1
- Empty auxiliary tracks show up as crashed? HOT 2
- How to cut a large perfetto trace to some small file HOT 1
- Why can't I click the box corresponding to a single ftrace event? HOT 1
- Trace counters aren't present in timeline HOT 2
- traces with low timestamped logcat events fail to open properly HOT 1
- feature request: selectively display specific slice HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from perfetto.