Page MenuHomeFreeBSD

Get fbt working on ARM
ClosedPublic

Authored by andrew on Mar 4 2015, 9:34 PM.
Tags
None
Referenced Files
F83232823: D2007.diff
Tue, May 7, 10:28 PM
F83214551: D2007.id4107.diff
Tue, May 7, 7:19 PM
Unknown Object (File)
Thu, May 2, 7:57 AM
Unknown Object (File)
Fri, Apr 26, 5:26 PM
Unknown Object (File)
Fri, Apr 26, 5:25 PM
Unknown Object (File)
Fri, Apr 26, 5:19 PM
Unknown Object (File)
Fri, Apr 26, 5:19 PM
Unknown Object (File)
Wed, Apr 24, 11:12 PM
Subscribers
None

Details

Summary

For this we need to:

  • Use the correct undefined instruction
  • Leave space on the exception stack to emulate the push instruction with 16 registers
  • Call dtrace_invop_jump_addr iff it's set and we are called from kernel context
  • Pass the details of the push, pop, and branch instructions to the code emulating them
  • Emulate said instructions

With this I am able to use probes like:

dtrace -n 'fbt::free:return { stack (); }'

and:

dtrace -n 'fbt::malloc:entry { stack (); }'

on my ARM board.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
No Lint Coverage
Unit
No Test Coverage

Event Timeline

andrew retitled this revision from to Get fbt working on ARM.
andrew updated this object.
andrew edited the test plan for this revision. (Show Details)
andrew added reviewers: ARM, DTrace, rwatson, br, gnn.
gnn edited edge metadata.
This revision is now accepted and ready to land.Mar 4 2015, 10:01 PM
rpaulo added a reviewer: rpaulo.
andrew updated this revision to Diff 4117.

Closed by commit rS279667 (authored by @andrew).