liburing | This is the io_uring library

 by   axboe C Version: liburing-2.4 License: MIT

kandi X-RAY | liburing Summary

kandi X-RAY | liburing Summary

liburing is a C library. liburing has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

This is the io_uring library, liburing. liburing provides helpers to setup and teardown io_uring instances, and also a simplified interface for applications that don't need (or want) to deal with the full kernel side implementation.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              liburing has a medium active ecosystem.
              It has 2170 star(s) with 322 fork(s). There are 101 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 74 open issues and 487 have been closed. On average issues are closed in 13 days. There are 7 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of liburing is liburing-2.4

            kandi-Quality Quality

              liburing has no bugs reported.

            kandi-Security Security

              liburing has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              liburing is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              liburing releases are available to install and integrate.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of liburing
            Get all kandi verified functions for this library.

            liburing Key Features

            No Key Features are available at this moment for liburing.

            liburing Examples and Code Snippets

            No Code Snippets are available at this moment for liburing.

            Community Discussions

            QUESTION

            How much locked memory does io_uring_setup need?
            Asked 2021-May-07 at 05:59

            When using io_uring_queue_init it calls io_uring_setup. There's an ENOMEM returned when there is insufficient amount of locked memory available for the process.

            A strace will look something like:

            ...

            ANSWER

            Answered 2021-May-07 at 05:59

            Thanks to Jens Axboe the following to liburing library calls where added (>=liburing-2.1) returning the size in bytes, 0 if not required, or -errno for errors.

            Source https://stackoverflow.com/questions/66938939

            QUESTION

            io_uring user_data field is always zero
            Asked 2021-Apr-11 at 17:55

            I'm playing around with io_uring, https://kernel.dk/io_uring.pdf, to see if it can be used for async file I/O for logging. This is a simple program that opens a file, stats the file, and then reads the first 4k from the file. This program runs to completion successfully when the file exists and is readable. But the user_data field in the completion queue entry is always zero. The documentation for io_uring says:

            user_data is common across op-codes, and is untouched by the kernel. It's simply copied to the completion event, cqe, when a completion event is posted for this request.

            Since the completions are not ordered the user_data field is needed to match completions with submissions. If the field is always zero then how can it be used?

            ...

            ANSWER

            Answered 2021-Apr-11 at 17:55

            What happens if you try and set user_data after your calls to io_uring_prep_openat()/io_uring_prep_statx()?

            I ask this because doing a Google search for io_uring_prep_statx suggests it comes from liburing library.

            Searching the liburing source for io_uring_prep_openat leads us to a definition of io_uring_prep_openat() in liburing.h:

            Source https://stackoverflow.com/questions/67042050

            QUESTION

            liburing / IORING_OP_PROVIDE_BUFFERS - wrong buffer assigned to read op
            Asked 2020-Jul-04 at 15:04

            I am playing with liburing and io_uring, the former is built from the master branch and for the latter i am using the kernel 5.8.0-rc3.

            I am facing the issue I am going to explain on previous version of the kernel as well (5.7.6, 5.8.0-rc1).

            The tests using the provide buffers look like working as expected.

            I am trying to implement a network tcp/ip server using IORING_FEAT_FAST_POLL and IORING_OP_PROVIDE_BUFFERS and I am using https://github.com/frevib/io_uring-echo-server as code reference.

            The issue I am facing is that the buffer id is always set to the last of the registered buffers but I can see that the actual buffer used by the kernel is not that.

            I have reduced the amount of registered buffers to just 10 and added some debugging info, it's now printing the content of all the buffers

            Upon the first RECV from the server I get in cqe->flags >> 16 the ID of the buffer containing the data and it's the last one of the list, and I can see that it's containing the data but upon the second RECV the kernel now used the buffer id 0 (the first one) but cqe->flags >> 16 is still containing the ID of the last one.

            The cause of this is an invocation of io_uring_prep_provide_buffers, infact upon the second invocation the issues arise.

            Out of curiosity I have also tried to register the buffers one by one using

            ...

            ANSWER

            Answered 2020-Jul-04 at 12:28

            There was a bug in the code with re-registering the buffer: https://github.com/frevib/io_uring-echo-server/commit/aa6f2a09ca14c6aa17779a22343b9e7d4b3c7994

            Checkout the latest master branch, it should work now: https://github.com/frevib/io_uring-echo-server

            Source https://stackoverflow.com/questions/62716631

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install liburing

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/axboe/liburing.git

          • CLI

            gh repo clone axboe/liburing

          • sshUrl

            git@github.com:axboe/liburing.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link