Duplicate thread name in trace report |
||||||||||
Issue descriptionIn CL https://codereview.chromium.org/2450073002, scheduling-only threads is included in trace report. However, for some unknown reasons, in the code we use PID as TID when storing event. (https://codereview.chromium.org/2450073002/patch/80001/90002) This causes issue when we expect exactly only one thread with the given name when calling process_base::findAtMostOneThreadNamed (https://cs.chromium.org/chromium/infra/appengine/third_party/catapult/tracing/tracing/model/process_base.html?q=%22findAtMostOneThreadNamed%22&l=178&dr=C) For example we use https://docs.google.com/document/d/1y-2u5nUSo21fyarWCReFYiLRjUjWFDBN1lk_DG22aFg/edit#heading=h.19bkpwh38a9s to manually collect both traces from Chrome and Android to help debugging ARC++ performance issue. We saw error "Expected no more than one Compositor" when loading report recently. Attachment is an example report. Is there any reason that we use PID as TID? For solving the problem, is it OK to add a prefix to the thread name, e.g., sched-XXX, when storing scheduling only information?
,
Jan 23 2017
As I said in the internal bug Linux does not have a TID. Threads are identified by PIDs on Linux. In this case it's the 29073 that's correct and the 5 that's "wrong". Or rather, 29073 is the OS identifier for the thread and 5 is some Chrome-internal identifier for the thread, thus the conflict.
,
Jan 24 2017
Got your point. So the problem is why chrome is using internal identifier instead of using system call like gettid() or syscall(SYS_gettid); Hi Nat, Could you help on this or do you know who we can ask?
,
Jan 24 2017
Un-CCing myself. Feel free to re-CC me if necessary.
,
Jan 24 2017
,
Jan 26 2017
,
Jan 26 2017
Concerning #3. I would assume that the internal identifiers are cheaper to get. But I will have to look closer.
,
Jan 27 2017
Also the assert in tracing.js seems new in M56+ as I can load the trace in M55 browser:
While importing:
Error: Expected no more than one Compositor
at Process.findAtMostOneThreadNamed (chrome://tracing/tracing.js:2436:7)
at ChromeRendererHelper (chrome://tracing/tracing.js:922:403)
at ChromeModelHelper.<anonymous> (chrome://tracing/tracing.js:944:152)
at Array.forEach (native)
at ChromeModelHelper (chrome://tracing/tracing.js:944:101)
at Model.getOrCreateHelper (chrome://tracing/tracing.js:2563:67)
at ChromeAuditor (chrome://tracing/tracing.js:4758:431)
at Import.<anonymous> (chrome://tracing/tracing.js:1336:430)
at Array.map (native)
at Import.createAuditorsAndRunAnnotate (chrome://tracing/tracing.js:1336:390)
,
Jan 30 2017
,
Jan 30 2017
,
Jan 31 2017
,
Feb 1 2017
,
Feb 6 2017
Any update or anything we can help on this? Reply for #8: I think it's because CL https://codereview.chromium.org/2450073002 is merged after M56+.
,
Feb 16 2017
Anyone looking at this? This sometimes blocks tracing on ARC++ now.
,
Aug 1
,
Dec 5
|
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by shunhsingou@chromium.org
, Jan 21 2017