diff options
-rw-r--r-- | build/conf/auto.conf | 5 | ||||
-rw-r--r-- | build/conf/bblayers.conf | 12 | ||||
-rw-r--r-- | build/conf/local.conf | 237 | ||||
-rw-r--r-- | build/conf/templateconf.cfg | 1 | ||||
-rw-r--r-- | metadata.xml | 41 | ||||
-rw-r--r-- | oe-build-perf-test.log | 26 | ||||
-rw-r--r-- | results.xml | 69 |
7 files changed, 391 insertions, 0 deletions
diff --git a/build/conf/auto.conf b/build/conf/auto.conf new file mode 100644 index 0000000000..b84c4d3256 --- /dev/null +++ b/build/conf/auto.conf @@ -0,0 +1,5 @@ +MACHINE = "qemux86" +BB_NUMBER_THREADS = "8" +PARALLEL_MAKE = "-j 8" +DL_DIR = "/media/yocto_disk/poky-new-perf/build-perf-test/downloads" +CONNECTIVITY_CHECK_URIS = "" diff --git a/build/conf/bblayers.conf b/build/conf/bblayers.conf new file mode 100644 index 0000000000..01a90bfd62 --- /dev/null +++ b/build/conf/bblayers.conf @@ -0,0 +1,12 @@ +# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf +# changes incompatibly +POKY_BBLAYERS_CONF_VERSION = "2" + +BBPATH = "${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + /media/yocto_disk/poky-new-perf/meta \ + /media/yocto_disk/poky-new-perf/meta-poky \ + /media/yocto_disk/poky-new-perf/meta-yocto-bsp \ + " diff --git a/build/conf/local.conf b/build/conf/local.conf new file mode 100644 index 0000000000..365b6eb20c --- /dev/null +++ b/build/conf/local.conf @@ -0,0 +1,237 @@ +# +# This file is your local configuration file and is where all local user settings +# are placed. The comments in this file give some guide to the options a new user +# to the system might want to change but pretty much any configuration option can +# be set in this file. More adventurous users can look at local.conf.extended +# which contains other examples of configuration which can be placed in this file +# but new users likely won't need any of them initially. +# +# Lines starting with the '#' character are commented out and in some cases the +# default values are provided as comments to show people example syntax. Enabling +# the option is a question of removing the # character and making any change to the +# variable as required. + +# +# Machine Selection +# +# You need to select a specific machine to target the build with. There are a selection +# of emulated machines available which can boot and run in the QEMU emulator: +# +#MACHINE ?= "qemuarm" +#MACHINE ?= "qemuarm64" +#MACHINE ?= "qemumips" +#MACHINE ?= "qemumips64" +#MACHINE ?= "qemuppc" +#MACHINE ?= "qemux86" +#MACHINE ?= "qemux86-64" +# +# There are also the following hardware board target machines included for +# demonstration purposes: +# +#MACHINE ?= "beaglebone" +#MACHINE ?= "genericx86" +#MACHINE ?= "genericx86-64" +#MACHINE ?= "mpc8315e-rdb" +#MACHINE ?= "edgerouter" +# +# This sets the default machine to be qemux86 if no other machine is selected: +MACHINE ??= "qemux86" + +# +# Where to place downloads +# +# During a first build the system will download many different source code tarballs +# from various upstream projects. This can take a while, particularly if your network +# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you +# can preserve this directory to speed up this part of subsequent builds. This directory +# is safe to share between multiple builds on the same machine too. +# +# The default is a downloads directory under TOPDIR which is the build directory. +# +#DL_DIR ?= "${TOPDIR}/downloads" + +# +# Where to place shared-state files +# +# BitBake has the capability to accelerate builds based on previously built output. +# This is done using "shared state" files which can be thought of as cache objects +# and this option determines where those files are placed. +# +# You can wipe out TMPDIR leaving this directory intact and the build would regenerate +# from these files if no changes were made to the configuration. If changes were made +# to the configuration, only shared state files where the state was still valid would +# be used (done using checksums). +# +# The default is a sstate-cache directory under TOPDIR. +# +#SSTATE_DIR ?= "${TOPDIR}/sstate-cache" + +# +# Where to place the build output +# +# This option specifies where the bulk of the building work should be done and +# where BitBake should place its temporary files and output. Keep in mind that +# this includes the extraction and compilation of many applications and the toolchain +# which can use Gigabytes of hard disk space. +# +# The default is a tmp directory under TOPDIR. +# +#TMPDIR = "${TOPDIR}/tmp" + +# +# Default policy config +# +# The distribution setting controls which policy settings are used as defaults. +# The default value is fine for general Yocto project use, at least initially. +# Ultimately when creating custom policy, people will likely end up subclassing +# these defaults. +# +DISTRO ?= "poky" +# As an example of a subclass there is a "bleeding" edge policy configuration +# where many versions are set to the absolute latest code from the upstream +# source control systems. This is just mentioned here as an example, its not +# useful to most new users. +# DISTRO ?= "poky-bleeding" + +# +# Package Management configuration +# +# This variable lists which packaging formats to enable. Multiple package backends +# can be enabled at once and the first item listed in the variable will be used +# to generate the root filesystems. +# Options are: +# - 'package_deb' for debian style deb files +# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) +# - 'package_rpm' for rpm style packages +# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" +# We default to rpm: +PACKAGE_CLASSES ?= "package_rpm" + +# +# SDK target architecture +# +# This variable specifies the architecture to build SDK items for and means +# you can build the SDK packages for architectures other than the machine you are +# running the build on (i.e. building i686 packages on an x86_64 host). +# Supported values are i686 and x86_64 +#SDKMACHINE ?= "i686" + +# +# Extra image configuration defaults +# +# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated +# images. Some of these options are added to certain image types automatically. The +# variable can contain the following options: +# "dbg-pkgs" - add -dbg packages for all installed packages +# (adds symbol information for debugging/profiling) +# "dev-pkgs" - add -dev packages for all installed packages +# (useful if you want to develop against libs in the image) +# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages +# (useful if you want to run the package test suites) +# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.) +# "tools-debug" - add debugging tools (gdb, strace) +# "eclipse-debug" - add Eclipse remote debugging support +# "tools-profile" - add profiling tools (oprofile, lttng, valgrind) +# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.) +# "debug-tweaks" - make an image suitable for development +# e.g. ssh root access has a blank password +# There are other application targets that can be used here too, see +# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details. +# We default to enabling the debugging tweaks. +EXTRA_IMAGE_FEATURES ?= "debug-tweaks" + +# +# Additional image features +# +# The following is a list of additional classes to use when building images which +# enable extra features. Some available options which can be included in this variable +# are: +# - 'buildstats' collect build statistics +# - 'image-mklibs' to reduce shared library files size for an image +# - 'image-prelink' in order to prelink the filesystem image +# - 'image-swab' to perform host system intrusion detection +# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink +# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended +USER_CLASSES ?= "buildstats image-mklibs image-prelink" + +# +# Runtime testing of images +# +# The build system can test booting virtual machine images under qemu (an emulator) +# after any root filesystems are created and run tests against those images. To +# enable this uncomment this line. See classes/testimage(-auto).bbclass for +# further details. +#TEST_IMAGE = "1" +# +# Interactive shell configuration +# +# Under certain circumstances the system may need input from you and to do this it +# can launch an interactive shell. It needs to do this since the build is +# multithreaded and needs to be able to handle the case where more than one parallel +# process may require the user's attention. The default is iterate over the available +# terminal types to find one that works. +# +# Examples of the occasions this may happen are when resolving patches which cannot +# be applied, to use the devshell or the kernel menuconfig +# +# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none +# Note: currently, Konsole support only works for KDE 3.x due to the way +# newer Konsole versions behave +#OE_TERMINAL = "auto" +# By default disable interactive patch resolution (tasks will just fail instead): +PATCHRESOLVE = "noop" + +# +# Disk Space Monitoring during the build +# +# Monitor the disk space during the build. If there is less that 1GB of space or less +# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully +# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort +# of the build. The reason for this is that running completely out of space can corrupt +# files and damages the build in ways which may not be easily recoverable. +# It's necesary to monitor /tmp, if there is no space left the build will fail +# with very exotic errors. +BB_DISKMON_DIRS = "\ + STOPTASKS,${TMPDIR},1G,100K \ + STOPTASKS,${DL_DIR},1G,100K \ + STOPTASKS,${SSTATE_DIR},1G,100K \ + STOPTASKS,/tmp,100M,100K \ + ABORT,${TMPDIR},100M,1K \ + ABORT,${DL_DIR},100M,1K \ + ABORT,${SSTATE_DIR},100M,1K \ + ABORT,/tmp,10M,1K" + +# +# Shared-state files from other locations +# +# As mentioned above, shared state files are prebuilt cache data objects which can +# used to accelerate build time. This variable can be used to configure the system +# to search other mirror locations for these objects before it builds the data itself. +# +# This can be a filesystem directory, or a remote url such as http or ftp. These +# would contain the sstate-cache results from previous builds (possibly from other +# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the +# cache locations to check for the shared objects. +# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH +# at the end as shown in the examples below. This will be substituted with the +# correct path within the directory structure. +#SSTATE_MIRRORS ?= "\ +#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \ +#file://.* file:///some/local/dir/sstate/PATH" + + +# +# Qemu configuration +# +# By default qemu will build with a builtin VNC server where graphical output can be +# seen. The two lines below enable the SDL backend too. By default libsdl-native will +# be built, if you want to use your host's libSDL instead of the minimal libsdl built +# by libsdl-native then uncomment the ASSUME_PROVIDED line below. +PACKAGECONFIG_append_pn-qemu-native = " sdl" +PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" +#ASSUME_PROVIDED += "libsdl-native" + +# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to +# track the version of this file when it was generated. This can safely be ignored if +# this doesn't mean anything to you. +CONF_VERSION = "1" diff --git a/build/conf/templateconf.cfg b/build/conf/templateconf.cfg new file mode 100644 index 0000000000..7480a55b98 --- /dev/null +++ b/build/conf/templateconf.cfg @@ -0,0 +1 @@ +meta-poky/conf diff --git a/metadata.xml b/metadata.xml new file mode 100644 index 0000000000..afea09eb32 --- /dev/null +++ b/metadata.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" ?> +<metadata> + <hostname>ypperf02</hostname> + <distro> + <pretty_name>poky 2.3</pretty_name> + <id>poky</id> + <version_id>2.3</version_id> + </distro> + <host_distro> + <id>ubuntu</id> + <version_id>15.10</version_id> + <pretty_name>Ubuntu 15.10</pretty_name> + </host_distro> + <layers> + <layer name="meta"> + <commit>7a0e795373653886452a7a2992ced10080711c26</commit> + <commit_count>45462</commit_count> + <branch>pyro</branch> + </layer> + <layer name="meta-poky"> + <commit>7a0e795373653886452a7a2992ced10080711c26</commit> + <commit_count>45462</commit_count> + <branch>pyro</branch> + </layer> + <layer name="meta-yocto-bsp"> + <commit>7a0e795373653886452a7a2992ced10080711c26</commit> + <commit_count>45462</commit_count> + <branch>pyro</branch> + </layer> + </layers> + <bitbake> + <commit>7a0e795373653886452a7a2992ced10080711c26</commit> + <commit_count>45462</commit_count> + <branch>pyro</branch> + </bitbake> + <config> + <variable name="BB_NUMBER_THREADS">8</variable> + <variable name="MACHINE">qemux86</variable> + <variable name="PARALLEL_MAKE">-j 8</variable> + </config> +</metadata> diff --git a/oe-build-perf-test.log b/oe-build-perf-test.log new file mode 100644 index 0000000000..93aa43459b --- /dev/null +++ b/oe-build-perf-test.log @@ -0,0 +1,26 @@ +[2017-04-24 13:00:12,446] INFO: Testing Git revision branch:commit pyro:7a0e795373653886452a7a2992ced10080711c26 (45462) +[2017-04-24 13:00:12,452] INFO: Executing test test1: Build core-image-sato +[2017-04-24 13:00:12,452] INFO: Logging command: bitbake core-image-sato -c fetchall +[2017-04-24 13:00:55,353] INFO: Timing command: bitbake core-image-sato +[2017-04-24 14:12:55,446] INFO: Saving buildstats in JSON format +[2017-04-24 14:23:43,414] INFO: Executing test test12: Build virtual/kernel +[2017-04-24 14:23:43,447] INFO: Logging command: bitbake virtual/kernel -c fetchall +[2017-04-24 14:24:01,106] INFO: Logging command: bitbake virtual/kernel +[2017-04-24 14:24:03,957] INFO: Logging command: bitbake virtual/kernel -c cleansstate +[2017-04-24 14:24:23,373] INFO: Timing command: bitbake virtual/kernel +[2017-04-24 14:29:38,721] INFO: Executing test test13: Build core-image-sato with rm_work enabled +[2017-04-24 14:29:38,721] INFO: Logging command: bitbake core-image-sato -c fetchall +[2017-04-24 14:45:52,845] INFO: Timing command: bitbake -R /media/yocto_disk/poky-new-perf/build-perf-test/results-7a0e795-20170424130005/test13.tmp/postfile.conf core-image-sato +[2017-04-24 15:51:16,548] INFO: Saving buildstats in JSON format +[2017-04-24 15:51:25,271] INFO: Executing test test2: Run core-image-sato do_rootfs with sstate +[2017-04-24 15:51:25,271] INFO: Logging command: bitbake core-image-sato -c fetchall +[2017-04-24 15:51:54,236] INFO: Logging command: bitbake core-image-sato +[2017-04-24 15:53:51,475] INFO: Timing command: bitbake core-image-sato -c rootfs +[2017-04-24 15:56:10,551] INFO: Executing test test3: Bitbake parsing (bitbake -p) +[2017-04-24 15:56:10,554] INFO: Timing command: bitbake -p +[2017-04-24 15:56:29,163] INFO: Timing command: bitbake -p +[2017-04-24 15:56:41,531] INFO: Timing command: bitbake -p +[2017-04-24 15:56:42,791] INFO: Executing test test4: eSDK metrics +[2017-04-24 15:56:42,792] INFO: Logging command: bitbake core-image-sato -c fetchall +[2017-04-24 15:57:03,380] INFO: Logging command: bitbake -c do_populate_sdk_ext core-image-sato +[2017-04-24 16:22:10,689] INFO: Timing command: /media/yocto_disk/poky-new-perf/build-perf-test/build-7a0e795-20170424130005/tmp/deploy/sdk/poky-glibc-x86_64-core-image-sato-i586-toolchain-ext-2.3.sh -y -d /media/yocto_disk/poky-new-perf/build-perf-test/build-7a0e795-20170424130005/tmp/esdk-deploy diff --git a/results.xml b/results.xml new file mode 100644 index 0000000000..f9b9a799d5 --- /dev/null +++ b/results.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="utf-8"?> +<testsuites> + <testsuite errors="0" failures="0" hostname="ypperf02" name="oeqa.buildperf" skipped="0" tests="6" time="12282.820003" timestamp="2017-04-24T18:00:12.452567"> + <testcase classname="oeqa.buildperf.test_basic.Test1P1" description="Build core-image-sato" name="test1" time="5010.961724" timestamp="2017-04-24T13:00:12.452607"> + <sysres legend="bitbake core-image-sato" name="build"> + <time timestamp="2017-04-24T13:00:55.486879">4319.866876</time> + <iostat cancelled_write_bytes="8446889984" rchar="280341717724" read_bytes="4947996672" syscr="97846289" syscw="95120880" wchar="74995959089" write_bytes="49950027776"/> + <rusage ru_inblock="9658848" ru_majflt="11147" ru_maxrss="919040" ru_minflt="1165610211" ru_nivcsw="26408304" ru_nvcsw="32087164" ru_oublock="97558648" ru_stime="1926.86" ru_utime="20971.868"/> + </sysres> + <diskusage legend="tmpdir" name="tmpdir"> + <size>31934856</size> + </diskusage> + </testcase> + <testcase classname="oeqa.buildperf.test_basic.Test1P2" description="Build virtual/kernel" name="test12" time="355.306166" timestamp="2017-04-24T14:23:43.414893"> + <sysres legend="bitbake virtual/kernel" name="build"> + <time timestamp="2017-04-24T14:24:23.385960">315.309251</time> + <iostat cancelled_write_bytes="316788736" rchar="29975699708" read_bytes="792150016" syscr="6013024" syscw="1636003" wchar="2254806078" write_bytes="2034229248"/> + <rusage ru_inblock="1547112" ru_majflt="4698" ru_maxrss="574344" ru_minflt="59298326" ru_nivcsw="225382" ru_nvcsw="685289" ru_oublock="3973104" ru_stime="78.32" ru_utime="1465.284"/> + </sysres> + </testcase> + <testcase classname="oeqa.buildperf.test_basic.Test1P3" description="Build core-image-sato with rm_work enabled" name="test13" time="4906.5499" timestamp="2017-04-24T14:29:38.721125"> + <sysres legend="bitbakecore-image-sato" name="build"> + <time timestamp="2017-04-24T14:45:52.871530">3923.672151</time> + <iostat cancelled_write_bytes="12268212224" rchar="280627828335" read_bytes="2108469248" syscr="99288885" syscw="95514894" wchar="75238464297" write_bytes="48777228288"/> + <rusage ru_inblock="4117824" ru_majflt="7801" ru_maxrss="918996" ru_minflt="1176314537" ru_nivcsw="29274276" ru_nvcsw="29702234" ru_oublock="95268024" ru_stime="1972.58" ru_utime="21214.092"/> + </sysres> + <diskusage legend="tmpdir" name="tmpdir"> + <size>7088220</size> + </diskusage> + </testcase> + <testcase classname="oeqa.buildperf.test_basic.Test2" description="Run core-image-sato do_rootfs with sstate" name="test2" time="285.280661" timestamp="2017-04-24T15:51:25.271087"> + <sysres legend="bitbake do_rootfs" name="do_rootfs"> + <time timestamp="2017-04-24T15:53:51.501950">139.018685</time> + <iostat cancelled_write_bytes="180617216" rchar="4827708854" read_bytes="1196158976" syscr="1827706" syscw="1152986" wchar="4055743288" write_bytes="2249920512"/> + <rusage ru_inblock="2336248" ru_majflt="411" ru_maxrss="207080" ru_minflt="14655732" ru_nivcsw="88439" ru_nvcsw="802556" ru_oublock="4394376" ru_stime="28.476" ru_utime="325.44"/> + </sysres> + </testcase> + <testcase classname="oeqa.buildperf.test_basic.Test3" description="Bitbake parsing (bitbake -p)" name="test3" time="32.240097" timestamp="2017-04-24T15:56:10.551808"> + <sysres legend="bitbake -p (no caches)" name="parse_1"> + <time timestamp="2017-04-24T15:56:10.558478">18.601177</time> + <iostat cancelled_write_bytes="1216512" rchar="28767409" read_bytes="0" syscr="9376" syscw="4832" wchar="33297492" write_bytes="17305600"/> + <rusage ru_inblock="0" ru_majflt="0" ru_maxrss="122688" ru_minflt="528109" ru_nivcsw="14099" ru_nvcsw="10673" ru_oublock="33800" ru_stime="0.872" ru_utime="139.156"/> + </sysres> + <sysres legend="bitbake -p (no tmp/cache)" name="parse_2"> + <time timestamp="2017-04-24T15:56:29.167784">12.36111</time> + <iostat cancelled_write_bytes="1024000" rchar="28495003" read_bytes="0" syscr="9365" syscw="4819" wchar="32395280" write_bytes="16400384"/> + <rusage ru_inblock="0" ru_majflt="0" ru_maxrss="122688" ru_minflt="502744" ru_nivcsw="9067" ru_nvcsw="7969" ru_oublock="32032" ru_stime="0.8079999999999999" ru_utime="89.664"/> + </sysres> + <sysres legend="bitbake -p (cached)" name="parse_3"> + <time timestamp="2017-04-24T15:56:41.534855">1.254911</time> + <iostat cancelled_write_bytes="20480" rchar="21676450" read_bytes="0" syscr="6243" syscw="1528" wchar="793763" write_bytes="401408"/> + <rusage ru_inblock="0" ru_majflt="0" ru_maxrss="122688" ru_minflt="53882" ru_nivcsw="17" ru_nvcsw="7944" ru_oublock="784" ru_stime="0.128" ru_utime="1.072"/> + </sysres> + </testcase> + <testcase classname="oeqa.buildperf.test_basic.Test4" description="eSDK metrics" name="test4" time="1692.480559" timestamp="2017-04-24T15:56:42.791954"> + <diskusage legend="eSDK installer" name="installer_bin"> + <size>1364074</size> + </diskusage> + <sysres legend="eSDK deploy" name="deploy"> + <time timestamp="2017-04-24T16:22:10.735406">164.099593</time> + <iostat cancelled_write_bytes="303329280" rchar="9623824721" read_bytes="75821056" syscr="2235129" syscw="5163009" wchar="10219122768" write_bytes="4761735168"/> + <rusage ru_inblock="148080" ru_majflt="283" ru_maxrss="246488" ru_minflt="19277900" ru_nivcsw="325135" ru_nvcsw="1006647" ru_oublock="9300264" ru_stime="43.156" ru_utime="645.464"/> + </sysres> + <diskusage legend="deploy dir" name="deploy_dir"> + <size>4220344</size> + </diskusage> + </testcase> + </testsuite> +</testsuites> |