• Rusty Russell's avatar
    virtio_ring: assume sgs are always well-formed. · eeebf9b1
    Rusty Russell authored
    We used to have several callers which just used arrays.  They're
    gone, so we can use sg_next() everywhere, simplifying the code.
    
    On my laptop, this slowed down vring_bench by 15%:
    
    vring_bench before:
    	936153354-967745359(9.44739e+08+/-6.1e+06)ns
    vring_bench after:
    	1061485790-1104800648(1.08254e+09+/-6.6e+06)ns
    
    However, a more realistic test using pktgen on a AMD FX(tm)-8320 saw
    a few percent improvement:
    
    pktgen before:
      767390-792966(785159+/-6.5e+03)pps 356-367(363.75+/-2.9)Mb/sec (356068960-367936224(3.64314e+08+/-3e+06)bps) errors: 0
    
    pktgen after:
       787781-796334(793165+/-2.4e+03)pps 365-369(367.5+/-1.2)Mb/sec (365530384-369498976(3.68028e+08+/-1.1e+06)bps) errors: 0
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    eeebf9b1
virtio_ring.c 22.6 KB