aboutsummaryrefslogtreecommitdiff
path: root/jdkX-zgc-test.yaml
blob: 9b278763df9af5236fac044f44bd68eef371f2c5 (plain)
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
- job:
    name: jdkX-zgc-test
    project-type: matrix
    defaults: global
    description: |
        * Configures and builds jdkX (ie, bin/java, bin/javac, et al) in debug mode before running SPECjbb2015.
        * The source tarball is copied from the jdkX-update-src-tree job.<br>
        * As we are the maintainers of ZGC on aarch64, we need to look after this.
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
            openjdk-members:
                - job-build
                - job-cancel
                - job-workspace
        - build-discarder:
            days-to-keep: 30
            num-to-keep: 10
            artifact-num-to-keep: 5
        - build-blocker:
            use-build-blocker: true
            blocking-jobs:
                - "jdk14-.*"
                - "jdk13-.*"
                - "jdk11-.*"
                - "jdk8-.*"
            block-level: 'GLOBAL'
    disabled: true
    node: j12-qrep-01
    display-name: 'OpenJDK JDK - ZGC Debug Test'
    axes:
        - axis:
            type: user-defined
            name: BUILD_TYPE
            values:
                - fastdebug
        - axis:
            type: slave
            name: label
            values:
                - j12-qrep-01
    execution-strategy:
        sequential: true
    wrappers:
        - workspace-cleanup:
            dirmatch: false
        - timestamps
        - matrix-tie-parent:
            node: j12-qrep-01
    triggers:
        - timed: '0 20 * * 1,3,5'
    builders:
        - copyartifact:
            project: jdkX-update-src-tree
            filter: 'out/jdkX.tar.gz'
            target: incoming
            flatten: true
        - shell: |
            #!/bin/bash

            set -exu

            ccache_build_opts=--disable-ccache

            rm -rf jdk* primordial-jdk* build* out

            cd $HOME/srv/jdk-cache/jdk14
            export JAVA_HOME=${PWD}

            export PATH=${JAVA_HOME}/bin:${PATH}

            cd ${WORKSPACE}

            # Extract sources from upstream job
            tar xf incoming/jdkX.tar.gz

            shopt -s nullglob

            # Configure and build.
            mkdir -p build-stage1 build-stage2 out

            two_stage_build=0

            which java
            java -version

            pushd build-stage2
              sh ../jdkX/configure --with-debug-level=${BUILD_TYPE} ${ccache_build_opts} --with-native-debug-symbols=internal
              make images
            popd

            #tar -C build-stage2/images/jdk --transform="s!^./!$artifact_name/!" -acf out/${artifact_name}.tar.gz .

            # Now run test with ZGC.

            export PATH=$PWD/build-stage2/images/jdk/bin:$PATH

            ## Extract specjbb2015 product
            CACHE_FILES=$HOME/srv/jdk-cache
            tar xf $CACHE_FILES/SPECjbb2015-jdk11.tar.gz

            # Run test

            SPECJBB_PRODUCT_HOME=SPECjbb2015-1.00

            # This commented-out invocation is a quick test that
            # takes about 10 minutes to complete - which can be
            # useful when debugging.

            #(cd $SPECJBB_PRODUCT_HOME; \
            # time java \
            #   -Dspecjbb.controller.rtcurve.duration.min=500 \
            #   -Dspecjbb.controller.rtcurve.duration.max=1500 \
            #   -Dspecjbb.controller.type=PRESET \
            #   -Dspecjbb.controller.preset.ir=4000 \
            #   -Dspecjbb.controller.preset.duration=100 \
            #   -jar specjbb2015.jar -m composite)

            (cd $SPECJBB_PRODUCT_HOME;
             java \
                  -XX:+UseTransparentHugePages \
                  -XX:-UseBiasedLocking \
                  -Xmx16g \
                  -XX:+UnlockExperimentalVMOptions \
                  -XX:+UseZGC \
                  -XX:-UseBiasedLocking \
                  -XX:+UnlockDiagnosticVMOptions \
                  -XX:+ZVerifyForwarding \
                  -XX:+ZVerifyMarking \
                  -XX:+ZVerifyViews \
                  -Dspecjbb.controller.rtcurve.duration.min=500 \
                  -Dspecjbb.controller.rtcurve.duration.max=1500 \
                  -Dspecjbb.controller.type=PRESET \
                  -Dspecjbb.controller.preset.ir=40000 \
                  -Dspecjbb.controller.preset.duration=100 \
                  -jar specjbb2015.jar \
                  -ikv -m composite)

            # Do a sanity run of JCStress
            DEPS=$HOME/workspace/jdkX-get-deps

            JCSTRESS_JAR=$DEPS/jcstress.jar
            java -jar ${JCSTRESS_JAR} \
                -jvmArgs "-XX:+UnlockExperimentalVMOptions -XX:+UseZGC " \
                -m sanity

    publishers:
        - email:
            recipients: 'stuart.monteith@linaro.org'
        - html-publisher:
            name: 'HTML Report'
            dir: 'results'
            files: 'index.html'
            keep-all: true