From 16844a6de66cc1730db84f84074492c36bfaaf1c Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Thu, 21 Feb 2019 18:21:32 -0500 Subject: [PATCH] Rename x86 to i386 and amd64 Signed-off-by: Michael Jeanson --- jobs/babeltrace.yaml | 20 +- jobs/barectf.yaml | 4 +- jobs/latency-tracker.yaml | 563 ------------------ jobs/liburcu.yaml | 8 +- jobs/linux-rseq.yaml | 2 +- jobs/lttng-analyses.yaml | 6 +- jobs/lttng-ivc.yaml | 8 +- jobs/lttng-modules.yaml | 4 +- jobs/lttng-scope.yml | 6 +- jobs/lttng-tools.yaml | 65 +- jobs/lttng-ust-benchmarks.yaml | 10 +- jobs/lttng-ust-java-tests.yaml | 13 +- jobs/lttng-ust.yaml | 20 +- jobs/system-tests.yaml | 10 +- scripts/latency-tracker/build.sh | 89 --- scripts/latency-tracker/master-rt.groovy | 360 ----------- scripts/latency-tracker/master.groovy | 534 ----------------- scripts/latency-tracker/param-build.sh | 410 ------------- scripts/lttng-modules/param-build.sh | 8 +- scripts/lttng-ust-java-tests/set-java-home.sh | 14 - 20 files changed, 92 insertions(+), 2062 deletions(-) delete mode 100644 jobs/latency-tracker.yaml delete mode 100755 scripts/latency-tracker/build.sh delete mode 100644 scripts/latency-tracker/master-rt.groovy delete mode 100644 scripts/latency-tracker/master.groovy delete mode 100644 scripts/latency-tracker/param-build.sh delete mode 100755 scripts/lttng-ust-java-tests/set-java-home.sh diff --git a/jobs/babeltrace.yaml b/jobs/babeltrace.yaml index 7212bfe..ec2426b 100644 --- a/jobs/babeltrace.yaml +++ b/jobs/babeltrace.yaml @@ -258,7 +258,7 @@ - job-template: name: babeltrace_{version}_scan-build defaults: babeltrace - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -277,7 +277,7 @@ - job-template: name: babeltrace_{version}_coverity defaults: babeltrace - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -306,7 +306,7 @@ - job-template: name: babeltrace_{version}_pylint defaults: babeltrace - node: 'x86-64' + node: 'amd64' scm: [] @@ -316,7 +316,7 @@ builders: - copyartifact: - project: babeltrace_{version}_build/arch=x86-64,build=std,conf=python-bindings + project: babeltrace_{version}_build/arch=amd64,build=std,conf=python-bindings which-build: last-successful stable: false filter: 'build/**' @@ -365,14 +365,14 @@ - babeltrace_version_glib-2-22-5_anchor: &babeltrace_version_glib-2-22-5_anchor name: 'babeltrace_version_glib_anchor' defaults: babeltrace - node: 'x86-64' + node: 'amd64' builders: - inject: properties-content: | LD_LIBRARY_PATH=$WORKSPACE/glib-2.22.5/BUILD_RESULT/lib PKG_CONFIG_PATH=$WORKSPACE/glib-2.22.5/BUILD_RESULT/lib/pkgconfig - arch=x86-64 + arch=amd64 conf=std build=std - shell: | @@ -460,17 +460,17 @@ jobs: - 'babeltrace_{version}_{buildtype}': buildtype: build - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, static, python-bindings] - 'babeltrace_{version}_{buildtype}': buildtype: clangbuild - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [clang] conf: !!python/tuple [std, static] - 'babeltrace_{version}_{buildtype}': buildtype: portbuild - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, static, python-bindings] - 'babeltrace_{version}_{buildtype}': @@ -533,7 +533,7 @@ - master-staging - 'dev_{user}_babeltrace_{version}_{buildtype}': buildtype: build - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, static, python-bindings] - 'dev_{user}_babeltrace_{version}_{buildtype}': diff --git a/jobs/barectf.yaml b/jobs/barectf.yaml index 0135e38..0d627e7 100644 --- a/jobs/barectf.yaml +++ b/jobs/barectf.yaml @@ -89,7 +89,7 @@ - job-template: name: barectf_{version}_pylint defaults: barectf - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -146,6 +146,6 @@ - master jobs: - 'barectf_{version}_build': - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [i386, amd64] - 'barectf_{version}_pylint' diff --git a/jobs/latency-tracker.yaml b/jobs/latency-tracker.yaml deleted file mode 100644 index 827d849..0000000 --- a/jobs/latency-tracker.yaml +++ /dev/null @@ -1,563 +0,0 @@ ---- -- defaults: - name: latency-tracker - description: | - -

Job is managed by Jenkins Job Builder.

- - project-type: freestyle - - wrappers: - - workspace-cleanup - - timestamps - - ansicolor - - scm: - - git: - url: git://github.com/{github_user}/{github_name}.git - browser: githubweb - browser-url: https://github.com/{github_user}/{github_name} - branches: - - "{mversion}" - shallow-clone: true - skip-tag: true - fastpoll: true - basedir: src/latency-tracker - - triggers: - - pollscm: - cron: "@hourly" - - properties: - - build-discarder: - num-to-keep: 2 - - github: - url: https://github.com/{github_user}/{github_name} - - -## Templates -- job-template: - name: latency-tracker_{mversion}_{kversion}_{buildtype} - defaults: latency-tracker - - project-type: matrix - node: 'master' # Applies only to matrix flyweight task - axes: - - axis: - type: slave - name: arch - values: '{obj:arch}' - - builders: - - copyartifact: - project: kernel_{kversion}_{buildtype}/arch=$arch - which-build: last-successful - stable: false - filter: 'build/**' - target: 'deps/linux' - do-not-fingerprint: true - - shell: | - git clone --depth=1 -b "v{kversion}" --reference $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/git/linux-all.git src/linux - - shell: - !include-raw-escape: scripts/latency-tracker/build.sh - - publishers: - - archive: - artifacts: 'build/**' - allow-empty: false - - workspace-cleanup - - email-ext: - recipients: '{obj:email_to}' - reply-to: ci-notification@lists.lttng.org - always: false - unstable: false - first-failure: true - first-unstable: true - not-built: false - aborted: false - regression: false - failure: false - second-failure: false - improvement: false - still-failing: false - success: false - fixed: false - fixed-unhealthy: true - still-unstable: false - pre-build: false - matrix-trigger: only-parent - send-to: - - recipients - - -- job-template: - name: latency-tracker_{mversion}_{buildtype}-vanilla - defaults: latency-tracker - description: | - The LTTng modules provide Linux kernel tracing capability to the LTTng - 2.0 tracer toolset. - - This job will build the {mversion} branch against all stable vanilla - kernel tags. - -

Job is managed by Jenkins Job Builder.

- - node: 'master' - - parameters: - - string: - name: 'mversion' - default: '{mversion}' - description: 'The latency-tracker branch to build.' - - string: - name: 'maxConcurrentBuild' - default: '20' - description: 'The maximum number of concurrent child build to run.' - - string: - name: 'kverfloor' - default: 'v3.12' - description: 'The lowest kernel version to build.' - - string: - name: 'kverceil' - default: '' - description: 'The highest kernel version to build. (excluded)' - - string: - name: 'kverfilter' - default: 'stable-head' - description: 'Kernel versions list filtering strategy.' - - string: - name: 'kgitrepo' - default: 'git://git-mirror.internal.efficios.com/git/linux-all.git' - description: 'The linux kernel git repository url.' - - string: - name: 'kbuildjob' - default: 'latency-tracker_VERSION_param-{buildtype}' - description: 'The parametrized job to use for child builds.' - - builders: - - system-groovy: - command: - !include-raw-escape: scripts/latency-tracker/master.groovy - - publishers: - - workspace-cleanup - - email-ext: - recipients: '{obj:email_to}' - reply-to: ci-notification@lists.lttng.org - always: false - unstable: false - first-failure: true - first-unstable: true - not-built: false - aborted: false - regression: false - failure: false - second-failure: false - improvement: false - still-failing: false - success: false - fixed: false - fixed-unhealthy: true - still-unstable: false - pre-build: false - matrix-trigger: only-parent - send-to: - - recipients - -- job-template: - name: latency-tracker_{mversion}_build-{uversion} - defaults: latency-tracker - description: | - The LTTng modules provide Linux kernel tracing capability to the LTTng - 2.0 tracer toolset. - - This job will build the {mversion} branch against all Ubuntu {uversion} - released kernels, including the LTS backport kernels. - -

Job is managed by Jenkins Job Builder.

- - node: 'master' - - parameters: - - string: - name: 'mversion' - default: '{mversion}' - description: 'The latency-tracker branch to build.' - - string: - name: 'maxConcurrentBuild' - default: '20' - description: 'The maximum number of concurrent child build to run.' - - string: - name: 'kverfloor' - default: '' - description: 'The lowest kernel version to build.' - - string: - name: 'kverceil' - default: '' - description: 'The highest kernel version to build. (excluded)' - - string: - name: 'kverfilter' - default: 'stable-head' - description: 'Kernel versions list filtering strategy.' - - string: - name: 'kgitrepo' - default: 'git://git-mirror.internal.efficios.com/git/ubuntu-{uversion}.git' - description: 'The linux kernel git repository url.' - - string: - name: 'kbuildjob' - default: 'latency-tracker_VERSION_param-build' - description: 'The parametrized job to use for child builds.' - - string: - name: 'uversion' - default: '{uversion}' - description: 'The lowest kernel version to build.' - - builders: - - system-groovy: - command: - !include-raw-escape: scripts/latency-tracker/master.groovy - - publishers: - - workspace-cleanup - - email-ext: - recipients: '{obj:email_to}' - reply-to: ci-notification@lists.lttng.org - always: false - unstable: false - first-failure: true - first-unstable: true - not-built: false - aborted: false - regression: false - failure: false - second-failure: false - improvement: false - still-failing: false - success: false - fixed: false - fixed-unhealthy: true - still-unstable: false - pre-build: false - matrix-trigger: only-parent - send-to: - - recipients - - -- job-template: - name: latency-tracker_{mversion}_build-rt - defaults: latency-tracker - description: | - The LTTng modules provide Linux kernel tracing capability to the LTTng - 2.0 tracer toolset. - - This job will build the {mversion} branch against all Linutronix RT - kernels. - -

Job is managed by Jenkins Job Builder.

- - node: 'master' - - parameters: - - string: - name: 'mversion' - default: '{mversion}' - description: 'The latency-tracker branch to build.' - - string: - name: 'maxConcurrentBuild' - default: '20' - description: 'The maximum number of concurrent child build to run.' - - string: - name: 'kverfloor' - default: 'v2.6.36-rt0-rebase' - description: 'The lowest kernel version to build.' - - string: - name: 'kverceil' - default: '' - description: 'The highest kernel version to build. (excluded)' - - string: - name: 'kverfilter' - default: 'stable-head' - description: 'Kernel versions list filtering strategy.' - - string: - name: 'kgitrepo' - default: 'git://git-mirror.internal.efficios.com/kernel/rt/linux-rt-devel.git' - description: 'The linux kernel git repository url.' - - string: - name: 'kbuildjob' - default: 'latency-tracker_VERSION_param-build' - description: 'The parametrized job to use for child builds.' - - builders: - - system-groovy: - command: - !include-raw-escape: scripts/latency-tracker/master-rt.groovy - - publishers: - - workspace-cleanup - - email-ext: - recipients: '{obj:email_to}' - reply-to: ci-notification@lists.lttng.org - always: false - unstable: false - first-failure: true - first-unstable: true - not-built: false - aborted: false - regression: false - failure: false - second-failure: false - improvement: false - still-failing: false - success: false - fixed: false - fixed-unhealthy: true - still-unstable: false - pre-build: false - matrix-trigger: only-parent - send-to: - - recipients - -- job-template: - name: latency-tracker_VERSION_param-build - defaults: latency-tracker - description: | - This is a parametrized job used by 'master' jobs to build any combinations - of latency-tracker and linux kernel versions. - -

Job is managed by Jenkins Job Builder.

- - project-type: matrix - node: 'master' # Applies only to matrix flyweight task - axes: - - axis: - type: slave - name: arch - values: '{obj:arch}' - - properties: - - build-discarder: - days-to-keep: 2 - - parameters: - - string: - name: 'mversion' - default: 'master' - description: 'The latency-tracker branch to build.' - - string: - name: 'ktag' - default: '' - description: 'The linux kernel git tag to build against.' - - string: - name: 'kgitrepo' - default: 'git://git-mirror.internal.efficios.com/git/linux-all.git' - description: 'The linux kernel git repository url.' - - concurrent: true - - scm: - - git: - url: git://github.com/efficios/latency-tracker.git - browser: githubweb - browser-url: https://github.com/efficios/latency-tracker - branches: - - "${{mversion}}" - skip-tag: true - basedir: src/latency-tracker - - triggers: - - builders: - - shell: | - git clone --depth=1 -b "$ktag" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux - - shell: - !include-raw-escape: scripts/latency-tracker/param-build.sh - - publishers: - - workspace-cleanup - -- job-template: - name: latency-tracker_VERSION_param-crossbuild - defaults: latency-tracker - description: | - This is a parametrized job used by 'master' jobs to build any combinations - of latency-tracker and linux kernel versions. - -

Job is managed by Jenkins Job Builder.

- - project-type: matrix - node: 'master' # Applies only to matrix flyweight task - axes: - - axis: - type: user-defined - name: cross_arch - values: '{obj:cross_arch}' - - properties: - - build-discarder: - days-to-keep: 2 - - parameters: - - string: - name: 'mversion' - default: 'master' - description: 'The latency-tracker branch to build.' - - string: - name: 'ktag' - default: '' - description: 'The linux kernel git tag to build against.' - - string: - name: 'kgitrepo' - default: 'git://git-mirror.internal.efficios.com/git/linux-all.git' - description: 'The linux kernel git repository url.' - - concurrent: true - - scm: - - git: - url: git://github.com/efficios/latency-tracker.git - browser: githubweb - browser-url: https://github.com/efficios/latency-tracker - branches: - - "${{mversion}}" - skip-tag: true - basedir: src/latency-tracker - - triggers: - - builders: - - shell: | - git clone --depth=1 -b "$ktag" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux - - shell: - !include-raw-escape: scripts/latency-tracker/param-build.sh - - publishers: - - workspace-cleanup - -- job-template: - name: latency-tracker_{mversion}_coverity - defaults: latency-tracker - node: 'x86-64' - - triggers: - - pollscm: - cron: "@daily" - - wrappers: - - workspace-cleanup - - timestamps - - ansicolor: - colormap: xterm - - credentials-binding: - - username-password-separated: - credential-id: latency-tracker_coverity_token - username: COVERITY_SCAN_PROJECT_NAME - password: COVERITY_SCAN_TOKEN - - builders: - - shell: | - git clone --depth=1 -b v4.9 --reference $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git src/linux - cd src/linux - make defconfig - sed -i "s/# CONFIG_KALLSYMS_ALL is not set/CONFIG_KALLSYMS_ALL=y/g" .config - make modules_prepare - - shell: - !include-raw-escape: scripts/common/coverity.sh - - publishers: - - workspace-cleanup - -- job-template: - name: latency-tracker_{mversion}_cppcheck - defaults: latency-tracker - - triggers: - - pollscm: - cron: "@daily" - - builders: - - shell: | - rm -f cppcheck-result.xml - cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/latency-tracker 2> cppcheck-result.xml - - publishers: - - archive: - artifacts: 'cppcheck-result.xml' - allow-empty: false - - cppcheck: - pattern: 'cppcheck-result.xml' - - email-ext: - recipients: '{obj:email_to}' - reply-to: ci-notification@lists.lttng.org - always: false - unstable: false - first-failure: true - first-unstable: true - not-built: false - aborted: false - regression: false - failure: false - second-failure: false - improvement: false - still-failing: false - success: false - fixed: false - fixed-unhealthy: true - still-unstable: false - pre-build: false - matrix-trigger: only-parent - send-to: - - recipients - -- job-template: - name: latency-tracker_{mversion}_sloccount - defaults: latency-tracker - description: | - The LTTng modules provide Linux kernel tracing capability to the LTTng - 2.0 tracer toolset. - - This job runs the sloccount utility and generates a trend report. - -

Job is managed by Jenkins Job Builder.

- - triggers: - - pollscm: - cron: "@daily" - - builders: - - shell: | - cloc --by-file --xml --out=cloc.xml src/latency-tracker/ - - publishers: - - archive: - artifacts: 'cloc.xml' - allow-empty: false - - sloccount: - report-files: 'cloc.xml' - - -## Project -- project: - name: latency-tracker - github_user: efficios - github_name: latency-tracker - email_to: 'ci-notification@lists.lttng.org, cc:jdesfossez@efficios.com' - mversion: - - master - jobs: - - 'latency-tracker_{mversion}_{buildtype}-vanilla': - buildtype: build - - 'latency-tracker_{mversion}_build-rt': - - 'latency-tracker_{mversion}_build-{uversion}': - uversion: - - xenial - - 'latency-tracker_{mversion}_{buildtype}-vanilla': - buildtype: crossbuild - - 'latency-tracker_VERSION_param-build': - arch: !!python/tuple [x86-32, x86-64] - - 'latency-tracker_VERSION_param-crossbuild': - cross_arch: !!python/tuple [armhf, arm64] - - 'latency-tracker_{mversion}_cppcheck' - - 'latency-tracker_{mversion}_sloccount': - mversion: master - - 'latency-tracker_{mversion}_coverity': - mversion: master diff --git a/jobs/liburcu.yaml b/jobs/liburcu.yaml index 1c66178..f4fbb80 100644 --- a/jobs/liburcu.yaml +++ b/jobs/liburcu.yaml @@ -245,7 +245,7 @@ - job-template: name: liburcu_{version}_scan-build defaults: liburcu - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -264,7 +264,7 @@ - job-template: name: liburcu_{version}_coverity defaults: liburcu - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -311,12 +311,12 @@ jobs: - 'liburcu_{version}_{buildtype}': buildtype: build - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, static, tls_fallback, debug-rcu] - 'liburcu_{version}_{buildtype}': buildtype: portbuild - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, static, tls_fallback, debug-rcu] - 'liburcu_{version}_{buildtype}': diff --git a/jobs/linux-rseq.yaml b/jobs/linux-rseq.yaml index d9c7028..dce0f84 100644 --- a/jobs/linux-rseq.yaml +++ b/jobs/linux-rseq.yaml @@ -40,7 +40,7 @@ - job-template: name: linux-rseq_master_coverity defaults: linux-rseq - node: 'x86-64' + node: 'amd64' triggers: - pollscm: diff --git a/jobs/lttng-analyses.yaml b/jobs/lttng-analyses.yaml index b44e28b..23a9201 100644 --- a/jobs/lttng-analyses.yaml +++ b/jobs/lttng-analyses.yaml @@ -96,7 +96,7 @@ - job-template: name: lttng-analyses_{version}_pylint defaults: lttng-analyses - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -104,7 +104,7 @@ builders: - copyartifact: - project: babeltrace_{babeltrace_version}_build/arch=x86-64,build=std,conf=python-bindings + project: babeltrace_{babeltrace_version}_build/arch=amd64,build=std,conf=python-bindings which-build: last-successful stable: false filter: 'build/**' @@ -159,7 +159,7 @@ - master jobs: - 'lttng-analyses_{version}_build': - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] babeltrace_version: !!python/tuple [stable-1.5, stable-2.0, master] - 'lttng-analyses_{version}_pylint': babeltrace_version: stable-1.5 diff --git a/jobs/lttng-ivc.yaml b/jobs/lttng-ivc.yaml index 65b7e81..58f493b 100644 --- a/jobs/lttng-ivc.yaml +++ b/jobs/lttng-ivc.yaml @@ -162,19 +162,19 @@ jobs: - 'lttng-ivc-{version}': version: master - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] liburcu_version: !!python/tuple [master] - 'lttng-ivc-{version}': # Send only to maintainer email_to: "joraj@efficios.com" version: staging - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] liburcu_version: !!python/tuple [master] - 'lttng-ivc-{version}-modules': # Send only to maintainer email_to: "joraj@efficios.com" version: master - arch: !!python/tuple [x86-64] - slave: !!python/tuple [x86-64-standalone] + arch: !!python/tuple [amd64] + slave: !!python/tuple [amd64-standalone] liburcu_version: !!python/tuple [master] diff --git a/jobs/lttng-modules.yaml b/jobs/lttng-modules.yaml index ea5b101..451459c 100644 --- a/jobs/lttng-modules.yaml +++ b/jobs/lttng-modules.yaml @@ -412,7 +412,7 @@ - job-template: name: lttng-modules_{mversion}_coverity defaults: lttng-modules - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -609,7 +609,7 @@ # Parametrized kernel and modules build jobs - 'lttng-modules_PARAM_build': - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] - 'lttng-modules_PARAM_crossbuild': cross_arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] diff --git a/jobs/lttng-scope.yml b/jobs/lttng-scope.yml index 0cf7ff8..ade281e 100644 --- a/jobs/lttng-scope.yml +++ b/jobs/lttng-scope.yml @@ -28,7 +28,7 @@ properties: - build-discarder: - num-to-keep: 7 + num-to-keep: 2 ## Templates @@ -349,7 +349,7 @@ - job-template: name: lttng-scope_{version}_coverity defaults: lttng-scope - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -403,7 +403,7 @@ - master jobs: - 'lttng-scope_{version}_build': - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [i386, amd64] - 'lttng-scope_{version}_winbuild': arch: !!python/tuple [win64] - 'lttng-scope_{version}_macosxbuild': diff --git a/jobs/lttng-tools.yaml b/jobs/lttng-tools.yaml index cc4f8e6..205dd75 100644 --- a/jobs/lttng-tools.yaml +++ b/jobs/lttng-tools.yaml @@ -459,6 +459,7 @@ wrappers: - ansicolor - timeout: + timeout: 10 fail: true type: likely-stuck - timestamps @@ -538,7 +539,7 @@ - job-template: name: lttng-tools_{version}_scan-build defaults: lttng-tools - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -546,14 +547,14 @@ builders: - copyartifact: - project: liburcu_{urcuversion}_build/arch=x86-64,conf=std,build=std + project: liburcu_{urcuversion}_build/arch=amd64,conf=std,build=std which-build: last-successful stable: false filter: 'build/**' target: 'deps/liburcu' do-not-fingerprint: true - copyartifact: - project: lttng-ust_{ustversion}_build/liburcu_version={urcuversion},arch=x86-64,conf=std,build=std + project: lttng-ust_{ustversion}_build/liburcu_version={urcuversion},arch=amd64,conf=std,build=std which-build: last-successful stable: false filter: 'build/**' @@ -571,7 +572,7 @@ - job-template: name: lttng-tools_{version}_coverity defaults: lttng-tools - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -590,14 +591,14 @@ builders: - copyartifact: - project: liburcu_{urcuversion}_build/arch=x86-64,conf=std,build=std + project: liburcu_{urcuversion}_build/arch=amd64,conf=std,build=std which-build: last-successful stable: false filter: 'build/**' target: 'deps/liburcu' do-not-fingerprint: true - copyartifact: - project: lttng-ust_{ustversion}_build/liburcu_version={urcuversion},arch=x86-64,conf=std,build=std + project: lttng-ust_{ustversion}_build/liburcu_version={urcuversion},arch=amd64,conf=std,build=std which-build: last-successful stable: false filter: 'build/**' @@ -613,7 +614,7 @@ - job-template: name: lttng-tools_{version}_pylint defaults: lttng-tools - node: 'x86-64' + node: 'amd64' scm: [] @@ -623,7 +624,7 @@ builders: - copyartifact: - project: lttng-tools-{version}/arch=x86-64,build=std,conf=agents + project: lttng-tools-{version}/arch=amd64,build=std,conf=agents which-build: last-successful stable: false filter: 'build/**' @@ -688,7 +689,7 @@ buildtype: build version: master ustversion: master - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents, debug-rcu] urcuversion: !!python/tuple [master] @@ -698,7 +699,7 @@ buildtype: portbuild version: master ustversion: master - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [master] @@ -746,7 +747,7 @@ - 'lttng-tools_{version}_long_regression': buildtype: build ustversion: master - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std] conf: !!python/tuple [std] urcuversion: !!python/tuple [master] @@ -758,7 +759,7 @@ buildtype: build version: stable-2.11 ustversion: stable-2.11 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents, debug-rcu] urcuversion: !!python/tuple [stable-0.10] @@ -768,7 +769,7 @@ buildtype: portbuild version: stable-2.11 ustversion: stable-2.11 - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.10] @@ -819,7 +820,7 @@ buildtype: build version: stable-2.10 ustversion: stable-2.10 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents, debug-rcu] urcuversion: !!python/tuple [stable-0.9] @@ -829,7 +830,7 @@ buildtype: portbuild version: stable-2.10 ustversion: stable-2.10 - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -880,7 +881,7 @@ buildtype: build version: stable-2.9 ustversion: stable-2.9 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents, debug-rcu] urcuversion: !!python/tuple [stable-0.9] @@ -890,7 +891,7 @@ buildtype: portbuild version: stable-2.9 ustversion: stable-2.9 - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -941,7 +942,7 @@ buildtype: build version: stable-2.8 ustversion: stable-2.8 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents, debug-rcu] urcuversion: !!python/tuple [stable-0.9] @@ -951,7 +952,7 @@ buildtype: portbuild version: stable-2.8 ustversion: stable-2.8 - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -983,7 +984,7 @@ buildtype: build version: stable-2.7 ustversion: stable-2.7 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents, debug-rcu] urcuversion: !!python/tuple [stable-0.9] @@ -1053,7 +1054,7 @@ buildtype: build version: master-staging ustversion: master - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [master] @@ -1063,7 +1064,7 @@ buildtype: build version: stable-2.11-staging ustversion: stable-2.11 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.10] @@ -1073,7 +1074,7 @@ buildtype: build version: stable-2.10-staging ustversion: stable-2.10 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -1083,7 +1084,7 @@ buildtype: build version: stable-2.9-staging ustversion: stable-2.9 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -1093,7 +1094,7 @@ buildtype: build version: stable-2.8-staging ustversion: stable-2.8 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -1103,7 +1104,7 @@ buildtype: build version: stable-2.7-staging ustversion: stable-2.7 - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -1113,7 +1114,7 @@ buildtype: portbuild version: master-staging ustversion: master - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [master] @@ -1123,7 +1124,7 @@ buildtype: portbuild version: stable-2.11-staging ustversion: stable-2.11 - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.10] @@ -1133,7 +1134,7 @@ buildtype: portbuild version: stable-2.10-staging ustversion: stable-2.10 - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -1143,7 +1144,7 @@ buildtype: portbuild version: stable-2.9-staging ustversion: stable-2.9 - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -1153,7 +1154,7 @@ buildtype: portbuild version: stable-2.8-staging ustversion: stable-2.8 - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] @@ -1163,7 +1164,7 @@ buildtype: portbuild version: stable-2.7-staging ustversion: stable-2.7 - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, no-ust, agents] urcuversion: !!python/tuple [stable-0.9] diff --git a/jobs/lttng-ust-benchmarks.yaml b/jobs/lttng-ust-benchmarks.yaml index acc9078..c270348 100644 --- a/jobs/lttng-ust-benchmarks.yaml +++ b/jobs/lttng-ust-benchmarks.yaml @@ -45,32 +45,32 @@ defaults: lttng-ust-benchmarks project-type: freestyle - node: x86-64 + node: amd64 builders: - copyartifact: - project: liburcu_master_build/arch=x86-64,build=std,conf=std + project: liburcu_master_build/arch=amd64,build=std,conf=std which-build: last-successful stable: false filter: 'build/**' target: 'deps/liburcu' do-not-fingerprint: true - copyartifact: - project: babeltrace_{babeltrace_version}_build/arch=x86-64,build=std,conf=std + project: babeltrace_{babeltrace_version}_build/arch=amd64,build=std,conf=std which-build: last-successful stable: false filter: 'build/**' target: 'deps/babeltrace' do-not-fingerprint: true - copyartifact: - project: lttng-tools_master_build/arch=x86-64,babeltrace_version={babeltrace_version},build=std,conf=agents,liburcu_version=master + project: lttng-tools_master_build/arch=amd64,babeltrace_version={babeltrace_version},build=std,conf=agents,liburcu_version=master,test_type=base which-build: last-successful stable: false filter: 'build/**' target: 'deps/lttng-tools' do-not-fingerprint: true - copyartifact: - project: lttng-ust_master_build/arch=x86-64,build=std,conf=std,liburcu_version=master/ + project: lttng-ust_master_build/arch=amd64,build=std,conf=std,liburcu_version=master/ which-build: last-successful stable: false filter: 'build/**' diff --git a/jobs/lttng-ust-java-tests.yaml b/jobs/lttng-ust-java-tests.yaml index aea9986..2e05c68 100644 --- a/jobs/lttng-ust-java-tests.yaml +++ b/jobs/lttng-ust-java-tests.yaml @@ -50,7 +50,7 @@ type: user-defined name: java_version values: - - 'java-8-openjdk' + - 'java-11-openjdk' - axis: type: user-defined name: liburcu_version @@ -73,14 +73,13 @@ - ansicolor - inject: properties-content: | + JAVA_HOME=/usr/lib/jvm/${{java_version}}-${{arch}} LD_LIBRARY_PATH=${{WORKSPACE}}/deps/build/lib PATH=${{WORKSPACE}}/deps/build/bin:${{PATH}} LTTNG_UST_DEBUG=1 LTTNG_CONSUMERD32_BIN=${{WORKSPACE}}/deps/build/lib/lttng/libexec/lttng-consumerd LTTNG_CONSUMERD64_BIN=${{WORKSPACE}}/deps/build/lib/lttng/libexec/lttng-consumerd - - env-script: - script-content: - !include-raw-escape: scripts/lttng-ust-java-tests/set-java-home.sh + LTTNG_SESSION_CONFIG_XSD_PATH=${{WORKSPACE}}/deps/build/share/xml/lttng builders: - copyartifact: @@ -98,7 +97,7 @@ target: 'deps' do-not-fingerprint: true - copyartifact: - project: lttng-tools_${{lttng_tools_version}}_build/babeltrace_version={babeltrace_version},liburcu_version=${{liburcu_version}},arch=${{arch}},conf=agents,build=std + project: lttng-tools_${{lttng_tools_version}}_build/babeltrace_version={babeltrace_version},liburcu_version=${{liburcu_version}},arch=${{arch}},conf=agents,build=std,test_type=base which-build: last-successful stable: false filter: 'build/**' @@ -199,6 +198,6 @@ babeltrace_version: stable-1.5 jobs: - 'lttng-ust-java-tests_{version}_build': - arch: !!python/tuple [x86-32, x86-64] - java_version: !!python/tuple [java-8-openjdk] + arch: !!python/tuple [amd64] + java_version: !!python/tuple [java-11-openjdk] diff --git a/jobs/lttng-ust.yaml b/jobs/lttng-ust.yaml index d805afc..ec21a82 100644 --- a/jobs/lttng-ust.yaml +++ b/jobs/lttng-ust.yaml @@ -167,7 +167,7 @@ - job-template: name: lttng-ust_{version}_scan-build defaults: lttng-ust - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -175,7 +175,7 @@ builders: - copyartifact: - project: liburcu_master_build/arch=x86-64,conf=std,build=std + project: liburcu_master_build/arch=amd64,conf=std,build=std which-build: last-successful stable: false filter: 'build/**' @@ -193,7 +193,7 @@ - job-template: name: lttng-ust_{version}_coverity defaults: lttng-ust - node: 'x86-64' + node: 'amd64' triggers: - pollscm: @@ -212,7 +212,7 @@ builders: - copyartifact: - project: liburcu_master_build/arch=x86-64,conf=std,build=std + project: liburcu_master_build/arch=amd64,conf=std,build=std which-build: last-successful stable: false filter: 'build/**' @@ -231,7 +231,7 @@ - job-template: name: lttng-ust_{version}_pylint defaults: lttng-ust - node: 'x86-64' + node: 'amd64' scm: [] @@ -241,7 +241,7 @@ builders: - copyartifact: - project: lttng-ust-{version}/arch=x86-64,build=std,conf=agents + project: lttng-ust-{version}/arch=amd64,build=std,conf=agents which-build: last-successful stable: false filter: 'build/**' @@ -301,13 +301,13 @@ jobs: - 'lttng-ust_{version}_{buildtype}': buildtype: build - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, dist, oot, oot-dist] conf: !!python/tuple [std, agents, debug-rcu] liburcu_version: !!python/tuple [stable-0.8, stable-0.9, stable-0.10, master] - 'lttng-ust_{version}_{buildtype}': buildtype: portbuild - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, agents] liburcu_version: !!python/tuple [stable-0.8, stable-0.9, stable-0.10, master] @@ -322,14 +322,14 @@ - 'lttng-ust_{version}_{buildtype}': buildtype: build version: master - arch: !!python/tuple [x86-32, x86-64] + arch: !!python/tuple [amd64] build: !!python/tuple [std, dist, oot, oot-dist] conf: !!python/tuple [std, agents, debug-rcu] liburcu_version: !!python/tuple [master] - 'lttng-ust_{version}_{buildtype}': buildtype: portbuild version: master - arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386] build: !!python/tuple [std] conf: !!python/tuple [std, agents] liburcu_version: !!python/tuple [master] diff --git a/jobs/system-tests.yaml b/jobs/system-tests.yaml index 2a1ed5b..67f32d6 100644 --- a/jobs/system-tests.yaml +++ b/jobs/system-tests.yaml @@ -68,7 +68,7 @@ description: | Runs baremetal kernel benchmarks over different combination of kernel and lttng configurations. project-type: freestyle - node: 'x86-64' + node: 'amd64' <<: *system_tests_parameters_defaults @@ -131,7 +131,7 @@ description: | Runs root_regression and root_destructive_tests on a virtual machine over different combinations of kernel and lttng configurations. project-type: freestyle - node: 'x86-64' + node: 'amd64' <<: *system_tests_parameters_defaults properties: @@ -181,7 +181,7 @@ description: | Runs virtual machine fuzzing tests over different combination of kernel and lttng configurations. project-type: freestyle - node: 'x86-64' + node: 'amd64' <<: *system_tests_parameters_defaults properties: @@ -231,7 +231,7 @@ description: | Runs perf_regression tests on a baremetal machine over different combinations of kernel and lttng configurations. project-type: freestyle - node: 'x86-64' + node: 'amd64' <<: *system_tests_parameters_defaults @@ -283,7 +283,7 @@ description: | Builds a Linux Kernel and LTTng Modules if necessary concurrent: true - node: 'x86-64' + node: 'amd64' parameters: - string: diff --git a/scripts/latency-tracker/build.sh b/scripts/latency-tracker/build.sh deleted file mode 100755 index 8e16edd..0000000 --- a/scripts/latency-tracker/build.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/sh -exu -# -# Copyright (C) 2015 - Jonathan Rajotte-Julien -# Michael Jeanson -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Kernel version compare functions -verlte() { - [ "$1" = "`printf '%s\n%s' $1 $2 | sort -V | head -n1`" ] -} - -verlt() { - [ "$1" = "$2" ] && return 1 || verlte $1 $2 -} - -vergte() { - [ "$1" = "`printf '%s\n%s' $1 $2 | sort -V | tail -n1`" ] -} - -vergt() { - [ "$1" = "$2" ] && return 1 || vergte $1 $2 -} - - -# Use all CPU cores -NPROC=$(nproc) - -SRCDIR="${WORKSPACE}/src/latency-tracker" -BUILDDIR="${WORKSPACE}/build" -LNXSRCDIR="${WORKSPACE}/src/linux" -LNXBINDIR="${WORKSPACE}/deps/linux/build" - -# Create build directory -rm -rf "${BUILDDIR}" -mkdir -p "${BUILDDIR}" - -# Enter source dir -cd "${SRCDIR}" - -# Fix path to linux src in builddir Makefile -sed -i "s#MAKEARGS := -C .*#MAKEARGS := -C ${LNXSRCDIR}#" "${LNXBINDIR}"/Makefile - -# Get kernel version from source tree -cd "${LNXBINDIR}" -KVERSION=$(make kernelversion) -cd - - -# kernels 3.10 to 3.10.13 and 3.11 to 3.11.2 introduce a deadlock in the -# timekeeping subsystem. We want those build to fail. -if { vergte "$KVERSION" "3.10" && verlte "$KVERSION" "3.10.13"; } || \ - { vergte "$KVERSION" "3.11" && verlte "$KVERSION" "3.11.2"; }; then - - set +e - - # Build modules - KERNELDIR="${LNXBINDIR}" make -j"${NPROC}" V=1 - - # We expect this build to fail, if it doesn't, fail the job. - if [ "$?" -eq 0 ]; then - exit 1 - fi - - # We have to publish at least one file or the build will fail - echo "This kernel is broken, there is a deadlock in the timekeeping subsystem." > "${BUILDDIR}/BROKEN.txt" - - set -e - -else # Regular build - - # Build modules - KERNELDIR="${LNXBINDIR}" make -j"${NPROC}" V=1 - - # Install modules to build dir - KERNELDIR="${LNXBINDIR}" make INSTALL_MOD_PATH="${BUILDDIR}" modules_install -fi - -# EOF diff --git a/scripts/latency-tracker/master-rt.groovy b/scripts/latency-tracker/master-rt.groovy deleted file mode 100644 index 33eb0f3..0000000 --- a/scripts/latency-tracker/master-rt.groovy +++ /dev/null @@ -1,360 +0,0 @@ -/** - * Copyright (C) 2016-2017 - Michael Jeanson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -import hudson.model.* -import hudson.AbortException -import hudson.console.HyperlinkNote -import java.util.concurrent.CancellationException -import org.eclipse.jgit.api.Git -import org.eclipse.jgit.lib.Ref - - -class InvalidKVersionException extends Exception { - public InvalidKVersionException(String message) { - super(message) - } -} - -class EmptyKVersionException extends Exception { - public EmptyKVersionException(String message) { - super(message) - } -} - -class RTKVersion implements Comparable { - - Integer major = 0 - Integer majorB = 0 - Integer minor = 0 - Integer patch = 0 - Integer rt = 0 - - RTKVersion() {} - - RTKVersion(version) { - this.parse(version) - } - - static RTKVersion minKVersion() { - return new RTKVersion("v0.0.0-rt0-rebase") - } - - static RTKVersion maxKVersion() { - return new RTKVersion("v" + Integer.MAX_VALUE + ".0.0-rt0-rebase") - } - - static RTKVersion factory(version) { - return new RTKVersion(version) - } - - def parse(version) { - this.major = 0 - this.majorB = 0 - this.minor = 0 - this.patch = 0 - this.rt = 0 - - if (!version) { - throw new EmptyKVersionException("Empty kernel version") - } - - def match = version =~ /^v(\d+)\.(\d+)(\.(\d+))?(\.(\d+))?(-rt(\d+)-rebase)$/ - if (!match) { - throw new InvalidKVersionException("Invalid kernel version: ${version}") - } - - Integer offset = 0; - - // Major - this.major = Integer.parseInt(match.group(1)) - if (this.major <= 2) { - offset = 2 - this.majorB = Integer.parseInt(match.group(2)) - } - - // Minor - if (match.group(2 + offset) != null) { - this.minor = Integer.parseInt(match.group(2 + offset)) - } - - // Patch level - if (match.group(4 + offset) != null) { - this.patch = Integer.parseInt(match.group(4 + offset)) - } - - // RT - this.rt = Integer.parseInt(match.group(8)) - } - - // Return true if both version are of the same stable branch - Boolean isSameStable(RTKVersion o) { - if (this.major != o.major) { - return false - } - if (this.majorB != o.majorB) { - return false - } - if (this.minor != o.minor) { - return false - } - - return true - } - - @Override int compareTo(RTKVersion o) { - if (this.major != o.major) { - return Integer.compare(this.major, o.major) - } - if (this.majorB != o.majorB) { - return Integer.compare(this.majorB, o.majorB) - } - if (this.minor != o.minor) { - return Integer.compare(this.minor, o.minor) - } - if (this.patch != o.patch) { - return Integer.compare(this.patch, o.patch) - } - if (this.rt != o.rt) { - return Integer.compare(this.rt, o.rt) - } - - // Same version - return 0; - } - - String toString() { - String vString = "v${this.major}" - - if (this.majorB > 0) { - vString = vString.concat(".${this.majorB}") - } - - vString = vString.concat(".${this.minor}") - - if (this.patch > 0) { - vString = vString.concat(".${this.patch}") - } - - if (this.rt > 0) { - vString = vString.concat("-rt${this.rt}-rebase") - } - return vString - } -} - - -// Retrieve parameters of the current build -def mversion = build.buildVariableResolver.resolve('mversion') -def maxConcurrentBuild = build.buildVariableResolver.resolve('maxConcurrentBuild') -def kgitrepo = build.buildVariableResolver.resolve('kgitrepo') -def kverfloor_raw = build.buildVariableResolver.resolve('kverfloor') -def kverceil_raw = build.buildVariableResolver.resolve('kverceil') -def kverfilter = build.buildVariableResolver.resolve('kverfilter') -def job = Hudson.instance.getJob(build.buildVariableResolver.resolve('kbuildjob')) -def currentJobName = build.project.getFullDisplayName() - - -// Get the out variable -def config = new HashMap() -def bindings = getBinding() -config.putAll(bindings.getVariables()) -def out = config['out'] - - -// Get tags from git repository -def refs = Git.lsRemoteRepository().setTags(true).setRemote(kgitrepo).call(); - -// Get kernel versions to build -def kversions = [] -def matchStrs = [ - ~/^refs\/tags\/(v[\d\.]+(-rt(\d+)-rebase))$/, -] -def blacklist = [ - 'v4.11.8-rt5-rebase', - 'v4.11.9-rt6-rebase', - 'v4.11.9-rt7-rebase', - 'v4.11.12-rt8-rebase', - 'v4.11.12-rt9-rebase', - 'v4.11.12-rt10-rebase', - 'v4.11.12-rt11-rebase', - 'v4.11.12-rt12-rebase', - 'v4.11.12-rt13-rebase', -] - -def kversionFactory = new RTKVersion() - -// Parse kernel versions -def kverfloor = "" -try { - kverfloor = kversionFactory.factory(kverfloor_raw) -} catch (EmptyKVersionException e) { - kverfloor = kversionFactory.minKVersion() -} - -def kverceil = "" -try { - kverceil = kversionFactory.factory(kverceil_raw) -} catch (EmptyKVersionException e) { - kverceil = kversionFactory.maxKVersion() -} - -// Build a sorted list of versions to build -for (ref in refs) { - for (matchStr in matchStrs) { - def match = ref.getName() =~ matchStr - if (match && !blacklist.contains(match.group(1))) { - def v = kversionFactory.factory(match.group(1)) - - if ((v >= kverfloor) && (v < kverceil)) { - kversions.add(v) - } - } - } -} - -kversions.sort() - -switch (kverfilter) { - case 'stable-head': - // Keep only the head of each stable branch - println('Filter kernel versions to keep only the latest point release of each stable branch.') - - for (i = 0; i < kversions.size(); i++) { - def curr = kversions[i] - def next = i < kversions.size() - 1 ? kversions[i + 1] : null - - if (next != null) { - if (curr.isSameStable(next)) { - kversions.remove(i) - i-- - } - } - } - break - - default: - // No filtering of kernel versions - println('No kernel versions filtering selected.') - break -} - - -println "Building the following kernel versions:" -for (k in kversions) { - println k -} - -// Debug: Stop build here -//throw new InterruptedException() - -def joburl = HyperlinkNote.encodeTo('/' + job.url, job.fullDisplayName) - -def allBuilds = [] -def ongoingBuild = [] -def failedRuns = [] -def isFailed = false -def similarJobQueued = 0; - -// Loop while we have kernel versions remaining or jobs running -while ( kversions.size() != 0 || ongoingBuild.size() != 0 ) { - - if(ongoingBuild.size() < maxConcurrentBuild.toInteger() && kversions.size() != 0) { - def kversion = kversions.pop() - def job_params = [ - new StringParameterValue('mversion', mversion), - new StringParameterValue('ktag', kversion.toString()), - new StringParameterValue('kgitrepo', kgitrepo), - ] - - // Launch the parametrized build - def param_build = job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(job_params)) - println "triggering ${joburl} for the ${mversion} branch on kernel ${kversion}" - - // Add it to the ongoing build queue - ongoingBuild.push(param_build) - - } else { - - println "Waiting... Queued: " + kversions.size() + " Running: " + ongoingBuild.size() - try { - Thread.sleep(10000) - } catch(e) { - if (e in InterruptedException) { - build.setResult(hudson.model.Result.ABORTED) - throw new InterruptedException() - } else { - throw(e) - } - } - - // Abort job if a newer instance is queued - similarJobQueued = Hudson.instance.queue.items.count{it.task.getFullDisplayName() == currentJobName} - if ( similarJobQueued > 0 ) { - build.setResult(hudson.model.Result.ABORTED) - throw new InterruptedException() - } - - def i = ongoingBuild.iterator() - while ( i.hasNext() ) { - currentBuild = i.next() - if ( currentBuild.isCancelled() || currentBuild.isDone() ) { - // Remove from queue - i.remove() - - // Print results - def matrixParent = currentBuild.get() - allBuilds.add(matrixParent) - def kernelStr = matrixParent.buildVariableResolver.resolve("ktag") - println "${matrixParent.fullDisplayName} (${kernelStr}) completed with status ${matrixParent.result}" - - // Process child runs of matrixBuild - def childRuns = matrixParent.getRuns() - for ( childRun in childRuns ) { - println "\t${childRun.fullDisplayName} (${kernelStr}) completed with status ${childRun.result}" - if (childRun.result != Result.SUCCESS) { - failedRuns.add(childRun) - isFailed = true - } - } - } - } - } -} - -// Get log of failed runs -for (failedRun in failedRuns) { - println "---START---" - failedRun.writeWholeLogTo(out) - println "---END---" -} - -println "---Build report---" -for (b in allBuilds) { - def kernelStr = b.buildVariableResolver.resolve("ktag") - println "${b.fullDisplayName} (${kernelStr}) completed with status ${b.result}" - // Cleanup builds - try { - b.delete() - } catch (all) {} -} - -// Mark this build failed if any child build has failed -if (isFailed) { - build.setResult(hudson.model.Result.FAILURE) -} - -// EOF diff --git a/scripts/latency-tracker/master.groovy b/scripts/latency-tracker/master.groovy deleted file mode 100644 index 323351c..0000000 --- a/scripts/latency-tracker/master.groovy +++ /dev/null @@ -1,534 +0,0 @@ -/** - * Copyright (C) 2016-2017 - Michael Jeanson - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -import hudson.model.* -import hudson.AbortException -import hudson.console.HyperlinkNote -import java.util.concurrent.CancellationException -import org.eclipse.jgit.api.Git -import org.eclipse.jgit.lib.Ref - - -class InvalidKVersionException extends Exception { - public InvalidKVersionException(String message) { - super(message) - } -} - -class EmptyKVersionException extends Exception { - public EmptyKVersionException(String message) { - super(message) - } -} - -class VanillaKVersion implements Comparable { - - Integer major = 0 - Integer majorB = 0 - Integer minor = 0 - Integer patch = 0 - Integer rc = Integer.MAX_VALUE - - VanillaKVersion() {} - - VanillaKVersion(version) { - this.parse(version) - } - - static VanillaKVersion minKVersion() { - return new VanillaKVersion("v0.0.0") - } - - static VanillaKVersion maxKVersion() { - return new VanillaKVersion("v" + Integer.MAX_VALUE + ".0.0") - } - - static VanillaKVersion factory(version) { - return new VanillaKVersion(version) - } - - def parse(version) { - this.major = 0 - this.majorB = 0 - this.minor = 0 - this.patch = 0 - this.rc = Integer.MAX_VALUE - - if (!version) { - throw new EmptyKVersionException("Empty kernel version") - } - - def match = version =~ /^v(\d+)\.(\d+)(\.(\d+))?(\.(\d+))?(-rc(\d+))?$/ - if (!match) { - throw new InvalidKVersionException("Invalid kernel version: ${version}") - } - - Integer offset = 0; - - // Major - this.major = Integer.parseInt(match.group(1)) - if (this.major <= 2) { - offset = 2 - this.majorB = Integer.parseInt(match.group(2)) - } - - // Minor - if (match.group(2 + offset) != null) { - this.minor = Integer.parseInt(match.group(2 + offset)) - } - - // Patch level - if (match.group(4 + offset) != null) { - this.patch = Integer.parseInt(match.group(4 + offset)) - } - - // RC - if (match.group(8) != null) { - this.rc = Integer.parseInt(match.group(8)) - } - } - - // Return true if this version is a release candidate - Boolean isRC() { - return this.rc != Integer.MAX_VALUE - } - - // Return true if both version are of the same stable branch - Boolean isSameStable(VanillaKVersion o) { - if (this.major != o.major) { - return false - } - if (this.majorB != o.majorB) { - return false - } - if (this.minor != o.minor) { - return false - } - - return true - } - - @Override int compareTo(VanillaKVersion o) { - if (this.major != o.major) { - return Integer.compare(this.major, o.major) - } - if (this.majorB != o.majorB) { - return Integer.compare(this.majorB, o.majorB) - } - if (this.minor != o.minor) { - return Integer.compare(this.minor, o.minor) - } - if (this.patch != o.patch) { - return Integer.compare(this.patch, o.patch) - } - if (this.rc != o.rc) { - return Integer.compare(this.rc, o.rc) - } - - // Same version - return 0; - } - - String toString() { - String vString = "v${this.major}" - - if (this.majorB > 0) { - vString = vString.concat(".${this.majorB}") - } - - vString = vString.concat(".${this.minor}") - - if (this.patch > 0) { - vString = vString.concat(".${this.patch}") - } - - if (this.rc > 0 && this.rc < Integer.MAX_VALUE) { - vString = vString.concat("-rc${this.rc}") - } - return vString - } -} - -class UbuntuKVersion implements Comparable { - - Integer major = 0 - Integer minor = 0 - Integer patch = 0 - Integer umajor = 0 - Integer uminor = 0 - String suffix = "" - Boolean isLTS = false - - UbuntuKVersion() {} - - UbuntuKVersion(version) { - this.parse(version) - } - - static UbuntuKVersion minKVersion() { - return new UbuntuKVersion("Ubuntu-lts-0.0.0-0.0") - } - - static UbuntuKVersion maxKVersion() { - return new UbuntuKVersion("Ubuntu-" + Integer.MAX_VALUE + ".0.0-0.0") - } - - static UbuntuKVersion factory(version) { - return new UbuntuKVersion(version) - } - - def parse(version) { - this.major = 0 - this.minor = 0 - this.patch = 0 - this.umajor = 0 - this.uminor = 0 - this.suffix = ""; - this.isLTS = false - - if (!version) { - throw new EmptyKVersionException("Empty kernel version") - } - - //'Ubuntu-lts-4.8.0-27.29_16.04.1', - //'Ubuntu-4.4.0-70.91', - def match = version =~ /^Ubuntu-(lts-)??(\d+)\.(\d+)\.(\d+)-(\d+)\.(\d+)(.*)??$/ - if (!match) { - throw new InvalidKVersionException("Invalid kernel version: ${version}") - } - - this.isLTS = match.group(1) != null - - // Major - this.major = Integer.parseInt(match.group(2)) - - // Minor - this.minor = Integer.parseInt(match.group(3)) - - // Patch level - this.patch = Integer.parseInt(match.group(4)) - - // Ubuntu major - this.umajor = Integer.parseInt(match.group(5)) - - // Ubuntu minor - this.uminor = Integer.parseInt(match.group(6)) - - if (match.group(7) != null) { - this.suffix = match.group(7) - } - } - - // Return true if this version is a release candidate - Boolean isRC() { - return false - } - - // Return true if both version are of the same stable branch - Boolean isSameStable(UbuntuKVersion o) { - if (this.isLTS != o.isLTS) { - return false - } - if (this.major != o.major) { - return false - } - if (this.minor != o.minor) { - return false - } - if (this.patch != o.patch) { - return false - } - - return true - } - - @Override int compareTo(UbuntuKVersion o) { - if (this.major != o.major) { - return Integer.compare(this.major, o.major) - } - if (this.minor != o.minor) { - return Integer.compare(this.minor, o.minor) - } - if (this.patch != o.patch) { - return Integer.compare(this.patch, o.patch) - } - if (this.umajor != o.umajor) { - return Integer.compare(this.umajor, o.umajor) - } - if (this.uminor != o.uminor) { - return Integer.compare(this.uminor, o.uminor) - } - if (this.isLTS != o.isLTS) { - if (o.isLTS) { - return 1 - } else { - return -1 - } - } - - // Same version - return 0; - } - - String toString() { - String vString = "Ubuntu-" - - if (this.isLTS) { - vString = vString.concat("lts-") - } - - vString = vString.concat("${this.major}.${this.minor}.${this.patch}-${this.umajor}.${this.uminor}${this.suffix}") - - return vString - } -} - - -// Retrieve parameters of the current build -def mversion = build.buildVariableResolver.resolve('mversion') -def maxConcurrentBuild = build.buildVariableResolver.resolve('maxConcurrentBuild') -def kgitrepo = build.buildVariableResolver.resolve('kgitrepo') -def kverfloor_raw = build.buildVariableResolver.resolve('kverfloor') -def kverceil_raw = build.buildVariableResolver.resolve('kverceil') -def kverfilter = build.buildVariableResolver.resolve('kverfilter') -def uversion = build.buildVariableResolver.resolve('uversion') -def job = Hudson.instance.getJob(build.buildVariableResolver.resolve('kbuildjob')) -def currentJobName = build.project.getFullDisplayName() - - -// Get the out variable -def config = new HashMap() -def bindings = getBinding() -config.putAll(bindings.getVariables()) -def out = config['out'] - - -// Get tags from git repository -def refs = Git.lsRemoteRepository().setTags(true).setRemote(kgitrepo).call(); - -// Get kernel versions to build -def kversions = [] -def kversionsRC = [] -def matchStrs = [] -def blacklist = [] -def kversionFactory = "" - -if (uversion != null) { - kversionFactory = new UbuntuKVersion() - switch (uversion) { - case 'xenial': - matchStrs = [ - ~/^refs\/tags\/(Ubuntu-4\.4\.0-\d{1,3}?\.[\d]+)$/, - ~/^refs\/tags\/(Ubuntu-lts-4\.8\.0-.*_16\.04\.\d+)$/, - ~/^refs\/tags\/(Ubuntu-lts-4\.10\.0-.*_16\.04\.\d+)$/, - ] - - blacklist = [ - 'Ubuntu-lts-4.10.0-7.9_16.04.1', - ] - break - - case 'trusty': - matchStrs = [ - ~/^refs\/tags\/(Ubuntu-3\.13\.0-[\d\.]+)$/, - ~/^refs\/tags\/(Ubuntu-lts-.*_14\.04\.\d+)$/, - ] - break - - default: - println 'Unsupported Ubuntu version: ${uversion}' - throw new InterruptedException() - break - } -} else { - // Vanilla - kversionFactory = new VanillaKVersion() - matchStrs = [ - ~/^refs\/tags\/(v[\d\.]+(-rc(\d+))?)$/, - ] -} - -// Parse kernel versions -def kverfloor = "" -try { - kverfloor = kversionFactory.factory(kverfloor_raw) -} catch (EmptyKVersionException e) { - kverfloor = kversionFactory.minKVersion() -} - -def kverceil = "" -try { - kverceil = kversionFactory.factory(kverceil_raw) -} catch (EmptyKVersionException e) { - kverceil = kversionFactory.maxKVersion() -} - -// Build a sorted list of versions to build -for (ref in refs) { - for (matchStr in matchStrs) { - def match = ref.getName() =~ matchStr - if (match && !blacklist.contains(match.group(1))) { - def v = kversionFactory.factory(match.group(1)) - - if ((v >= kverfloor) && (v < kverceil)) { - if (v.isRC()) { - kversionsRC.add(v) - } else { - kversions.add(v) - } - } - } - } -} - -kversions.sort() -kversionsRC.sort() - -switch (kverfilter) { - case 'stable-head': - // Keep only the head of each stable branch - println('Filter kernel versions to keep only the latest point release of each stable branch.') - - for (i = 0; i < kversions.size(); i++) { - def curr = kversions[i] - def next = i < kversions.size() - 1 ? kversions[i + 1] : null - - if (next != null) { - if (curr.isSameStable(next)) { - kversions.remove(i) - i-- - } - } - } - break - - default: - // No filtering of kernel versions - println('No kernel versions filtering selected.') - break -} - -// If the last RC version is newer than the last stable, add it to the build list -if (kversionsRC.size() > 0 && kversionsRC.last() > kversions.last()) { - kversions.add(kversionsRC.last()) -} - -println "Building the following kernel versions:" -for (k in kversions) { - println k -} - -// Debug: Stop build here -//throw new InterruptedException() - -def joburl = HyperlinkNote.encodeTo('/' + job.url, job.fullDisplayName) - -def allBuilds = [] -def ongoingBuild = [] -def failedRuns = [] -def isFailed = false -def similarJobQueued = 0; - -// Loop while we have kernel versions remaining or jobs running -while ( kversions.size() != 0 || ongoingBuild.size() != 0 ) { - - if(ongoingBuild.size() < maxConcurrentBuild.toInteger() && kversions.size() != 0) { - def kversion = kversions.pop() - def job_params = [ - new StringParameterValue('mversion', mversion), - new StringParameterValue('ktag', kversion.toString()), - new StringParameterValue('kgitrepo', kgitrepo), - ] - - // Launch the parametrized build - def param_build = job.scheduleBuild2(0, new Cause.UpstreamCause(build), new ParametersAction(job_params)) - println "triggering ${joburl} for the ${mversion} branch on kernel ${kversion}" - - // Add it to the ongoing build queue - ongoingBuild.push(param_build) - - } else { - - println "Waiting... Queued: " + kversions.size() + " Running: " + ongoingBuild.size() - try { - Thread.sleep(10000) - } catch(e) { - if (e in InterruptedException) { - build.setResult(hudson.model.Result.ABORTED) - throw new InterruptedException() - } else { - throw(e) - } - } - - // Abort job if a newer instance is queued - similarJobQueued = Hudson.instance.queue.items.count{it.task.getFullDisplayName() == currentJobName} - if ( similarJobQueued > 0 ) { - build.setResult(hudson.model.Result.ABORTED) - throw new InterruptedException() - } - - def i = ongoingBuild.iterator() - while ( i.hasNext() ) { - currentBuild = i.next() - if ( currentBuild.isCancelled() || currentBuild.isDone() ) { - // Remove from queue - i.remove() - - // Print results - def matrixParent = currentBuild.get() - allBuilds.add(matrixParent) - def kernelStr = matrixParent.buildVariableResolver.resolve("ktag") - println "${matrixParent.fullDisplayName} (${kernelStr}) completed with status ${matrixParent.result}" - - // Process child runs of matrixBuild - def childRuns = matrixParent.getRuns() - for ( childRun in childRuns ) { - println "\t${childRun.fullDisplayName} (${kernelStr}) completed with status ${childRun.result}" - if (childRun.result != Result.SUCCESS) { - failedRuns.add(childRun) - isFailed = true - } - } - } - } - } -} - -// Get log of failed runs -for (failedRun in failedRuns) { - println "---START---" - failedRun.writeWholeLogTo(out) - println "---END---" -} - -println "---Build report---" -for (b in allBuilds) { - def kernelStr = b.buildVariableResolver.resolve("ktag") - println "${b.fullDisplayName} (${kernelStr}) completed with status ${b.result}" - // Cleanup builds - try { - b.delete() - } catch (all) {} -} - -// Mark this build failed if any child build has failed -if (isFailed) { - build.setResult(hudson.model.Result.FAILURE) -} - -// EOF diff --git a/scripts/latency-tracker/param-build.sh b/scripts/latency-tracker/param-build.sh deleted file mode 100644 index 22e198b..0000000 --- a/scripts/latency-tracker/param-build.sh +++ /dev/null @@ -1,410 +0,0 @@ -#!/bin/sh -exu -# -# Copyright (C) 2016 - Michael Jeanson -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Parameters -arch=${arch:-} -cross_arch=${cross_arch:-} -ktag=${ktag:-} - - -## FUNCTIONS ## - -# Kernel version compare functions -verlte() { - [ "$1" = "$(printf '%s\n%s' "$1" "$2" | sort -V | head -n1)" ] -} - -verlt() { - [ "$1" = "$2" ] && return 1 || verlte "$1" "$2" -} - -vergte() { - [ "$1" = "$(printf '%s\n%s' "$1" "$2" | sort -V | tail -n1)" ] -} - -vergt() { - [ "$1" = "$2" ] && return 1 || vergte "$1" "$2" -} - - -prepare_lnx_sources() { - - outdir=$1 - - if [ "$outdir" = "." ]; then - koutput="" - else - koutput="O=${outdir}" - fi - - # Generate kernel configuration - case "$ktag" in - Ubuntu*) - if [ "${cross_arch}" = "powerpc" ]; then - if vergte "$KVERSION" "4.10"; then - echo "Ubuntu removed big endian powerpc configuration from kernel >= 4.10. Don't try to build it." - exit 0 - fi - fi - fakeroot debian/rules clean - fakeroot debian/rules genconfigs - cp CONFIGS/"${ubuntu_config}" "${outdir}"/.config - ;; - *) - # Que sera sera - make "${vanilla_config}" CC="$CC" ${koutput} - ;; - esac - - # GCC 4.8 - sed -i "s/CONFIG_CC_STACKPROTECTOR_STRONG=y/# CONFIG_CC_STACKPROTECTOR_STRONG is not set/g" "${outdir}"/.config - - # Don't try to sign modules - sed -i "s/CONFIG_MODULE_SIG=y/# CONFIG_MODULE_SIG is not set/g" "${outdir}"/.config - - # Disable kernel stack frame correctness validation, introduced in 4.6.0 and currently fails - sed -i "s/CONFIG_STACK_VALIDATION=y/# CONFIG_STACK_VALIDATION is not set/g" "${outdir}"/.config - - # Set required options - { - echo "CONFIG_KPROBES=y"; - echo "CONFIG_FTRACE=y"; - echo "CONFIG_BLK_DEV_IO_TRACE=y"; - echo "CONFIG_TRACEPOINTS=y"; - echo "CONFIG_KALLSYMS_ALL=y"; - } >> "${outdir}"/.config - - - make "$oldconf_target" CC="$CC" ${koutput} - make modules_prepare CC="$CC" ${koutput} - - # Debug - #cat "${outdir}"/.config - - # On powerpc this object is required to link modules - if [ "${karch}" = "powerpc" ]; then - make arch/powerpc/lib/crtsavres.o CC="$CC" ${koutput} - fi - - # On arm64 this object is required to build with ftrace support - if [ "${karch}" = "arm64" ]; then - if vergte "$KVERSION" "4.13-rc1"; then - make arch/arm64/kernel/ftrace-mod.o CC="$CC" ${koutput} - fi - fi - - # Version specific tasks - case "$ktag" in - Ubuntu*) - # Add Ubuntu ABI number to kernel headers, this is normally done by the packaging code - ABINUM="$(echo "$ktag" | grep -P -o 'Ubuntu-(lts-)?.*-\K\d+(?=\..*)')" - echo "#define UTS_UBUNTU_RELEASE_ABI $ABINUM" >> "${outdir}"/include/generated/utsrelease.h - ;; - esac -} - - - -build_modules() { - - kdir="$1" - bdir="$2" - - # Enter latency-tracker source dir - cd "${LTTSRCDIR}" - - # kernels 3.10 to 3.10.13 and 3.11 to 3.11.2 introduce a deadlock in the - # timekeeping subsystem. We want those build to fail. - if { vergte "$KVERSION" "3.10" && verlte "$KVERSION" "3.10.13"; } || \ - { vergte "$KVERSION" "3.11" && verlte "$KVERSION" "3.11.2"; }; then - - set +e - - # Build modules - KERNELDIR="${kdir}" make -j"${NPROC}" V=1 CC="$CC" - - # We expect this build to fail, if it doesn't, fail the job. - if [ "$?" -eq 0 ]; then - echo "This build should have failed." - exit 1 - fi - - # We have to publish at least one file or the build will fail - echo "This kernel is broken, there is a deadlock in the timekeeping subsystem." > "${bdir}/BROKEN.txt.ko" - - set -e - - KERNELDIR="${kdir}" make clean CC="$CC" - - else # Regular build - - # Build modules against full kernel sources - KERNELDIR="${kdir}" make -j"${NPROC}" V=1 CC="$CC" - - # Install modules to build dir - KERNELDIR="${kdir}" make INSTALL_MOD_PATH="${bdir}" modules_install CC="$CC" - - # Clean build dir - KERNELDIR="${kdir}" make clean CC="$CC" - fi -} - - -## MAIN ## - -# Use all CPU cores -NPROC=$(nproc) - -LTTSRCDIR="${WORKSPACE}/src/latency-tracker" -LNXSRCDIR="${WORKSPACE}/src/linux" - -LNXBUILDDIR="${WORKSPACE}/build/linux" -LNXHDRDIR="${WORKSPACE}/build/linux-headers" - -LTTBUILDKSRCDIR="${WORKSPACE}/build/latency-tracker-ksrc" -LTTBUILDKHDRDIR="${WORKSPACE}/build/latency-tracker-khdr" - - -# Setup cross compile env if available -if [ "x${cross_arch}" != "x" ]; then - - case "$cross_arch" in - "armhf") - karch="arm" - cross_compile="arm-linux-gnueabihf-" - vanilla_config="allyesconfig" - ubuntu_config="armhf-config.flavour.generic" - ;; - - "arm64") - karch="arm64" - cross_compile="aarch64-linux-gnu-" - vanilla_config="allyesconfig" - ubuntu_config="arm64-config.flavour.generic" - ;; - - "powerpc") - karch="powerpc" - cross_compile="powerpc-linux-gnu-" - vanilla_config="ppc44x_defconfig" - ubuntu_config="powerpc-config.flavour.powerpc-smp" - ;; - - "ppc64el") - karch="powerpc" - cross_compile="powerpc64le-linux-gnu-" - vanilla_config="pseries_le_defconfig" - ubuntu_config="ppc64el-config.flavour.generic" - ;; - - *) - echo "Unsupported cross arch $cross_arch" - exit 1 - ;; - esac - - # Use gcc 4.9, older kernel don't build with gcc 5 - CC="${cross_compile}gcc-4.9" - - # Export variables used by Kbuild for cross compilation - export ARCH="${karch}" - export CROSS_COMPILE="${cross_compile}" - - oldconf_target="olddefconfig" - -# Set arch specific values if we are not cross compiling -elif [ "x${arch}" != "x" ]; then - - case "$arch" in - "x86-32") - karch="x86" - vanilla_config="allyesconfig" - ubuntu_config="i386-config.flavour.generic" - ;; - - "x86-64") - karch="x86" - vanilla_config="allyesconfig" - ubuntu_config="amd64-config.flavour.generic" - ;; - - "armhf") - karch="arm" - vanilla_config="allyesconfig" - ubuntu_config="armhf-config.flavour.generic" - ;; - - "arm64") - karch="arm64" - vanilla_config="allyesconfig" - ubuntu_config="arm64-config.flavour.generic" - ;; - - "powerpc") - karch="powerpc" - vanilla_config="allyesconfig" - ubuntu_config="powerpc-config.flavour.powerpc-smp" - ;; - - "ppc64el") - karch="powerpc" - vanilla_config="allyesconfig" - ubuntu_config="ppc64el-config.flavour.generic" - ;; - - *) - echo "Unsupported arch $arch" - exit 1 - ;; - esac - - # Use gcc 4.9, older kernel don't build with gcc 5 - CC=gcc-4.9 - - oldconf_target="silentoldconfig" - -else - echo "Not arch or cross_arch specified" - exit 1 -fi - - - - -# Create build directories -mkdir -p "${LNXBUILDDIR}" "${LNXHDRDIR}" "${LTTBUILDKSRCDIR}" "${LTTBUILDKHDRDIR}" - - - -## PREPARE DISTRO STYLE KERNEL HEADERS / DEVEL - -# Enter linux source dir -cd "${LNXSRCDIR}" - -# Get kernel version from source tree -KVERSION=$(make kernelversion) - -prepare_lnx_sources "." - -# For RT kernels, copy version file -if [ -s localversion-rt ]; then - cp -a localversion-rt "${LNXHDRDIR}" -fi - -# Copy all Makefile related stuff -find . -path './include/*' -prune \ - -o -path './scripts/*' -prune -o -type f \ - \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ - -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \ - -print | cpio -pd --preserve-modification-time "${LNXHDRDIR}" - -# Copy base scripts and include dirs -cp -a scripts include "${LNXHDRDIR}" - -# Copy arch includes -(find arch -name include -type d -print0 | \ - xargs -0 -n1 -i: find : -type f) | \ - cpio -pd --preserve-modification-time "${LNXHDRDIR}" - -# Copy arch scripts -(find arch -name scripts -type d -print0 | \ - xargs -0 -n1 -i: find : -type f) | \ - cpio -pd --preserve-modification-time "${LNXHDRDIR}" - -# Cleanup scripts -rm -f "${LNXHDRDIR}/scripts/*.o" -rm -f "${LNXHDRDIR}/scripts/*/*.o" - -# On powerpc this object is required to link modules -if [ "${karch}" = "powerpc" ]; then - cp -a --parents arch/powerpc/lib/crtsavres.[So] "${LNXHDRDIR}/" -fi - -# On arm64 this object is required to build with ftrace support -if [ "${karch}" = "arm64" ]; then - if vergte "$KVERSION" "4.13-rc1"; then - cp -a --parents arch/arm64/kernel/ftrace-mod.[So] "${LNXHDRDIR}/" - fi -fi - -# Copy modules related stuff, if available -if [ -s Module.symvers ]; then - cp Module.symvers "${LNXHDRDIR}" -fi - -if [ -s System.map ]; then - cp System.map "${LNXHDRDIR}" -fi - -if [ -s Module.markers ]; then - cp Module.markers "${LNXHDRDIR}" -fi - -# Copy config file -cp .config "${LNXHDRDIR}" - -# Make sure the Makefile and version.h have a matching timestamp so that -# external modules can be built -if [ -s "${LNXHDRDIR}/include/generated/uapi/linux/version.h" ]; then - touch -r "${LNXHDRDIR}/Makefile" "${LNXHDRDIR}/include/generated/uapi/linux/version.h" -elif [ -s "${LNXHDRDIR}/include/linux/version.h" ]; then - touch -r "${LNXHDRDIR}/Makefile" "${LNXHDRDIR}/include/linux/version.h" -else - echo "Missing version.h" - exit 1 -fi -touch -r "${LNXHDRDIR}/.config" "${LNXHDRDIR}/include/generated/autoconf.h" - -# Copy .config to include/config/auto.conf so "make prepare" is unnecessary. -cp "${LNXHDRDIR}/.config" "${LNXHDRDIR}/include/config/auto.conf" - - - - -## PREPARE FULL LINUX SOURCE TREE - -# Enter linux source dir -cd "${LNXSRCDIR}" - -# Make sure linux source dir is clean -git clean -xdf - -prepare_lnx_sources "${LNXBUILDDIR}" - - -## BUILD modules - -# Build modules against full kernel sources -build_modules "${LNXBUILDDIR}" "${LTTBUILDKSRCDIR}" - -# Build modules against kernel headers -build_modules "${LNXHDRDIR}" "${LTTBUILDKHDRDIR}" - -# Make sure modules were built -tree "${LTTBUILDKSRCDIR}" -if [ "x$(find "${LTTBUILDKSRCDIR}" -name '*.ko*' -printf yes -quit)" != "xyes" ]; then - echo "No modules built!" - exit 1 -fi - -tree "${LTTBUILDKHDRDIR}" -if [ "x$(find "${LTTBUILDKHDRDIR}" -name '*.ko*' -printf yes -quit)" != "xyes" ]; then - echo "No modules built!" - exit 1 -fi - -# EOF diff --git a/scripts/lttng-modules/param-build.sh b/scripts/lttng-modules/param-build.sh index 7f965b4..a3ec5f2 100644 --- a/scripts/lttng-modules/param-build.sh +++ b/scripts/lttng-modules/param-build.sh @@ -146,8 +146,8 @@ build_linux_kernel() { cp CONFIGS/"${ubuntu_config}" .config ;; *) - # Force 32bit build on x86-32, default is 64bit - if [ "$arch" = "x86-32" ]; then + # Force 32bit build on i386, default is 64bit + if [ "$arch" = "i386" ]; then export ARCH="i386" fi @@ -480,13 +480,13 @@ if [ "x${cross_arch}" != "x" ]; then elif [ "x${arch}" != "x" ]; then case "$arch" in - "x86-32") + "i386") karch="x86" vanilla_config="allyesconfig" ubuntu_config="i386-config.flavour.generic" ;; - "x86-64") + "amd64") karch="x86" vanilla_config="allyesconfig" ubuntu_config="amd64-config.flavour.generic" diff --git a/scripts/lttng-ust-java-tests/set-java-home.sh b/scripts/lttng-ust-java-tests/set-java-home.sh deleted file mode 100755 index 5788cf1..0000000 --- a/scripts/lttng-ust-java-tests/set-java-home.sh +++ /dev/null @@ -1,14 +0,0 @@ -# Set the JAVA_HOME to use according to the configuration - -case "$arch" in - "x86-32") - ARCH_SUFFIX="i386" - ;; - "x86-64") - ARCH_SUFFIX="amd64" - ;; - "*") - ARCH_SUFFIX="$arch" -esac - -echo "JAVA_HOME=/usr/lib/jvm/${java_version}-$ARCH_SUFFIX/jre" -- 2.34.1