- Notifications
You must be signed in to change notification settings - Fork424
Library providing helpers for the Linux kernel io_uring support
License
MIT and 2 other licenses found
Licenses found
MIT
LICENSELGPL-2.1
COPYINGGPL-2.0
COPYING.GPLNotificationsYou must be signed in to change notification settings
axboe/liburing
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
liburing--------This is the io_uring library, liburing. liburing provides helpers to setup andteardown io_uring instances, and also a simplified interface forapplications that don't need (or want) to deal with the full kernelside implementation.For more info on io_uring, please see:https://kernel.dk/io_uring.pdfSubscribe to io-uring@vger.kernel.org for io_uring related discussionsand development for both kernel and userspace. The list is archived here:https://lore.kernel.org/io-uring/kernel version dependency--------------------------liburing itself is not tied to any specific kernel release, and hence it'spossible to use the newest liburing release even on older kernels (and viceversa). Newer features may only be available on more recent kernels,obviously.ulimit settings---------------io_uring accounts memory it needs under the rlimit memlocked option, whichcan be quite low on some setups (64K). The default is usually enough formost use cases, but bigger rings or things like registered buffers depleteit quickly. root isn't under this restriction, but regular users are. Goinginto detail on how to bump the limit on various systems is beyond the scopeof this little blurb, but check /etc/security/limits.conf for user specificsettings, or /etc/systemd/user.conf and /etc/systemd/system.conf for systemdsetups. This affects 5.11 and earlier, new kernels are less dependenton RLIMIT_MEMLOCK as it is only used for registering buffers.Regressions tests-----------------The bulk of liburing is actually regression/unit tests for both liburing andthe kernel io_uring support. Please note that this suite isn't expected topass on older kernels, and may even crash or hang older kernels!Building liburing----------------- # # Prepare build config (optional). # # --cc specifies the C compiler. # --cxx specifies the C++ compiler. # ./configure --cc=gcc --cxx=g++; # # Build liburing. # make -j$(nproc); # # Build liburing.pc # make liburing.pc # # Install liburing (headers, shared/static libs, and manpage). # sudo make install;See './configure --help' for more information about build config options.FFI support-----------By default, the build results in 4 lib files: 2 shared libs: liburing.so liburing-ffi.so 2 static libs: liburing.a liburing-ffi.aLanguages and applications that can't use 'static inline' functions inliburing.h should use the FFI variants.liburing's main public interface lives in liburing.h as 'static inline'functions. Users wishing to consume liburing purely as a binary dependencyshould link against liburing-ffi. It contains definitions for every 'staticinline' function.License-------All software contained within this repo is dual licensed LGPL and MIT, seeCOPYING and LICENSE, except for a header coming from the kernel which isdual licensed GPL with a Linux-syscall-note exception and MIT, seeCOPYING.GPL and <https://spdx.org/licenses/Linux-syscall-note.html>.Jens Axboe 2022-05-19
About
Library providing helpers for the Linux kernel io_uring support
Resources
License
MIT and 2 other licenses found
Licenses found
MIT
LICENSELGPL-2.1
COPYINGGPL-2.0
COPYING.GPLSecurity policy
Stars
Watchers
Forks
Packages0
No packages published