News: 0001632738

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Axboe Hacking On New Linux Patches For 60% Increase To Per-Core I/O Performance

([Linux Storage] 5 Hours Ago Exciting I/O Work)


Following a presentation at last week's Linux storage, file-system, memory management and BPF summit (LSFMM) in Croatia where Linux I/O overhead compared to the Storage Performance Development Kit (SPDK) was presented, Jens Axboe was motivated to pursue some new Linux kernel optimizations for greater per-core I/O performance. This lead IO_uring developer and Linux block maintainer has managed to achieve around a 60% increase to the per-core I/O performance with his latest patches.

Jens Axboe announced on [1]X this weekend that he devised a proof-of-concept patch series while traveling back from LSFMM in Zagreb to increase the per-core storage performance by 50%. He later [2]followed up with achieving a 60% per-core performance increase.

The proof-of-concept patches can be currently found via [3]this "io_uring-io-slots" Git branch . Axboe explained of the work:

"Basically extends registered buffers to also have a struct bio ready to go, and have the buffers be DMA mapped upfront. Then O_DIRECT is basically just looking up the slot and submitting the bio directly...Normal registered buffers take the page referencing and mapping into userspace out of the hot path, the above branch merely extends that to avoid bio allocation and DMA map+unmap in the hot path for IO."

The patches affect IO_uring, the NVMe PCI driver, and the block code of the Linux kernel. Hopefully these patches get worked into suitable for upstreaming into the mainline Linux kernel in the not too distant future.



[1] https://x.com/axboe/status/2052777420680503501

[2] https://x.com/axboe/status/2052837482614374796

[3] https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git/log/?h=io_uring-io-slots



As part of an ongoing effort to keep you, the Fortune reader, abreast of
the valuable information that daily crosses the USENET, Fortune presents:

News articles that answer *your* questions, #1:

Newsgroups: comp.sources.d
Subject: how do I run C code received from sources
Keywords: C sources
Distribution: na

I do not know how to run the C programs that are posted in the
sources newsgroup. I save the files, edit them to remove the
headers, and change the mode so that they are executable, but I
cannot get them to run. (I have never written a C program before.)

Must they be compiled? With what compiler? How do I do this? If
I compile them, is an object code file generated or must I generate
it explicitly with the > character? Is there something else that
must be done?