Announcement

Collapse
No announcement yet.

IO_uring Network Zero-Copy Send Is Boasting Mighty Speed-Ups

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    I need IPv6 optimization, all my telecommunication is in IPv6 for my cluster.
    Developer of Ultracopier/CatchChallenger and CEO of Confiared

    Comment


    • #12
      Originally posted by Random_Jerk View Post
      Can someone please explain if or how this could help the desktop side of things?
      HTTP/3 runs over QUIC which uses UDP, as such this has the potential to reduce cpu load or speed up the data transfers for cpu bound machines for an increasingly large number of web services desktop users use. Not to mention VPN connections which run over UDP such as DTLS and the video streaming services. It'll be interesting to see if it can reduce power consumption overall.
      Last edited by NathanG; 30 November 2021, 08:13 PM.

      Comment


      • #13
        Originally posted by Random_Jerk View Post
        Can someone please explain if or how this could help the desktop side of things?
        Maybe not this feature in particular but io_uring in general benefits the desktop a lot too in everything from better VM performance to multimedia streaming.

        Comment


        • #14
          Originally posted by Random_Jerk View Post
          Can someone please explain if or how this could help the desktop side of things?
          No, probably not. Reducing socket overhead from like 2 microseconds to 1 microsecond probably won't make much difference for you.

          Perhaps, if you used an X server without going through DRI, there could be some small benefit when playing full-screen video on like an 8K monitor.

          Comment


          • #15
            Originally posted by jacob View Post
            io_uring in general benefits the desktop a lot too in everything from better VM performance to multimedia streaming.
            Really? How?

            Comment


            • #16
              Originally posted by reavertm View Post
              Technical advancements never result in raising employees' salary. Wake up.
              Exactly. Meanwhile, we have to do more work to make use of these advanced APIs.

              Not to sound like a luddite, mind you. io_uring is great, just employers aren't.

              Comment


              • #17
                Originally posted by coder View Post
                Really? How?
                If a movie player can do io asynchronously in the background the benefit is self-evident

                Comment


                • #18
                  Originally posted by er888kh View Post

                  It can make company's servers run faster, which lowers the operational costs, which makes the company more profitable, which might increase employees' salary, and as result they might be able to afford better hardware.
                  which also might yield more money for charity for hungry people in Africa, end wars and help colonize Mars.

                  Comment


                  • #19
                    Technical question. While replacing epoll + inotify with io_uring + inotify I stumbled across the fact that I need to resubmit after each new event (otherwise I don't get new events), is it the way it should be done or am I doing something wrong?
                    The relevant (imaginary) C++ source code:

                    Code:
                    while(true)
                    {
                       struct io_uring_cqe *cqe = nullptr;
                       int ret = io_uring_wait_cqe(ring, &cqe);
                       if (ret < 0) {
                           mtl_errno();
                          break;
                       }
                       if (cqe->res < 0) {
                          io_uring_cqe_seen(ring, cqe);
                          mtl_warn("Async readv failed: %s", strerror(-cqe->res));
                          break;
                       }
                    
                       ProcessEvent(cqe);
                    
                    // the next 4 lines are necessary, can't io_uring continue working without having to resubmit/execute these lines?:
                       struct io_uring_sqe *sqe = io_uring_get_sqe(ring);
                       io_uring_sqe_set_data(sqe, io_uring_cqe_get_data(cqe));
                       io_uring_cqe_seen(ring, cqe);
                       io_uring_submit(ring);
                    }
                    Last edited by cl333r; 01 December 2021, 01:39 AM.

                    Comment


                    • #20
                      Originally posted by NathanG View Post
                      HTTP/3 runs over QUIC which uses UDP,
                      Ugh, UDP plays hell on datacentre network infrastructure. We've gotten really good at managing TCP contexts, UDP doesn't have a specific behaviour, and require that you throw much more expensive hardware at the problem.

                      Comment

                      Working...
                      X