1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
#See http://docs.openstack.org/infra/jenkins-job-builder/genindex.html
- job:
name: tcwg-benchmark
project-type: freestyle
node: master
display-name: 'TCWG Benchmark'
description: 'Dispatch TCWG benchmark jobs to LAVA'
logrotate:
daysToKeep: 30
numToKeep: 30
artifactNumToKeep: 1
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
bernie.ogden@linaro.org:
- job-build
- job-cancel
- copyartifact:
projects: tcwg-post-build-lava
parameters:
- choice:
name: BENCHMARK
choices:
- CPU2006
- CPU2000
- EEMBC
- fakebench
- choice:
name: TARGET_CONFIG
choices:
- Arndale
- Mustang
- Panda-ES
- Juno-A53
- Juno-A57
- KVM (x86_64)
- string:
name: RUN_FLAGS
default: '--size test --iterations 1 --tune base'
description: |
Flags passed to benchmark framework at runtime.
Examples --
SPEC -- --size test --iterations 1 int (run 1 iteration of the int suite using the test workload)
- string:
name: PREBUILT
description: |
A prebuilt benchmark tarball as produced by abe or direct make invocation.
If produced by abe, tar up the contents of build/<host>/<target>.
If produced by direct make, tar up the top-level git repository (but you can exclude the .git dir).
If this option is given, no build will be performed and the compiler_flags and make_flags fields will be ignored.
- string:
name: TOOLCHAIN
default: 'http://releases.linaro.org/14.09/components/toolchain/binaries/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz'
description: |
Toolchain to use - use local filesystem path, or formats interpretable by wget or scp/rsync.
Must be supplied even when using a prebuilt tarball. Benchmarking scripts will use tools such as objdump.
Examples --
/usr/bin/gcc
http://releases.linaro.org/14.09/components/toolchain/binaries/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux.tar.xz
my.name@my.server:location_of_my_benchmark
- string:
name: COMPILER_FLAGS
default: '-march=armv8-a'
description: SPEC benchmarks built -O3 -fno-common, unless you override that here.
- string:
name: MAKE_FLAGS
default: ''
description: Flags to pass to make, when building the benchmark.
#TODO Remove this when we have the uinstance - at that point, we should be using the benchmarking branch
- string:
name: TESTDEF_REVISION
default: origin/benchmarking
description: Branch of abe to drive the run
wrappers:
- timeout:
timeout: 120
- workspace-cleanup
builders:
- shell: |
#!/bin/bash
set -eux
set -o pipefail
#Process TARGET_CONFIG
TARGET_CONFIG="${TARGET_CONFIG,,}"
if test x"${TARGET_CONFIG%% *}" = xkvm; then #" - fix syntax highlighting
TARGET_CONFIG=kvm
fi
#TODO Change to uinstance server and 'safe benchmarks' user, when they exist
export LAVA_SERVER=validation.linaro.org/RPC2/
git clone --depth 1 -b ${TESTDEF_REVISION} https://git.linaro.org/toolchain/abe
#Set variables for both post-build-lava and yaml-to-json
tmpfile=`mktemp`
bash -x ./abe/scripts/Benchmark.sh > "${tmpfile}"
while read x; do
export "$x"
done < "${tmpfile}"
rm "${tmpfile}"
#TODO Force the appropriate branch
#TODO Force the appropriate uinstance stream, when uinstance exists
BUNDLE_STREAM_NAME=/private/personal/bogden/
#Parameters for post-build-lava
cat << EOF > post_build_lava_parameters
CUSTOM_JSON_URL=${BUILD_URL}/artifact/lava-jobdef.json
#Server to dispatch to, as opposed to server where bundle stream is.
#post-build-lava takes responsibility for specifying a protocol.
LAVA_SERVER=${LAVA_SERVER}
#DEVICE_TYPE to placate pbl - we don't actually use it
DEVICE_TYPE=${TARGET_DEVICE_TYPE}
EOF
#Convert YAML to JSON
git clone --depth 1 https://git.linaro.org/ci/lci-build-tools
./lci-build-tools/yaml-to-json.py \
abe/config/bench/jobdefs/template.yaml > lava-jobdef.json
publishers:
- archive:
artifacts: lava-jobdef.json
- trigger-parameterized-builds:
- project: tcwg-post-build-lava
condition: SUCCESS
property-file: post_build_lava_parameters
- email:
recipients: 'bernie.ogden@linaro.org'
|