TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

io_uring_spawn: Launching New Processes with io_uring

109 pointsby goranmoominover 2 years ago

9 comments

kyaghmourover 2 years ago
I attended Josh's talk earlier this week at LPC. As I told Josh yesterday in the hallway track, I've been attending Linux conferences for 20+ years and often times some topics keep coming back and you can see the specialization. But in this case, I was completely blown away. This is a totally new approach to an old problem. I mean, fork() was invented in the '70's and aside from threads and clone(), in Linux, there really hasn't been any innovation in this space over the years. I look forward to seeing what else gets io_uring'ed following this model.
评论 #32841956 未加载
boffinAudioover 2 years ago
This is really exciting work - it has the potential to make Linux software services way, way more efficient.<p>I look forward to seeing the impact that this change has, for example, on future builds. A significant amount of time is spent at the beginning of a process spawn, setting things up - being able to batch things up without the process startup load, is going to make things much, much faster. Process pools? Yes please! :) I will <i>definitely</i> be a customer of posix_spawn() when its ready ..<p>One has to wonder, though, given Josh&#x27; work with Rust, if any of this work is going to be done in Rust? One can dream ..
评论 #32840569 未加载
staticassertionover 2 years ago
So, to my knowledge io_uring is a complete seccomp bypass (for all functionality it implements). Docker allows io_uring because &quot;so far it isn&#x27;t that big of a deal&quot; (paraphrasing from Github issue 2 years ago). Given that io_uring now provides file IO and process execution... isn&#x27;t it about time that someone starts thinking about the security implications? Are we going to just have a universal seccomp bypass for anyone who uses io_uring? How&#x27;re the audit hooks coming along? Or LSM hooks?<p>edit: K I&#x27;ve reached my HN rate limit again, thanks Dang.<p>Anyway, here&#x27;s a source for the Docker seccomp filter since someone replied inquiring.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;thaJeztah&#x2F;docker&#x2F;blob&#x2F;master&#x2F;profiles&#x2F;seccomp&#x2F;default.json" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;thaJeztah&#x2F;docker&#x2F;blob&#x2F;master&#x2F;profiles&#x2F;sec...</a>
评论 #32840011 未加载
评论 #32840058 未加载
the_dukeover 2 years ago
What kind of workloads spawn so many processes that saving microseconds becomes relevant?<p>I guess shells (eg with xargs) would be one example.<p>Edit: the talk mentions build systems as a motivating use case.
评论 #32837779 未加载
评论 #32837535 未加载
评论 #32839203 未加载
评论 #32838674 未加载
评论 #32837730 未加载
评论 #32838107 未加载
评论 #32839968 未加载
评论 #32838577 未加载
评论 #32837393 未加载
评论 #32837221 未加载
评论 #32837798 未加载
评论 #32837673 未加载
nos4A2over 2 years ago
The comparison does not seem to be apples to apples. The perf gain seems to come from bundling the fork and exec call allowing the kernel to do vfork like optimizations. I think a fair comparison would be against a new sys call that does fork_exec vs io_uring_spawn, and not fork + exec vs io_uring_spawn.
评论 #32840532 未加载
评论 #32838614 未加载
评论 #32839240 未加载
joeyhover 2 years ago
The performance of this might be useful for a few things. The correctness seems more generally useful. The first two things I looked at that currently use vfork both go on to do things that are unsafe (according to the information in this talk anyway). I&#x27;ll bet a substantial number of programs that use fork don&#x27;t limit themselves to signal-safety(7) functions either.
评论 #32841015 未加载
ori_bover 2 years ago
Does this matter when you have shared libraries? ld.so will be doing hundreds of syscalls at start regardless.
评论 #32840578 未加载
评论 #32839539 未加载
wmfover 2 years ago
If I&#x27;m reading this right it should also allow memory overcommit to be disabled.
评论 #32839356 未加载
egberts1over 2 years ago
Reminds me of a single pit stop where a queue of race cars await the “go” words.<p>Still need resources behind the pit stop, lots and lots of resources.