perf(dataset): skip unnecessary completed-dataset decode — built-in prefilter fast path#89
Merged
Merged
Conversation
02043f4 to
6efd16c
Compare
232c4bb to
d890efe
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Reduce completed-dataset processing cost without changing SOF API contracts or feature scope.
This PR teaches the dataset path to classify transactions from sanitized transaction views using the existing compiled prefilter mechanism, so SOF decodes owned transactions only when dispatch actually needs them.
Changes
Detailed list of what changed:
crates/sof-observer/src/app/runtime/dataset/process.rs: add completed-dataset view extraction and prefilter-driven dispatch flow that can avoid owned transaction decode when compiled prefilters prove a transaction is irrelevant.crates/sof-observer/src/framework/host/core.rs: add view-based host-side classification for compiled transaction prefilters and report when full decoded fallback is still required.crates/sof-observer/src/framework/plugin.rs: keep the fast path on the existingTransactionPrefiltercontract rather than introducing a new plugin API.crates/sof-observer/src/framework/host/tests.rs: extend coverage for view-vs-decoded classifier equivalence and fallback requirements.For slice-related changes, include:
Motivation
Business motivation:
Technical motivation:
Alternative approaches considered:
Scope and impact
Testing
Commands/results:
Results: passed.
Performance checks:
669 msto470 msover5000iterations.Related issues and documentation
docs/architecture/README.mdReviewer checklist
docs/architecture/ard/0003-slice-dependency-contracts.md)Additional notes
This PR is the top of the current stacked chain and should merge after
refactor/import-hygiene.