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