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

Try benchmarking cat with io_uring's splice support #1472

Open
ArniDagur opened this issue Apr 13, 2020 · 6 comments
Open

Try benchmarking cat with io_uring's splice support #1472

ArniDagur opened this issue Apr 13, 2020 · 6 comments
Labels

Comments

@ArniDagur
Copy link
Contributor

I already have PR #1289 which needs some more work before being considered for inclusion in the project. In said PR, cat uses splice() instead of read() on Linux, drastically increasing throughput. In the most recent kernel (5.7), io_uring will finally gain splice support. I want to try comparing a io_uring + splice() implementation of cat with a normal splice()-only implementation.

@chadbrewbaker
Copy link
Contributor

chadbrewbaker commented Aug 2, 2020

Until this project is super stable, I have been thinking about an optional build flag that inserts a lightweight shim for Linux that if you pass a --classic flag it passes arguments to the old GNU core-util binary. It would also allow for super easy expectation tests both for performance and output equivalence.

A riff on the test harness that Kernighan built for AWK: https://www.cs.princeton.edu/courses/archive/spring01/cs333/awktest.html

The same setup could be used to compare any two shell utility binaries for regression tests too.

Thoughts?

@stale
Copy link

stale bot commented Aug 2, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Aug 2, 2021
@tertsdiepraam
Copy link
Member

tertsdiepraam commented Jan 10, 2022

As far as I can tell, this was first attempted in #1289, then actually implemented in #1978, then reverted in #2018 and then finally unreverted in #2020 back in April.

@ArniDagur
Copy link
Contributor Author

I'm the person behind #1289, #1978, and #2020 :) The difference here is that we should try using splice with io_uring. Nevertheless, I'm fine with closing this issue since I probably won't pick this up in the near future.

@tertsdiepraam
Copy link
Member

tertsdiepraam commented Jan 11, 2022

Ah no worries, I'll open this back up. If only to document that this is still a possible improvement. Thanks for letting me know!

@tertsdiepraam tertsdiepraam reopened this Jan 11, 2022
@stale
Copy link

stale bot commented Jan 13, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Jan 13, 2023
@sylvestre sylvestre removed the wontfix label Jan 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants