Page MenuHomeFreeBSD

Get fbt working on ARM
ClosedPublic

Authored by andrew on Mar 4 2015, 9:34 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Dec 22, 3:15 AM
Unknown Object (File)
Wed, Dec 18, 4:11 AM
Unknown Object (File)
Wed, Dec 18, 3:21 AM
Unknown Object (File)
Nov 23 2024, 3:04 PM
Unknown Object (File)
Nov 23 2024, 11:58 AM
Unknown Object (File)
Oct 8 2024, 3:13 AM
Unknown Object (File)
Oct 7 2024, 7:39 AM
Unknown Object (File)
Oct 6 2024, 7:20 AM
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
Lint Skipped
Unit
Tests Skipped

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).