xref: /aosp_15_r20/external/liburing/README (revision 25da2bea747f3a93b4c30fd9708b0618ef55a0e6)
1*25da2beaSAndroid Build Coastguard Workerliburing
2*25da2beaSAndroid Build Coastguard Worker--------
3*25da2beaSAndroid Build Coastguard Worker
4*25da2beaSAndroid Build Coastguard WorkerThis is the io_uring library, liburing. liburing provides helpers to setup and
5*25da2beaSAndroid Build Coastguard Workerteardown io_uring instances, and also a simplified interface for
6*25da2beaSAndroid Build Coastguard Workerapplications that don't need (or want) to deal with the full kernel
7*25da2beaSAndroid Build Coastguard Workerside implementation.
8*25da2beaSAndroid Build Coastguard Worker
9*25da2beaSAndroid Build Coastguard WorkerFor more info on io_uring, please see:
10*25da2beaSAndroid Build Coastguard Worker
11*25da2beaSAndroid Build Coastguard Workerhttps://kernel.dk/io_uring.pdf
12*25da2beaSAndroid Build Coastguard Worker
13*25da2beaSAndroid Build Coastguard WorkerSubscribe to [email protected] for io_uring related discussions
14*25da2beaSAndroid Build Coastguard Workerand development for both kernel and userspace. The list is archived here:
15*25da2beaSAndroid Build Coastguard Worker
16*25da2beaSAndroid Build Coastguard Workerhttps://lore.kernel.org/io-uring/
17*25da2beaSAndroid Build Coastguard Worker
18*25da2beaSAndroid Build Coastguard Worker
19*25da2beaSAndroid Build Coastguard Workerkernel version dependency
20*25da2beaSAndroid Build Coastguard Worker--------------------------
21*25da2beaSAndroid Build Coastguard Worker
22*25da2beaSAndroid Build Coastguard Workerliburing itself is not tied to any specific kernel release, and hence it's
23*25da2beaSAndroid Build Coastguard Workerpossible to use the newest liburing release even on older kernels (and vice
24*25da2beaSAndroid Build Coastguard Workerversa). Newer features may only be available on more recent kernels,
25*25da2beaSAndroid Build Coastguard Workerobviously.
26*25da2beaSAndroid Build Coastguard Worker
27*25da2beaSAndroid Build Coastguard Worker
28*25da2beaSAndroid Build Coastguard Workerulimit settings
29*25da2beaSAndroid Build Coastguard Worker---------------
30*25da2beaSAndroid Build Coastguard Worker
31*25da2beaSAndroid Build Coastguard Workerio_uring accounts memory it needs under the rlimit memlocked option, which
32*25da2beaSAndroid Build Coastguard Workercan be quite low on some setups (64K). The default is usually enough for
33*25da2beaSAndroid Build Coastguard Workermost use cases, but bigger rings or things like registered buffers deplete
34*25da2beaSAndroid Build Coastguard Workerit quickly. root isn't under this restriction, but regular users are. Going
35*25da2beaSAndroid Build Coastguard Workerinto detail on how to bump the limit on various systems is beyond the scope
36*25da2beaSAndroid Build Coastguard Workerof this little blurb, but check /etc/security/limits.conf for user specific
37*25da2beaSAndroid Build Coastguard Workersettings, or /etc/systemd/user.conf and /etc/systemd/system.conf for systemd
38*25da2beaSAndroid Build Coastguard Workersetups. This affects 5.11 and earlier, new kernels are less dependent
39*25da2beaSAndroid Build Coastguard Workeron RLIMIT_MEMLOCK as it is only used for registering buffers.
40*25da2beaSAndroid Build Coastguard Worker
41*25da2beaSAndroid Build Coastguard Worker
42*25da2beaSAndroid Build Coastguard WorkerRegressions tests
43*25da2beaSAndroid Build Coastguard Worker-----------------
44*25da2beaSAndroid Build Coastguard Worker
45*25da2beaSAndroid Build Coastguard WorkerThe bulk of liburing is actually regression/unit tests for both liburing and
46*25da2beaSAndroid Build Coastguard Workerthe kernel io_uring support. Please note that this suite isn't expected to
47*25da2beaSAndroid Build Coastguard Workerpass on older kernels, and may even crash or hang older kernels!
48*25da2beaSAndroid Build Coastguard Worker
49*25da2beaSAndroid Build Coastguard Worker
50*25da2beaSAndroid Build Coastguard WorkerLicense
51*25da2beaSAndroid Build Coastguard Worker-------
52*25da2beaSAndroid Build Coastguard Worker
53*25da2beaSAndroid Build Coastguard WorkerAll software contained within this repo is dual licensed LGPL and MIT, see
54*25da2beaSAndroid Build Coastguard WorkerCOPYING and LICENSE, except for a header coming from the kernel which is
55*25da2beaSAndroid Build Coastguard Workerdual licensed GPL with a Linux-syscall-note exception and MIT, see
56*25da2beaSAndroid Build Coastguard WorkerCOPYING.GPL and <https://spdx.org/licenses/Linux-syscall-note.html>.
57*25da2beaSAndroid Build Coastguard Worker
58*25da2beaSAndroid Build Coastguard WorkerJens Axboe 2022-05-19
59