summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/cryptodev/sdk_patches/0055-add-multithreaded-wrapper-for-async-speed-test.patch
diff options
context:
space:
mode:
authorChunrong Guo <chunrong.guo@nxp.com>2017-04-18 15:11:50 +0800
committerOtavio Salvador <otavio@ossystems.com.br>2017-05-02 17:54:58 -0300
commite756964ac2595d880304f227dec7bdb424d7d974 (patch)
tree28c067a5652216278a92e39144d48ac95f0e8f12 /recipes-kernel/cryptodev/sdk_patches/0055-add-multithreaded-wrapper-for-async-speed-test.patch
parentcfb3ddaaaa78204ef5281c8627eed08f4f7e3f09 (diff)
downloadmeta-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.patch173
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 @@
1From 789d3c5ecda60a6dc5d5b3597047ad65c412f10d Mon Sep 17 00:00:00 2001
2From: Cristian Stoica <cristian.stoica@nxp.com>
3Date: Tue, 25 Oct 2016 15:30:59 +0300
4Subject: [PATCH 055/104] add multithreaded wrapper for async speed test
5
6Signed-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
13diff --git a/tests/Makefile b/tests/Makefile
14index 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)
25diff --git a/tests/async_speed_multi.sh b/tests/async_speed_multi.sh
26new file mode 100755
27index 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--
1722.10.2
173