@@ -107,7 +107,7 @@ or posting multiple CQEs for a single SQE for multi shot operations or
107107requiring an ** io_uring_enter** (2) syscall to make the kernel begin
108108processing newly added SQEs when using submission queue polling.
109109
110- ## Submission queue polling
110+ ** Submission** \ queue polling
111111
112112One of the goals of ** io_uring** is to provide a means for efficient
113113I/O. To this end, ** io_uring** supports a polling mode that lets you
@@ -120,7 +120,7 @@ avoid the overhead of system calls. A designated kernel thread dequeues
120120SQEs off the SQ as you add them and dispatches them for asynchronous
121121processing.
122122
123- ## Setting up io_uring
123+ ** Setting** \ up io_uring
124124
125125The main steps in setting up ** io_uring** consist of mapping in the
126126shared buffers with ** mmap** (2) calls. In the example program included
@@ -130,7 +130,7 @@ the 2 **mmap**(2) calls that set up the shared submission and completion
130130queues. If your kernel is older than version 5.4, three ** mmap(2)**
131131calls are required.
132132
133- ## Submitting I/O requests
133+ ** Submitting** \ I/O requests
134134
135135The process of submitting a request consists of describing the I/O
136136operation you need to get done using an ** io_uring_sqe** structure
@@ -313,7 +313,7 @@ waiting for a specified count of events to complete. This way, you can
313313be sure to find completion events in the completion queue without having
314314to poll it for events later.
315315
316- ## SQE pointer lifetimes & data stability
316+ ** SQE** \ pointer lifetimes & data stability
317317
318318Due to the fixed size of the submission queue entry (SQE) some data you
319319provide in order to perform a desired operation will be passed in the
@@ -342,7 +342,7 @@ read or written while the operation is inflight. For example, the
342342pointers to a buffer used as part of a ** IORING_OP_WRITE** or
343343** IORING_OP_READ** operation must remain valid until completion.
344344
345- ## Reading completion events
345+ ** Reading** \ completion events
346346
347347Similar to the submission queue (SQ), the completion queue (CQ) is a
348348shared buffer between the kernel and user space. Whereas you placed
@@ -458,7 +458,7 @@ the head needs to be updated to reflect the consumption of the CQE.
458458Attention should be paid to the read and write barriers to ensure
459459successful read and update of the head.
460460
461- ## io_uring performance
461+ ** io_uring** \ performance
462462
463463Because of the shared ring buffers between kernel and user space,
464464** io_uring** can be a zero-copy system. Copying buffers to and from
0 commit comments