Hacker Newsnew | past | comments | ask | show | jobs | submit | Asmod4n's commentslogin

It’s manageable with eBPF instead of seccomp so one has to adapt to that. Should be doable.

Maybe not so doable. The whole point of io_uring is to reduce syscalls. So you end up just three. io_uring_setup, io_uring_register, io_uring_enter

There is now a memory buffer that the user space and the kernel is reading, and with that buffer you can _always_ do any syscall that io_uring supports. And things like strace, eBPF, and seccomp cannot see the actual syscalls that are being called in that memory buffer.

And, having something like seccomp or eBPF inspect the stream might slow it down enough to eat the performance gain.


There is some interesting ongoing research on eBPF and uring that you might find interesting, e.g., RingGuard: Guarding io_uring with eBPF (https://dl.acm.org/doi/10.1145/3609021.3609304 ).

Ain’t eBPF hooks there so you can limit what a cgroup/process can do, not matter what API it’s calling. Like disallowing opening files or connecting sockets altogether.

So io_uring is like transactions in sql but for syscalls?

No. A batch of submission queue entries (SQEs) can be partially completed, whereas an ACID database transaction is all or nothing. The syscalls performed by SQEs have side effects that can't reasonably be undone. Failures of operations performed by SQEs don't stop or rollback anything.

Think of io_uring as a pair of unidirectional pipes. You shove syscalls and (pointers to) data into one pipe and the results (asynchronously) gush out of the other pipe, errors and all. Each pipe is actually a separate block of memory shared between your process and the kernel: you scribble in one and read from the other, and the kernel does the opposite.


Does wall clock time matter for anything but logging? For everything else one could just create any form „time“ to keep stuff in sync, no?


Isn't it also useful for checking validity periods for stuff like TLS certs or JWTs or Kerberos tickets?


We could use some made up „time“ for that since it’s not made for human consumption just sync between different systems.


I suppose this is changing with TLS certs moving towards ephemerality, but they used to have an entry on someone's calendar for renewal.


The one thing I like the most about mruby is the way you can ship apps.

When you normally want to ship apps which are written in Java, C#, python etc. you have to tell your users they have to download that runtime and your deps and how to start the runtime and which args to start your app from the command line.

With mruby you can just ship one file and everything is self contained.


For dotnet, there is a built-in flag "--self-contained".



This feature alone is a reason why I in some occasions use MRuby, when I have a Ruby script I want to share as standalone binary. I sometimes don't even have to rewrite anything, it just works.


There are some situations where you can somewhat handle malloc returning NULL.

One would be where you have frequent large mallocs which get freed fast. Another would be where you have written a garbage collected language in C/C++.

When calling free, delete or letting your GC do that for you the memory isn't actually given back immediately, glibc has malloc_trim(0) for that, which tries it's best to give back as much unused memory to the OS as possible.

Then you can retry your call to malloc and see if it fails and then just let your supervisor restart your service/host/whatever or not.


Mine runs at 60C when running Prime95 at full load, i got a open bench case though.

The 7000 series is designed to hit those loads, i wonder how your 5000 series can even reach that.


PCIe 3.0 x16 is enough for up to a ~5080, you only lose single digit percent fps.


when you game in 4K thats only relevant for games like factorio or city skylines.


world of warcraft has a huge speedup on x3d


in the main capital, yes. but even in raids i hit 120 fps in 4k with my 5800x.


base speed 32gb ddr 5 ram goes for around 800€, aka 4800 MT.


all PCIe lanes combined in that machine can do over 1 terabit. Would be quite the networking beast.


The M2 Ultra has 32 off-world PCIe lanes, 8 of which are obligated to the SSDs. That leaves only 24 lanes for the 7 slots. That's 8 times less than you'd get from an EPYC, which is the kind of thing a normal user would put in a rack if they did not need to use macos.


Couldn’t AMD just release that as firmware/binary blob and call that from the open source driver to circumvent the issue?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: