Kernel ftrace data missing on Chromebooks |
|||||
Issue descriptionChrome Version: 65.0.3325.0 OS: ChromeOS What steps will reproduce the problem? (1) Launch a guest browser session (2) Navigate to chrome://tracing, hit Record (3) Make sure 'System tracing' is enabled in the Advanced settings (4) Start recording, wait a little bit, stop recording. What is the expected result? ftrace data should have been captured, showing you the state of threads executing on different CPUs, and the changes in CPU frequency over time. This will appear at the top of the trace. What happens instead? This information is missing. Please use labels and text to provide additional information. I'm still trying to bisect this, but it was definitely still working on a build of ChromeOS from 13th October (running Chrome 63.0.3239.0). It is definitely still not working as of the 18th of January.
,
Jan 19 2018
,
Jan 19 2018
Bug appears to be related to the platform, not Chrome. A chromeOS build from Nov 11 (64.0.3264.0, platform 10116) works, but a ChromeOS build from Nov 30 (64.0.3273.0, platform 10171) doesn't work. If you take a 10116 (nov11) platform, however, and build your own 64.0.3273.0 (nov30), then it does work.
,
Jan 19 2018
,
Jan 26 2018
I tracked the problem down to changing 'dash' version from dash-0.5.5.1.7 to dash-0.5.9.1-r3. This happened on Nov 10th 2017. This new and stricter version of dash seems to reject the systrace.sh script used for collecting ftrace data. The fix proposed in https://chromium-review.googlesource.com/c/chromiumos/platform2/+/888923 gets the script working again.
,
Jan 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/e0e3897964cff883ec663b3fd1fcd0b1d4674fc0 commit e0e3897964cff883ec663b3fd1fcd0b1d4674fc0 Author: Stephen Kyle <stephen.kyle@arm.com> Date: Sat Jan 27 00:12:11 2018 debugd: fix local bug in systrace.sh script Replace the use of 'local' keyword in the 'start)' case block with an equivalent setting and unsetting of the variable. The local keyword can only be used within a function context, more compliant shells reject the use within a case block with the error: "local: not in a function" Versions of dash prior to version 0.5.9.1-r3 silently ignored the use of the local keyword, but with the upgrade to this version introduced on Nov 10 2017 in the chromiumos/overlays/portage-stable project (d0ec70a4d - "dash: version bump"), the script stopped working. The collection of system tracing information on ChromeOS devices through devtools has been broken since then. BUG= chromium:803813 TEST=emerge chromeos-base/debugd and deploy to DUT TEST=on DUT, run /usr/libexec/debugd/helpers/systrace.sh start TEST=confirm "local: not in a function" message doesn't appear TEST=run /usr/libexec/debugd/helpers/systrace.sh stop TEST=confirm ftrace data is dumped to stdout Change-Id: Ifdb4dbf8f0696489df53a408ac1e8ee812fa4fb6 Reviewed-on: https://chromium-review.googlesource.com/888923 Commit-Ready: Stephen Kyle <stephen.kyle@arm.com> Tested-by: Stephen Kyle <stephen.kyle@arm.com> Reviewed-by: oysteine <oysteine@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> [modify] https://crrev.com/e0e3897964cff883ec663b3fd1fcd0b1d4674fc0/debugd/src/helpers/systrace.sh
,
Jan 31 2018
Confirmed ftrace data is now present again in the latest CrOS builds. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by stephen....@arm.com
, Jan 19 2018Components: Platform>DevTools>Tracing
Labels: OS-Chrome