[PATCH] staging: greybus: operation: add generic timeout support
Johan Hovold
johan at kernel.org
Tue Jan 24 15:09:01 UTC 2017
On Mon, Jan 23, 2017 at 05:50:23PM +0100, Johan Hovold wrote:
> On Mon, Jan 23, 2017 at 03:39:43PM +0000, Bryan O'Donoghue wrote:
> > Have you run this through loopback without any # of in-flight operations
> > constrained ?
>
> No, not yet as that would require also your changes to the loopback
> driver (the loopback driver still has its custom timeout implementation
> after this patch).
>
> I tested this using gbsim and synchronous operations as my Ara build
> setup is currently broken.
Ok, I spent my morning restoring my Ara build setup (java apparently
broke after an nss update).
I tested Bryan's loopback cleanups on top of my core-timeout patch and
all look fine.
Some stats below for the interested.
Consistently increased throughput, which is not unexpected even if a
more controlled benchmark is needed to claim that to be a direct
consequence of the more efficient timeout handling (and not at least
partly due to noise). Note that the final test with 1000 outstanding
async operations shows a 50% throughput increase however.
Bryan, if you could consider my review feedback and respin your last
three patches on top of my timeout patch, I think we should be good.
Thanks,
Johan
core timeouts + loopback cleanups
---------------------------------
arche:/ # gb_loopback_test -i 1000 -s 128 -t sink -p
1970-9-3 22:9:55
test: sink
path: gb_loopback0
size: 128
iterations: 1000
errors: 0
async: Disabled
requests per-sec: min=438, max=443, average=441.816132, jitter=5
ap-throughput B/s: min=68403 max=69198 average=68923.312500 jitter=795
ap-latency usec: min=1801 max=3303 average=2252.021973 jitter=1502
apbridge-latency usec: min=0 max=0 average=0.000000 jitter=0
gbphy-latency usec: min=0 max=0 average=0.000000 jitter=0
arche:/ # gb_loopback_test -i 1000 -s 128 -t sink -x -c 4 -p
1970-9-3 22:9:24
test: sink
path: gb_loopback0
size: 128
iterations: 1000
errors: 0
async: Enabled
requests per-sec: min=1556, max=1556, average=1556.902466, jitter=0
ap-throughput B/s: min=242876 max=242876 average=242876.781250 jitter=0
ap-latency usec: min=1548 max=3949 average=2226.724121 jitter=2401
apbridge-latency usec: min=0 max=0 average=0.000000 jitter=0
gbphy-latency usec: min=0 max=0 average=0.000000 jitter=0
arche:/ # gb_loopback_test -i 1000 -s 128 -t sink -x -c 4 -p -o 2000
1970-9-3 22:7:35
test: sink
path: gb_loopback0
size: 128
iterations: 1000
errors: 479
async: Enabled
requests per-sec: min=889, max=889, average=889.307678, jitter=0
ap-throughput B/s: min=138731 max=138731 average=138732.000000 jitter=0
ap-latency usec: min=1489 max=3937 average=2498.234131 jitter=2448
apbridge-latency usec: min=0 max=0 average=0.000000 jitter=0
gbphy-latency usec: min=0 max=0 average=0.000000 jitter=0
arche:/ # gb_loopback_test -i 1000 -s 128 -t sink -x -c 1000 -p -o 500000
1970-9-3 22:13:37
test: sink
path: gb_loopback0
size: 128
iterations: 1000
errors: 0
async: Enabled
requests per-sec: min=2448, max=2448, average=2448.567871, jitter=0
ap-throughput B/s: min=381976 max=381976 average=381976.593750 jitter=0
ap-latency usec: min=1818 max=390546 average=197478.406250 jitter=388728
apbridge-latency usec: min=0 max=0 average=0.000000 jitter=0
gbphy-latency usec: min=0 max=0 average=0.000000 jitter=0
loopback custom timeouts
------------------------
arche:/ # gb_loopback_test -i 1000 -s 128 -t sink -p
1970-9-3 22:18:26
test: sink
path: gb_loopback0
size: 128
iterations: 1000
errors: 0
async: Disabled
requests per-sec: min=399, max=410, average=404.397247, jitter=11
ap-throughput B/s: min=62393 max=64003 average=63085.972656 jitter=1610
ap-latency usec: min=1738 max=4180 average=2456.197021 jitter=2442
apbridge-latency usec: min=0 max=0 average=0.000000 jitter=0
gbphy-latency usec: min=0 max=0 average=0.000000 jitter=0
arche:/ # gb_loopback_test -i 1000 -s 128 -t sink -x -c 4 -p
1970-9-3 22:19:45
test: sink
path: gb_loopback0
size: 128
iterations: 1000
errors: 0
async: Enabled
requests per-sec: min=1602, max=1602, average=1602.304810, jitter=0
ap-throughput B/s: min=249959 max=249959 average=249959.546875 jitter=0
ap-latency usec: min=1370 max=12380 average=2295.093994 jitter=11010
apbridge-latency usec: min=0 max=0 average=0.000000 jitter=0
gbphy-latency usec: min=0 max=0 average=0.000000 jitter=0
arche:/ # gb_loopback_test -i 1000 -s 128 -t sink -x -c 4 -p -o 2000
1970-9-3 22:20:21
test: sink
path: gb_loopback0
size: 128
iterations: 1000
errors: 500
async: Enabled
requests per-sec: min=840, max=840, average=840.522583, jitter=0
ap-throughput B/s: min=131121 max=131121 average=131121.531250 jitter=0
ap-latency usec: min=1439 max=7243 average=2192.704102 jitter=5804
apbridge-latency usec: min=0 max=0 average=0.000000 jitter=0
gbphy-latency usec: min=0 max=0 average=0.000000 jitter=0
arche:/ # gb_loopback_test -i 1000 -s 128 -t sink -x -c 1000 -p -o 500000
1970-9-3 22:21:5
test: sink
path: gb_loopback0
size: 128
iterations: 1000
errors: 0
async: Enabled
requests per-sec: min=1601, max=1601, average=1601.699097, jitter=0
ap-throughput B/s: min=249865 max=249865 average=249865.062500 jitter=0
ap-latency usec: min=6675 max=271112 average=137154.109375 jitter=264437
apbridge-latency usec: min=0 max=0 average=0.000000 jitter=0
gbphy-latency usec: min=0 max=0 average=0.000000 jitter=0
More information about the devel
mailing list