Viewing profile — benlwalker
benlwalker
HN member- Joined
- Sat, Apr 16, 2016, 6:16 PM UTC
- HN karma
- 298
- Public activity
- 63 items
- HN profile
- View on Hacker News ↗
About benlwalker
Recent public activity
-
comment
Comment #45139208
SPDK will be able to fully saturate the PCIe bandwidth from a single CPU core here (no secret 6 threads inside the kernel). The drives are your bottleneck so it won't go faster, bu…
-
comment
Comment #44819621
For an expanding array in a 64 bit address space, reserving a big region and mmaping it in as you go is usually the top performing solution by a wide margin. At least on Linux, it …
-
comment
Comment #41404015
Compared to libraries like bgfx and sokol at least, I think there are two key differences. 1) SDL_gpu is a pure C library, heavily focused on extreme portability and no depedencies…
-
comment
Comment #41259026
The eBPF programs are strictly bounded. And they're scoped to their own memory that you have to pre-load from the actual storage with separate commands issued from the CPU (presuma…
-
comment
Comment #41258795
We tried to standardize exactly this - eBPF programs offloaded onto the device. The NVMe standard now has a lot of infrastructure for this standardized, including commands to disco…
-
comment
Comment #39357037
Yes, I've seen some clearer cases made for networking. In networking there is no standard for the hardware interface. Every vendor does their own thing. Except many can at least ha…
-
comment
Comment #39352103
I don't get it either, and I'm a maintainer of SPDK which provides multiple implementations of virtualized devices and is frequently used inside DPUs to present storage devices. If…
-
comment
Comment #37343359
Is it really that much code? I don't know GPU hardware, but the NVMe spec header file in SPDK is around 4k lines[0]. If there's 7 of them and they're twice as complicated each, we'…
-
comment
Comment #37123855
Pre-commit means before committed to the canonical repo, not before commit locally. The SPDK project has an elaborate pre-commit review and test system all in public. See https://s…
-
comment
Comment #36749543
iWARP maybe, but I don't think you want to offload all of TCP to hardware. You want to leave congestion control and all that to software. I don't entirely know if that's why iWARP …
-
comment
Comment #36749289
At 200+ Gbps, the copy from LLC where the packet landed to the userspace buffer dominates the performance profiles on most systems. The TCP processing isn't bad and the expensive p…
-
comment
Comment #36749215
RDMA is great and similar, but behaves very differently from TCP in the face of network congestion and longer distance traversals. This is essentially trying to get the best parts …
- story
-
comment
Comment #35654622
XRP is a regular BPF hook in Linux and requires no additional standardization. The device never "calls out to BPF programs in the driver" - it generates a normal completion interru…
-
comment
Comment #35653631
I am very closely tied to what the NVMe vendors want, having written the first internal draft of the proposal to the standards body (since that draft many smart people have taken t…
-
comment
Comment #35649908
Associating the desire of NVMe vendors to allow users to ship down eBPF programs to run on the device and XRP is a major mistake in the article. XRP has nothing to do with what the…
-
comment
Comment #35555868
For many syscalls, the primary overhead is the transition itself, not the work the kernel does. So doing 50 operations one by one may take, say, 10x as much time as a single call t…
-
comment
Comment #35550066
You can also use umwait on the next completion entry in the ring
-
comment
Comment #35549167
Without the submission batching you lose your system call reduction and that is far and away the biggest benefit.
-
comment
Comment #35549053
Imagine you have a piece of software that runs in an event loop (as many things do). On each loop, queue up all system calls you'd like to perform. At the end of the loop, do one s…
-
comment
Comment #35549025
IOCP certainly was ahead of its time, but it only does the completion batching, not the submission batching. io_uring is significantly better than anything available on Windows rig…
-
comment
Comment #35548968
I've spent essentially the last year trying to find the best way to use io_uring for networking inside the NVMe-oF target in SPDK. Many of my initial attempts were also slower than…
-
comment
Comment #33223647
And io_uring itself was more directly inspired by NVMe and RDMA, which of course work with these same queues as GFX cards. The original io_uring patch compares itself to SPDK, whos…
-
comment
Comment #33223602
Windows did already have async ("overlapped") IO, and a completion aggregator (IOCP) kind of like io_uring. What Windows didn't have, and the reason they're now adding their own IO…
-
comment
Comment #33076066
As an alternative, may I offer you a wasm port? https://play.classicuo.org/ (I've never used this but I heard it runs well)