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

Update app_kernel benchmark test for user threads #64261

Merged
merged 11 commits into from
Oct 31, 2023

Conversation

peter-mitsis
Copy link
Collaborator

This series of commits updates the app_kernel benchmark test.

The first couple of commits remove various bits of cruft. The remainder of the commits deal with adding optional user thread support that can be enabled by selecting the prj_user.conf configuration file.

@peter-mitsis peter-mitsis force-pushed the pmitsis-app_kernel branch 3 times, most recently from 938852a to 38b045a Compare October 24, 2023 17:27
dcpleung
dcpleung previously approved these changes Oct 24, 2023
jxstelter
jxstelter previously approved these changes Oct 26, 2023
Begin cleaning the the app_kernel benchmark project by removing
unused symbols.

Signed-off-by: Peter Mitsis <[email protected]>
As nothing in the app_kernel uses floating point, there is no
reason to enable it.

Signed-off-by: Peter Mitsis <[email protected]>
Eliminates the loop surrounding the execution of the benchmark
components as it was not doing anything.

Signed-off-by: Peter Mitsis <[email protected]>
Changed references of fifo to msgq as the fifo name was a remnant
of the old microkernel.

Signed-off-by: Peter Mitsis <[email protected]>
Use dynamic threads instead of statically defined threads. This will
make it easier to add support for user threads to this test.

Signed-off-by: Peter Mitsis <[email protected]>
Adds macros for placing variables into bench_mem_partition.
This partition will be used to place global data in the test
that will need to be accessed from user threads.

Signed-off-by: Peter Mitsis <[email protected]>
Adds two custom syscalls. The first allows a user thread to
change its priority to a higher priority level. The second
is used to obtain a timestamp from a user thread.

Signed-off-by: Peter Mitsis <[email protected]>
Add user thread support to message queue, semaphore, mutex and
pipe tests. Mailbox and memory map tests are restricted from
executing from user threads.

Signed-off-by: Peter Mitsis <[email protected]>
Extends the msgq benchmark test to obtain data for larger message
queues (messages of size 192 bytes). This allows for a better
indication of what the impact of data size is on message queue
performance.

Signed-off-by: Peter Mitsis <[email protected]>
Updates the testcase.yaml to support a version that employs
user threads.

Signed-off-by: Peter Mitsis <[email protected]>
Updates the README.txt to add some notes about user thread
configurations.

Signed-off-by: Peter Mitsis <[email protected]>
@peter-mitsis
Copy link
Collaborator Author

This latest push modified the prj.conf and prj_user.conf files to minimize the number of timer interrupts. If the system supports a tickless kernel, it will be used automiatically; if not, then it falls back to the minimum number of system ticks per second.

@nashif nashif self-assigned this Oct 30, 2023
@carlescufi carlescufi merged commit 7e8243b into zephyrproject-rtos:main Oct 31, 2023
15 checks passed
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.

6 participants