Skip to content

Adds crypto algorithm performance testing harness #5

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

Merged
merged 3 commits into from
Oct 16, 2023

Conversation

jopelima
Copy link
Collaborator

@jopelima jopelima commented Oct 9, 2023

This commit adds crypto algorithm performance testing pipeline, built as a GitHub Action-based test harness.

The testing pipeline runs the Linux Kernel as a User-mode Linux binary.

The Linux Kernel test binary is built from the configuration specified in zeta/test-artifacts/config-um, and a simple initramfs archive is created, including the busybox binary, the init and test scripts (/zeta/test-artifacts/init and /zeta/test-artifacts/test-script.sh), and any kernel modules resulting from the kernel build.

The crypto algorithm performance test consists in running the tcrypt kernel testing utility against each of the algorithms being tested - since the user-mode linux binary kernel doesn't have access to a high-resolution timer, the test relies on execution time to compare the different algorithm implementations.

This commit adds a GitHub Action-based test harness, which builds the Linux Kernel as a User-mode Linux binary, and runs the test script placed on the zeta/test-artifacts/test-script.sh file.
@jopelima jopelima requested a review from armfazh October 9, 2023 15:00

./test-script.sh

mkdir /proc
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how can we use mkdir directly, but not mount?

nit: you can probably avoid this by just creating /proc in initrd directory during build time

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a good question, can't tell for sure. It seems the busybox shell links some utilities out-of-the-box, but not others, but can't find exactly where that's happening.

Removed the /proc directory creation on the latest version, and we're now calling the busybox install command before invoking anything else so that we have all symlinks created.

Add /proc directory to the initramfs structure, rather than creating it as part of the init script.
Make busybox install the links to the builtin utilities as part of the init script, so that commands don't have to be prepended with busybox (which seemed to only be required in some cases).
Modify the kernel make directive to use the number of processor cores available to the Github runner to speed up the build process.
@armfazh armfazh force-pushed the jlima/crypto-test-harness branch 2 times, most recently from 19d48df to 47e118f Compare October 16, 2023 20:09
@armfazh armfazh force-pushed the jlima/crypto-test-harness branch from 47e118f to d9df7e5 Compare October 16, 2023 20:10
@armfazh armfazh merged commit b910350 into cf-zeta Oct 16, 2023
@armfazh armfazh deleted the jlima/crypto-test-harness branch October 17, 2023 20:45
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.

3 participants