Skip to content

Conversation

@ChrisDryden
Copy link
Collaborator

@ChrisDryden ChrisDryden commented Dec 26, 2025

I have come up with a prototype: #9866 for how to run the GNU SMACK test runners and have a draft of it showing that it can run the tests and pass the examples. To break up this process of enabling SMACK support there are three steps:

First is that even if I have a CI with a SMACK enabled kernel, the smack enabled check uses the ls utility to tell whether the environment has SMACK enabled. This means that even to have the tests changes from SKIP to FAIL I need to have created the fixes for the ls utility.

After this PR is in I am hoping to create a review for the actual CI shell and yml changes to run these tools and then it will change the status from SKIP to FAIL.

Lastly I will need to make the final PR that adds the support for the rest of the utilities and the CI will show it move from FAIL to PASS

@codspeed-hq
Copy link

codspeed-hq bot commented Dec 26, 2025

CodSpeed Performance Report

Merging #9868 will not alter performance

Comparing ChrisDryden:smack-ls-only (6004e20) with main (1aac2ec)1

Summary

✅ 127 untouched
⏩ 6 skipped2

Footnotes

  1. No successful run was found on main (dd08296) during the generation of this report, so 1aac2ec was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

  2. 6 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@ChrisDryden
Copy link
Collaborator Author

The performance regressions come from adding things to the fluent bundle. Looks like its better to move the translations to much more specific paths.

@ChrisDryden ChrisDryden marked this pull request as ready for review December 26, 2025 19:33
@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/sort/sort-stale-thread-mem. tests/sort/sort-stale-thread-mem is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/tty/tty-eof. tests/tty/tty-eof is passing on 'main'. Maybe you have to rebase?


/// Checks if SMACK is enabled by verifying smackfs is mounted.
pub fn is_smack_enabled() -> bool {
Path::new("/sys/fs/smackfs").exists()
Copy link
Contributor

Choose a reason for hiding this comment

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

the result should be cached

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Want me to do the same for SELinux? I double checked it before adding a OnceCell, but can add this easily

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I just added it for smack, can follow up with SELinux in another PR

Copy link
Contributor

Choose a reason for hiding this comment

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

yes, thanks! :)

@github-actions
Copy link

GNU testsuite comparison:

Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)

@sylvestre
Copy link
Contributor

The performance regressions come from adding things to the fluent bundle.

I am not sure that adding a few strings will regress the performances this way

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/cp/cp-mv-enotsup-xattr. tests/cp/cp-mv-enotsup-xattr is passing on 'main'. Maybe you have to rebase?
Note: The gnu test tests/csplit/csplit-io-err was skipped on 'main' but is now failing.

@ChrisDryden
Copy link
Collaborator Author

The performance regressions come from adding things to the fluent bundle.

I am not sure that adding a few strings will regress the performances this way

I just ran an experiment locally to prove it and got the exact same results. It appears a bigger amount than it actually is on the wall time. Will make another PR to separate out some of the strings from the shared locale bundle to show how the performance improves. You can also see it on the flamecharts for all of the regressions except for sort, that one shows something different somehow.

@github-actions
Copy link

GNU testsuite comparison:

GNU test failed: tests/cp/cp-mv-enotsup-xattr. tests/cp/cp-mv-enotsup-xattr is passing on 'main'. Maybe you have to rebase?
Note: The gnu test tests/csplit/csplit-io-err was skipped on 'main' but is now failing.

@ChrisDryden
Copy link
Collaborator Author

Just moved it from the uucore locales to the ls locale and that was the only change and all of the regressions vanished

@sylvestre sylvestre merged commit 5280730 into uutils:main Dec 28, 2025
125 of 128 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.

2 participants