Announcement

Collapse
No announcement yet.

IO_uring Network Zero-Copy Transmit Continues Looking Great For Linux

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

  • IO_uring Network Zero-Copy Transmit Continues Looking Great For Linux

    Phoronix: IO_uring Network Zero-Copy Transmit Continues Looking Great For Linux

    Sent out last month were an early set of patches working on IO_uring zero-copy send support for the networking subsystem. This work to boost the throughput potential has evolved now into a second revision of the patches and continues looking very promising...

    https://www.phoronix.com/scan.php?pa...uring-ZC-Tx-v2

  • #2
    That's amazing to hear. Even if just for UDP, that means more throughput for video conference.

    Comment


    • #3
      Nobody cares about IPv6.

      Comment


      • #4
        While i do quite like io_uring and the massive improvements it brings, these numbers do need a bit more context before i fully get the benefit.

        Assume 2 pc's. For context, an iperf test between the 2 pc's is going to get ~980mbit/sec. About the theoretical maximum.
        Now assume i can send files over those two pc's too (i made an application to use sendfile to get that done). This transfer is going at near the theoretical max speed too. Say ~950mbitsec.

        With those in mind, what's the advantage of using io_uring here as a replacement? I mean in this very specific case! I'm very unlikely to much higher throughput and definitely won't hit a 2.2x improvement as that's already impossible.

        Perhaps i'm answering myself here by saying this, but should i see this io_uring path in this specific case to be just more CPU friendly to execute? As in the throughput is likely the same but the cpu usage during that throughput is reduced?

        I'm keen on learning more on this!

        Comment


        • #5
          Originally posted by Vorpal View Post
          Nobody cares about IPv6.
          There are IPv6 benchmarks also. Just read the whole cover letter of patch series.

          Comment


          • #6
            Originally posted by Vorpal View Post
            Nobody cares about IPv6.
            I state that I am ignorant on the subject, but I was interested years ago, when the IPV4 world seemed to have to end at any moment.
            IPV6 seems destined to die before it is born and maybe in a while we will all go directly to IPV8, perhaps by changing the name someone will use it! 🤔

            Comment


            • #7
              Originally posted by Charlie68 View Post

              I state that I am ignorant on the subject, but I was interested years ago, when the IPV4 world seemed to have to end at any moment.
              IPV6 seems destined to die before it is born and maybe in a while we will all go directly to IPV8, perhaps by changing the name someone will use it! 🤔
              Ipv8 is a decentralized layer, based on p2p. I'm not sure if the name is really copyrighteable

              https://py-ipv8.readthedocs.io/en/latest/

              Comment


              • #8
                Originally posted by markg85 View Post
                Assume 2 pc's. For context, an iperf test between the 2 pc's is going to get ~980mbit/sec. About the theoretical maximum.
                Now assume i can send files over those two pc's too (i made an application to use sendfile to get that done). This transfer is going at near the theoretical max speed too. Say ~950mbitsec.
                This is gigabit speeds - now apply this to 100 and 400 gbit cards - I'd assume that the target here is RDMA like performance

                Comment


                • #9
                  Originally posted by tildearrow View Post
                  That's amazing to hear. Even if just for UDP, that means more throughput for video conference.
                  HTTP/3 will be going over UDP

                  Comment


                  • #10
                    Originally posted by markg85 View Post
                    While i do quite like io_uring and the massive improvements it brings, these numbers do need a bit more context before i fully get the benefit.

                    Assume 2 pc's. For context, an iperf test between the 2 pc's is going to get ~980mbit/sec. About the theoretical maximum.
                    Now assume i can send files over those two pc's too (i made an application to use sendfile to get that done). This transfer is going at near the theoretical max speed too. Say ~950mbitsec.

                    With those in mind, what's the advantage of using io_uring here as a replacement? I mean in this very specific case! I'm very unlikely to much higher throughput and definitely won't hit a 2.2x improvement as that's already impossible.

                    Perhaps i'm answering myself here by saying this, but should i see this io_uring path in this specific case to be just more CPU friendly to execute? As in the throughput is likely the same but the cpu usage during that throughput is reduced?

                    I'm keen on learning more on this!
                    what not use firehose ?

                    Comment

                    Working...
                    X