<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in loop.h</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>23acda7c221a76ff711d65f4ca90029d43b249a0 - Merge tag &apos;for-7.1/io_uring-20260411&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux</title>
        <link>http://opengrok.net:8080/history/linux/io_uring/loop.h#23acda7c221a76ff711d65f4ca90029d43b249a0</link>
        <description>Merge tag &apos;for-7.1/io_uring-20260411&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linuxPull io_uring updates from Jens Axboe: - Add a callback driven main loop for io_uring, and BPF struct_ops   on top to allow implementing custom event loop logic - Decouple IOPOLL from being a ring-wide all-or-nothing setting,   allowing IOPOLL use cases to also issue certain white listed   non-polled opcodes - Timeout improvements. Migrate internal timeout storage from   timespec64 to ktime_t for simpler arithmetic and avoid copying of   timespec data - Zero-copy receive (zcrx) updates:      - Add a device-less mode (ZCRX_REG_NODEV) for testing and        experimentation where data flows through the copy fallback path      - Fix two-step unregistration regression, DMA length calculations,        xarray mark usage, and a potential 32-bit overflow in id        shifting      - Refactoring toward multi-area support: dedicated refill queue        struct, consolidated DMA syncing, netmem array refilling format,        and guard-based locking - Zero-copy transmit (zctx) cleanup:      - Unify io_send_zc() and io_sendmsg_zc() into a single function      - Add vectorized registered buffer send for IORING_OP_SEND_ZC      - Add separate notification user_data via sqe-&gt;addr3 so        notification and completion CQEs can be distinguished without        extra reference counting - Switch struct io_ring_ctx internal bitfields to explicit flag bits   with atomic-safe accessors, and annotate the known harmless races on   those flags - Various optimizations caching ctx and other request fields in local   variables to avoid repeated loads, and cleanups for tctx setup, ring   fd registration, and read path early returns* tag &apos;for-7.1/io_uring-20260411&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux: (58 commits)  io_uring: unify getting ctx from passed in file descriptor  io_uring/register: don&apos;t get a reference to the registered ring fd  io_uring/tctx: clean up __io_uring_add_tctx_node() error handling  io_uring/tctx: have io_uring_alloc_task_context() return tctx  io_uring/timeout: use &apos;ctx&apos; consistently  io_uring/rw: clean up __io_read() obsolete comment and early returns  io_uring/zcrx: use correct mmap off constants  io_uring/zcrx: use dma_len for chunk size calculation  io_uring/zcrx: don&apos;t clear not allocated niovs  io_uring/zcrx: don&apos;t use mark0 for allocating xarray  io_uring: cast id to u64 before shifting in io_allocate_rbuf_ring()  io_uring/zcrx: reject REG_NODEV with large rx_buf_size  io_uring/cancel: validate opcode for IORING_ASYNC_CANCEL_OP  io_uring/rsrc: use io_cache_free() to free node  io_uring/zcrx: rename zcrx [un]register functions  io_uring/zcrx: check ctrl op payload struct sizes  io_uring/zcrx: cache fallback availability in zcrx ctx  io_uring/zcrx: warn on a repeated area append  io_uring/zcrx: consolidate dma syncing  io_uring/zcrx: netmem array as refiling format  ...

            List of files:
            /linux/io_uring/loop.h</description>
        <pubDate>Mon, 13 Apr 2026 23:22:30 +0000</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>033af2b3eb19c5ed96825572105bca3611635ada - io_uring: introduce callback driven main loop</title>
        <link>http://opengrok.net:8080/history/linux/io_uring/loop.h#033af2b3eb19c5ed96825572105bca3611635ada</link>
        <description>io_uring: introduce callback driven main loopThe io_uring_enter() has a fixed order of execution: it submitsrequests, waits for completions, and returns to the user. Allow tooptionally replace it with a custom loop driven by a callback calledloop_step. The basic requirements to the callback is that it should beable to submit requests, wait for completions, parse them and repeat.Most of the communication including parameter passing can be implementedvia shared memory.The callback should return IOU_LOOP_CONTINUE to continue execution orIOU_LOOP_STOP to return to the user space. Note that the kernel maydecide to prematurely terminate it as well, e.g. in case the process wassignalled or killed.The hook takes a structure with parameters. It can be used to ask thekernel to wait for CQEs by setting cq_wait_idx to the CQE index it wantsto wait for. Spurious wake ups are possible and even likely, the callbackis expected to handle it. There will be more parameters in the futurelike timeout.It can be used with kernel callbacks, for example, as a slow pathdeprecation mechanism overwiting SQEs and emulating the wantedbehaviour, however it&apos;s more useful together with BPF programsimplemented in following patches.Note that keeping it separately from the normal io_uring wait loopmakes things much simpler and cleaner. It keeps it in one place insteadof spreading a bunch of checks in different places including disablingthe submission path. It holds the lock by default, which is a better fitfor BPF synchronisation and the loop execution model. It nicely avoidsexisting quirks like forced wake ups on timeout request completion. Andit should be easier to implement new features.Signed-off-by: Pavel Begunkov &lt;asml.silence@gmail.com&gt;Link: https://patch.msgid.link/a2d369aa1c9dd23ad7edac9220cffc563abcaed6.1772109579.git.asml.silence@gmail.comSigned-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;

            List of files:
            /linux/io_uring/loop.h</description>
        <pubDate>Thu, 26 Feb 2026 12:48:38 +0000</pubDate>
        <dc:creator>Pavel Begunkov &lt;asml.silence@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
