OpenDevicePartnership / OpenDevicePartnership/patina
[Task]: Remaining Perf Work
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 544
- Forks
- 54
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 30
Description
Feature Overview
- Ability to publish the FBPT as a fallback if perf tracing is "disabled".
- Install the FPDT when perf tracing is "enabled".
- Add FPDT report status code listeners. Make sure all status code are picked up.
-
Note: We do not support S3 in Patina. As a result, we do not support lock box (lock box is more generic than S3 but that was the main use case, and we've rejected it).
-
Note: Try to avoid the
EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAMEvariable implementation in Rust code. We should not share pointers between modules using UEFI variables. -
Goal: We eliminate all C performance - DxeCorePerformanceLib (already done), DxePerformanceLib (already done), FirmwarePerformanceDataTableDxe.
Today:
DxeCorePerformanceLib- Used by the DXE core only to acquire perf records from MM with the communicate service and from PEI using the HOB list. Installs the performance protocol. Installs thegPerformanceProtocolGuidEFI configuration table.DxePerformanceLib- Used by non-core DXE drivers to report performance records. Wraps the performance protocol so they don't have to deal with it.FirmwarePerformanceDataTableDxe- Installs the FBPT (in case it is not already installed), FPDT, and S3PT.
Urgency
Medium
Are you going to implement the feature request?
Someone else needs to implement the feature
Do you need maintainer feedback?
No maintainer feedback needed
Anything else?
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Rust implementations corresponding to DxeCorePerformanceLib, DxePerformanceLib, and FirmwarePerformanceDataTableDxe, then trace the existing FBPT, FPDT, and S3PT installation paths. Compare the current behavior with the three requested capabilities and verify that every FPDT status code is handled; done means the C performance components are eliminated without relying on S3, lock box, or EFI performance-variable pointer sharing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100