Skip to content

Transforming functions between compatible hook points (MERGE-RELATED) #88

@LCastanheira-1

Description

@LCastanheira-1

Part of the optimization done by OPENED is to shift probes around compatible hook points (see compatible_hookpoints on this link) to maximize performance and resource usage.

As far as I understand, we currently assume a probe P is compatible to a hook point H if all helper functions of P are available in H

A few considerations:

  • is this really all it takes for the "majority" of cross hook point compilations to succeed?
  • Is the transformation always semantically equivalent? Can the context state or even return values of helper functions change depending on the hookpoint attached? e.g., XDP doesn't have a PID vs non-XDP generally has a PID. Uprobe has the original function's address on the instruction pointer, Uretprobe has the BPF trampoline's address.
  • Specifically for the current approach: How to deal with helper functions that are named slightly differently but "equivalent" enough amongst themselves?

Metadata

Metadata

Labels

OpenedDeveloper tools for opened frameworkenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions