Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
LCastanheira-1 opened this issue Mar 22, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request Opened Developer tools for opened framework

Comments

@LCastanheira-1
Copy link
Member

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?
@LCastanheira-1 LCastanheira-1 changed the title Transforming functions between compatible hook points Transforming functions between compatible hook points (MERGE-RELATED) Mar 22, 2023
@sdsen sdsen transferred this issue from another repository Mar 28, 2023
@sdsen sdsen added Opened Developer tools for opened framework enhancement New feature or request labels Mar 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Opened Developer tools for opened framework
Projects
None yet
Development

No branches or pull requests

3 participants