summaryrefslogtreecommitdiff
path: root/lib/sha1.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2014-09-11 10:17:38 +0930
committerDavid S. Miller <davem@davemloft.net>2014-09-13 12:52:35 -0400
commitb25bd2515ea32cf5ddd5fd5a2a93b8c9dd875e4f (patch)
treefbbe65f8f3e0d92f8883192a95b0cd1b6d8263e4 /lib/sha1.c
parenteeebf9b1fc0862466c5661d63fbaf66ab4a50210 (diff)
downloadlinux-next-b25bd2515ea32cf5ddd5fd5a2a93b8c9dd875e4f.tar.gz
virtio_ring: unify direct/indirect code paths.
virtqueue_add() populates the virtqueue descriptor table from the sgs given. If it uses an indirect descriptor table, then it puts a single descriptor in the descriptor table pointing to the kmalloc'ed indirect table where the sg is populated. Previously vring_add_indirect() did the allocation and the simple linear layout. We replace that with alloc_indirect() which allocates the indirect table then chains it like the normal descriptor table so we can reuse the core logic. This slows down pktgen by less than 1/2 a percent (which uses direct descriptors), as well as vring_bench, but it's far neater. vring_bench before: 1061485790-1104800648(1.08254e+09+/-6.6e+06)ns vring_bench after: 1125610268-1183528965(1.14172e+09+/-8e+06)ns pktgen before: 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 pktgen after: 779988-790404(786391+/-2.5e+03)pps 361-366(364.35+/-1.3)Mb/sec (361914432-366747456(3.64885e+08+/-1.2e+06)bps) errors: 0 Now, if we make force indirect descriptors by turning off any_header_sg in virtio_net.c: pktgen before: 713773-721062(718374+/-2.1e+03)pps 331-334(332.95+/-0.92)Mb/sec (331190672-334572768(3.33325e+08+/-9.6e+05)bps) errors: 0 pktgen after: 710542-719195(714898+/-2.4e+03)pps 329-333(331.15+/-1.1)Mb/sec (329691488-333706480(3.31713e+08+/-1.1e+06)bps) errors: 0 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib/sha1.c')
0 files changed, 0 insertions, 0 deletions