diff options
author | Chunrong Guo <chunrong.guo@nxp.com> | 2017-04-18 15:11:50 +0800 |
---|---|---|
committer | Otavio Salvador <otavio@ossystems.com.br> | 2017-05-02 17:54:58 -0300 |
commit | e756964ac2595d880304f227dec7bdb424d7d974 (patch) | |
tree | 28c067a5652216278a92e39144d48ac95f0e8f12 /recipes-kernel/cryptodev/sdk_patches/0055-add-multithreaded-wrapper-for-async-speed-test.patch | |
parent | cfb3ddaaaa78204ef5281c8627eed08f4f7e3f09 (diff) | |
download | meta-freescale-e756964ac2595d880304f227dec7bdb424d7d974.tar.gz |
cryptodev: update to 6c2b61c
**include the following changes
6c2b61c - update copyright notes
f79d523 - fix: reset finish condition before test start
e8f7a91 - Merge remote-tracking branch 'upstream/master'
6818263 - Fix ablkcipher algorithms usage in v4.8+ kernels
26e167f - zc: Use the power of #elif
e49fe25 - adjust to API changes in kernel >=4.10
2b29be8 - adjust to API changes in kernel >=4.10
c3afb40 - add support for rsa speed tests
c9b7a80 - close the session after every test
ba49470 - add support for authenc(hmac(sha1), cbc(aes)) speed tests
690cd62 - Merge branch 'master' into hpe2016
5adf04e - Merge remote-tracking branch 'upstream/master'
840c7ba - remove not used variable
2dbbb23 - do more strict code checking to avoid maintenance issues
88223e4 - avoid implicit conversion between signed and unsigned char
8db6905 - use buf_align macro to reduce code duplication
b6d0e0f - rename header file to clarify purpose
1fd6062 - fix warnings of "implicit declaration of function" in async_speed
ff3c8ab - remove not used local variables
25a1276 - fix incorrect return code in case of error from openssl_cioccrypt
e7ef4ea - Merge pull request #17 from michaelweiser/gup_flags
99c6d21 - fix ignored SIGALRM signals on some platforms
71975fa - setting KERNEL_DIR is not necessary to build tests
a96ff97 - fix issues with install target
07748d3 - Merge branch 'master' into hpe2016
cc89148 - Fix ablkcipher algorithms usage in v4.8+ kernels
4d6e4fb - Merge remote-tracking branch 'upstream/master'
f126e48 - Adjust to another change in the user page API
4257fce - add -async option to run_crypto_tests.sh
f953164 - merge sync and async benchmarks into a single program
e7af57b - add % to cpu idle for convenience
1883c95 - add a wrapper script for running all tests
998b66b - add notes about configured limits in SEC driver
b1a35f3 - fix ignored SIGALRM signals on some platforms
b754517 - use the same algorithm names in sync_speed as in async_speed
8baefa4 - force LC_TIME value to avoid mpstat not using ISO8601 format
d0978b5 - add sync speed tests with the same format as async ones
15d890b - graceful exit if cryptodev is not built with ASYNC flags
9a595bf - fix typo, use consistent spacing
9461878 - remove output line because it does not add clarity to the results
b09c17f - the C standard used by cryptodev is C90 with GNU extensions
447808d - exit early if cryptodev tests are not installed
493afd3 - fix incorrect handling of error cases...
e0d2c88 - make default output tabular
abc007a - really fix (again...) the mpstat issue
2696cd5 - use $(...) instead of `...` for consistency
e8fb004 - fix the scale of the runtime value
119151b - remove old results to avoid incorrect reports
71ac3d5 - fix the reported unit
8c47a0c - setting KERNEL_DIR is not necessary to build tests
182b307 - fix issues with install target
5021828 - do more strict code checking to avoid maintenance issues
ab239d7 - return error code of the test if there is one
b5228f2 - remove not used local variables
90d67ce - avoid implicit conversion between signed and unsigned char
4b442ca - fix build warnings on implicit function declarations
2821b92 - add a little space in the output for clarity
9d0ef05 - more precision in running mpstat
0180e2b - fix some issues with parsing mpstat output
4257fce - add -async option to run_crypto_tests.sh
f953164 - merge sync and async benchmarks into a single program
e7af57b - add % to cpu idle for convenience
7d7a733 - sanity check on /dev/crypto availability
137c0c4 - gracefull stop for async speed tests
600eb70 - fix: set min value when allocating alligned memory buffers
18408c9 - add multithreaded wrapper for async speed test
854cc84 - rename algorithm names for clarity
216f235 - honor the -m flag in async_speed
1023ede - add flag to report in a machine friendly format
219a8b4 - enable async code by default
9def784 - Merge remote-tracking branch 'radualexe/new_tests`
149dc1c - add basic optargs support for async_speed test
9595499 - add support for crc32c hash sync speed test
83e3840 - add support for aes-256-xts sync speed test
fff72ae - add support for sha2-256 hash async speed test
b961800 - add support for sha1 hash async speed test
fea5006 - add support for crc32c hash async speed test
8768fad - add aes-256-xts support for async speed test
Signed-off-by: Chunrong Guo <B40290@freescale.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'recipes-kernel/cryptodev/sdk_patches/0055-add-multithreaded-wrapper-for-async-speed-test.patch')
-rw-r--r-- | recipes-kernel/cryptodev/sdk_patches/0055-add-multithreaded-wrapper-for-async-speed-test.patch | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/recipes-kernel/cryptodev/sdk_patches/0055-add-multithreaded-wrapper-for-async-speed-test.patch b/recipes-kernel/cryptodev/sdk_patches/0055-add-multithreaded-wrapper-for-async-speed-test.patch new file mode 100644 index 00000000..4129010b --- /dev/null +++ b/recipes-kernel/cryptodev/sdk_patches/0055-add-multithreaded-wrapper-for-async-speed-test.patch | |||
@@ -0,0 +1,173 @@ | |||
1 | From 789d3c5ecda60a6dc5d5b3597047ad65c412f10d Mon Sep 17 00:00:00 2001 | ||
2 | From: Cristian Stoica <cristian.stoica@nxp.com> | ||
3 | Date: Tue, 25 Oct 2016 15:30:59 +0300 | ||
4 | Subject: [PATCH 055/104] add multithreaded wrapper for async speed test | ||
5 | |||
6 | Signed-off-by: Cristian Stoica <cristian.stoica@nxp.com> | ||
7 | --- | ||
8 | tests/Makefile | 1 + | ||
9 | tests/async_speed_multi.sh | 140 +++++++++++++++++++++++++++++++++++++++++++++ | ||
10 | 2 files changed, 141 insertions(+) | ||
11 | create mode 100755 tests/async_speed_multi.sh | ||
12 | |||
13 | diff --git a/tests/Makefile b/tests/Makefile | ||
14 | index 683f40b..6424c11 100644 | ||
15 | --- a/tests/Makefile | ||
16 | +++ b/tests/Makefile | ||
17 | @@ -40,6 +40,7 @@ install: | ||
18 | for prog in $(hostprogs); do \ | ||
19 | install -m 755 $$prog $(DESTDIR)/$(bindir)/tests_cryptodev/; \ | ||
20 | done | ||
21 | + install -m 755 async_speed_multi.sh $(DESTDIR)/$(bindir) | ||
22 | |||
23 | clean: | ||
24 | rm -f *.o *~ $(hostprogs) | ||
25 | diff --git a/tests/async_speed_multi.sh b/tests/async_speed_multi.sh | ||
26 | new file mode 100755 | ||
27 | index 0000000..761c0cb | ||
28 | --- /dev/null | ||
29 | +++ b/tests/async_speed_multi.sh | ||
30 | @@ -0,0 +1,140 @@ | ||
31 | +#!/bin/bash | ||
32 | +# | ||
33 | +# Copyright 2016 NXP Semiconductors | ||
34 | +# | ||
35 | +# This program is free software: you can redistribute it and/or modify | ||
36 | +# it under the terms of the GNU General Public License as published by | ||
37 | +# the Free Software Foundation, either version 2 of the License, or | ||
38 | +# (at your option) any later version. | ||
39 | +# | ||
40 | +# This program is distributed in the hope that it will be useful, | ||
41 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
42 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
43 | +# GNU General Public License for more details. | ||
44 | +# | ||
45 | +# You should have received a copy of the GNU General Public License | ||
46 | +# along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
47 | + | ||
48 | + | ||
49 | + | ||
50 | +# no user-configurable options below this line | ||
51 | + | ||
52 | +NUM_CORES=`nproc` | ||
53 | +OUT_BASENAME="async_speed" | ||
54 | +MPSTAT="mpstat" | ||
55 | +MPSTAT_OUT="mpstat_out" | ||
56 | + | ||
57 | +function usage | ||
58 | +{ | ||
59 | +cat << EOF | ||
60 | +Usage: `basename $0` [OPTIONS] <alg_name> | ||
61 | + | ||
62 | + -m <threads> number of threads to run with (defaults to number of cores) | ||
63 | + -t <secs> time to run each test (default 10 secs) | ||
64 | + -n <bytes> size of the test buffer (default 256 bytes) | ||
65 | + -h show this help | ||
66 | + | ||
67 | +alg_name: null, aes-128-cbc, aes-256-xts, sha1, sha256, crc32c | ||
68 | +EOF | ||
69 | +} | ||
70 | + | ||
71 | +function SUM { | ||
72 | + paste -sd+ - | bc -l | ||
73 | +} | ||
74 | + | ||
75 | +function get_cpu_idle | ||
76 | +{ | ||
77 | + header_line=`grep %idle ${MPSTAT_OUT} | head -n 1 | sed 's/\s\+/ /g'` | ||
78 | + idle_column=`echo $header_line | wc -w` | ||
79 | + | ||
80 | + all_cpu_idle=`grep all ${MPSTAT_OUT} | tail -n +2 | sed 's/\s\+/ /g' | cut -d' ' -f ${idle_column} | SUM` | ||
81 | + mpstat_lines=`grep all ${MPSTAT_OUT} | tail -n +2 | wc -l` | ||
82 | + | ||
83 | + average_idle=`echo "scale=2; $all_cpu_idle / $mpstat_lines" | bc -l` | ||
84 | + echo $average_idle | ||
85 | +} | ||
86 | + | ||
87 | +function run_parallel | ||
88 | +{ | ||
89 | + trap control_c SIGINT | ||
90 | + | ||
91 | + OPTIONS="-t $tvalue -n $nvalue -m" | ||
92 | + CMD="async_speed $OPTIONS $alg_name" | ||
93 | + | ||
94 | + echo "Running $mvalue threads in parallel:" | ||
95 | + echo " $CMD" | ||
96 | + | ||
97 | + $MPSTAT 1 $(($tvalue-1)) &> $MPSTAT_OUT & | ||
98 | + MPSTAT_PID=$! | ||
99 | + | ||
100 | + PIDS="" | ||
101 | + start=`date +%s.%N` | ||
102 | + | ||
103 | + for i in `seq 0 $(($mvalue-1))` | ||
104 | + do | ||
105 | + CMD_OUT="${OUT_BASENAME}_${i}" | ||
106 | + | ||
107 | + $CMD &> $CMD_OUT & | ||
108 | + PID=$! | ||
109 | + AFFINITY=$(($i % $NUM_CORES)) | ||
110 | + taskset -pc $AFFINITY $PID > /dev/null | ||
111 | + | ||
112 | + PIDS="$PID $PIDS" | ||
113 | + done | ||
114 | + | ||
115 | + wait $PIDS | ||
116 | + end=`date +%s.%N` | ||
117 | + | ||
118 | + wait $MPSTAT_PID | ||
119 | + | ||
120 | + runtime=$(echo "scale=2; $end - $start" | bc -l ) | ||
121 | + total_data=`cat ${OUT_BASENAME}_* | cut -f 1 | SUM` | ||
122 | + avg_speed=$(echo "scale=2; $total_data / $runtime / 1000000000" | bc -l) | ||
123 | + cpu_idle=`get_cpu_idle` | ||
124 | + | ||
125 | + echo | ||
126 | + echo "buffer size : $nvalue" | ||
127 | + echo "running time : $runtime" | ||
128 | + echo "avg_speed : $avg_speed GiB/s" | ||
129 | + echo "all_cpu idle : $cpu_idle %" | ||
130 | + echo | ||
131 | +} | ||
132 | + | ||
133 | +function control_c | ||
134 | +{ | ||
135 | + killall async_speed > /dev/null | ||
136 | + killall mpstat > /dev/null | ||
137 | +} | ||
138 | + | ||
139 | +function main | ||
140 | +{ | ||
141 | + while getopts hm:t:n: option | ||
142 | + do | ||
143 | + case "$option" in | ||
144 | + m) mvalue="$OPTARG";; | ||
145 | + t) tvalue="$OPTARG";; | ||
146 | + n) nvalue="$OPTARG";; | ||
147 | + *) usage $0; exit 1;; | ||
148 | + esac | ||
149 | + done | ||
150 | + | ||
151 | + shift $((OPTIND-1)) | ||
152 | + alg_name=$1 | ||
153 | + | ||
154 | + [ -z "$tvalue" ] && tvalue=10 # 10 seconds per test by default | ||
155 | + [ -z "$mvalue" ] && mvalue=`nproc` # thread count defaults to nproc | ||
156 | + [ -z "$nvalue" ] && nvalue=256 # 256 bytes default buffer size | ||
157 | + | ||
158 | + case "$alg_name" in | ||
159 | + "null" |\ | ||
160 | + "aes-128-cbc" |\ | ||
161 | + "aes-256-xts" |\ | ||
162 | + "sha1" |\ | ||
163 | + "sha256" |\ | ||
164 | + "crc32c" ) run_parallel;; | ||
165 | + * ) usage && exit 1;; | ||
166 | + esac | ||
167 | +} | ||
168 | + | ||
169 | +main "$@" | ||
170 | + | ||
171 | -- | ||
172 | 2.10.2 | ||
173 | |||