Skip to content

feat(perf): features for evaluation#678

Merged
nokosaaan merged 83 commits into
mainfrom
eva-feature
Jul 24, 2026
Merged

feat(perf): features for evaluation#678
nokosaaan merged 83 commits into
mainfrom
eva-feature

Conversation

@nokosaaan

@nokosaaan nokosaaan commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

Description

Since period information is required during evaluation, I have provided a feature to enable evaluation outside of the application.
period-index-propagation is normally turned off, which is consistent with the behavior of the traditional awkernel. To enable it, simply add period-index-propagation to the default in the [features] section of kernel/Cargo.toml.

I have added perf as a feature for rv32 and rv64, but this is a temporary measure to pass tests on GitHub and is not intended to permanently add perf functionality to these targets.
The root cause of this issue has not yet been resolved and will be tracked in a separate issue.

I have updated pubsub.rs to allow cycle propagation without altering existing trait boundaries, APIs, or the test application. Please refer to the file attached to the PR test section for the execution results.

Related links

sample code

How was this PR tested?

no_feature_compile.log
no_feature_execute.log
feature_compile.log
feature_execute.log

Notes for reviewers

Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
@nokosaaan nokosaaan changed the title add: Features for evaluation add: features for evaluation Apr 17, 2026
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
@nokosaaan nokosaaan changed the title add: features for evaluation fix(perf): features for evaluation Apr 17, 2026
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>

This comment was marked as outdated.

…ta with features

Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
the logic for passing periodic information has been internalized and solve bootloader error changing const numbers by using Box

Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
nokosaaan added 8 commits May 20, 2026 23:38
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
…ontext_switch etc..

Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Comment thread awkernel_async_lib/src/task.rs Outdated
Comment thread awkernel_async_lib/src/pubsub.rs
Comment thread kernel/src/main.rs Outdated
Comment thread awkernel_async_lib/src/task.rs
nokosaaan added 9 commits May 22, 2026 11:55
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
Signed-off-by: nokosaaan <nishimura.r.019@ms.saitama-u.ac.jp>
@nokosaaan

nokosaaan commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

@kobayu858
I fixed the starting point of context_switch in perf at commit de7c27f.
Since placing it in /awkernel_lib/src/interrupt.rs would cause a circular dependency with the perf module, I moved it to the beginning of preemption(), which is called immediately afterward.

Additionally, the location where I had initially placed it—as discussed earlier—was within an architecture-dependent processing flow, which could prevent the process from running on architectures other than x86; therefore, I determined that the current location is appropriate.

As before, there are discrepancies in processing times between context switches via preemption and those via run_main—due to factors like early returns—which can result in variations in measurement times.
However, I believe this issue can be resolved by comparing the two.

In this PR, I have left a comment explaining why I placed the code here, and our plan is to make adjustments as needed if a more optimal location is found in the future.

@nokosaaan
nokosaaan merged commit 6c7a629 into main Jul 24, 2026
1 check passed
@nokosaaan
nokosaaan deleted the eva-feature branch July 24, 2026 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants