Page MenuHomeFreeBSD

Further tuning of DTrace stack unwinding on ARMv[67]
AcceptedPublic

Authored by rwatson on Oct 4 2015, 11:21 AM.
Referenced Files
Unknown Object (File)
Thu, Oct 2, 4:30 PM
Unknown Object (File)
Wed, Oct 1, 4:37 PM
Unknown Object (File)
Sat, Sep 27, 11:14 AM
Unknown Object (File)
Tue, Sep 23, 3:52 PM
Unknown Object (File)
Mon, Sep 22, 4:35 AM
Unknown Object (File)
Sep 16 2025, 10:17 PM
Unknown Object (File)
Sep 14 2025, 8:17 PM
Unknown Object (File)
Sep 11 2025, 2:26 PM
Subscribers

Details

Reviewers
andrew
gnn
bz
br
Summary

A variety of minor tweaks to DTrace stack unwinding on ARMv[67], including:

  • Be more robust to invalid stack state, such as potentially invalid PC values
  • Better adjust number of frames skipped in various situations (e.g., SDT, FBT, etc)
Test Plan

Deployed in Cambridge L41 2014-2015.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

rwatson retitled this revision from to Further tuning of DTrace stack unwinding on ARMv[67].
rwatson updated this object.
rwatson edited the test plan for this revision. (Show Details)
rwatson added reviewers: andrew, br, bz.
rwatson set the repository for this revision to rS FreeBSD src repository - subversion.
rwatson added a project: ARM.
rwatson edited edge metadata.

Updated diff from svn contains further context; no functional change.

gnn edited edge metadata.
This revision is now accepted and ready to land.Oct 5 2015, 2:40 PM

Is the change to the number of frames to unwind correct? The change to move the call to dtrace_invop_jump_addr to asm doesn't seem to have made it into HEAD.

Should be fine for SDT, but I've not tried FBT, and as you point out, stack layout may differ a bit. I will try to give that a test run in isolation from the unupstreamed dtrace_invop_jump_addr change. We really do need to upstream the latter -- is that in your court?

This isn't in current. Tagging for further review by srcmgr.
It's looking, though, like an incomplete patch that maybe should be closed.