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

Performance monitoring API #367

Open
rmn30 opened this issue Dec 5, 2024 · 1 comment
Open

Performance monitoring API #367

rmn30 opened this issue Dec 5, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@rmn30
Copy link
Collaborator

rmn30 commented Dec 5, 2024

We need some performance monitoring APIs so that we can understand the performance of CHERIoT applications. This issue is to track ideas and development.

Here are some ideas for requirements / features:

  • need to be able to enable / disable performance monitoring APIs at compile time via a flag / cpp definition so that monitoring will have no impact (performance or security) on release builds. Maybe per component?
  • performance and space impact should be very low when enabled
  • need to be able to retrieve statistics (count, cycles, instructions?) about significant events, probably per thread and / or per compartment. Min / max of these statistics?
  • Events we may want to monitor:
    • switcher: compartment calls, faults, scheduler time?
    • scheduler: interrupts (per interrupt type?), interrupt latency?, thread transitions? accuracy of timer interrupt?
    • allocator: allocations (bin by size?), revocation sweeps, time spent waiting for revocation
    • networking
    • sonata cache: instruction / data accesses, hits, misses, miss cycles

It would be nice to have an extensible API that could accommodate all of these but they may be different enough that that won't work.

Can anyone point to existing performance monitoring APIs we could clone or use as reference?

Security consideration: do we anticipate including any of this in release builds? If so what what can we do about the side-channels?

@rmn30 rmn30 added the enhancement New feature or request label Dec 5, 2024
@davidchisnall
Copy link
Collaborator

@hlef

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants