The Systems team has been working on making clone/pull operations work
better for people in different geographical regions:
https://wiki.linaro.org/Platform/Systems/GitHA
We currently have a DNS test alias named "git-geo.linaro.org" that
should direct users to the server that will deliver the best connection.
Before switching over the real "git.linaro.org" DNS entry, I was hoping
to get some more people using this new system to verify its working
correctly.
= How you can help
1) update "git.linaro.org" entries in your .git/config files to be
"git-geo.linaro.org"
2) let me know how it goes for you
-andy
Add test which verifies capacity calculation on arm
architecture platforms.
This will work on any platform that uses parse_dt_topology() arch hook
to set cpu capacity. Currently only arm (not arm64) platforms do this.
Signed-off-by: Larry Bassel <larry.bassel(a)linaro.org>
---
cputopology/cputopology_04.sh | 131 +++++++++++++++++++++++++++++++++++++++++
cputopology/cputopology_04.txt | 5 ++
2 files changed, 136 insertions(+)
create mode 100755 cputopology/cputopology_04.sh
create mode 100644 cputopology/cputopology_04.txt
diff --git a/cputopology/cputopology_04.sh b/cputopology/cputopology_04.sh
new file mode 100755
index 0000000..cce46cd
--- /dev/null
+++ b/cputopology/cputopology_04.sh
@@ -0,0 +1,131 @@
+#!/bin/sh
+#
+# PM-QA validation test suite for the power management on Linux
+#
+# Copyright (C) 2015, Linaro Limited.
+#
+# 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 2
+# 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Contributors:
+# Larry Bassel <larry.bassel(a)linaro.org>
+#
+
+# URL : https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/TestSuite/P…
+
+. ../include/functions.sh
+
+calc_freq()
+{
+ byte1=$1
+ byte2=$2
+ byte3=$3
+ byte4=$4
+ freq=$((byte1*0x1000000+byte2*0x10000+byte3*0x100+byte4))
+}
+
+# eff is the relative cpu efficiency of each processor
+set_eff() {
+ type=$1
+
+ case $type in
+ arm,cortex-a15) eff=3891 ;;
+ arm,cortex-a7) eff=2048 ;;
+ * ) eff=1024 ;;
+ esac
+}
+
+# Calculate a middle efficiency, This is later used to scale
+# the cpu_capacity such that an 'average' CPU is of middle capacity.
+
+calc_mid_capacity()
+{
+ dt_cpus=$(ls /sys/firmware/devicetree/base/cpus | grep "cpu(a)[0-9].*")
+ min_capacity=$((0xffffffff))
+ max_capacity=0
+ sched_capacity_shift=10
+
+ for dt_cpu in $dt_cpus; do
+ if [ ! -f /sys/firmware/devicetree/base/cpus/$dt_cpu/clock-frequency ]; then
+ log_skip "no clock frequency file present"
+ return
+ fi
+ if [ ! -f /sys/firmware/devicetree/base/cpus/$dt_cpu/compatible ]; then
+ log_skip "no compatible file present"
+ return
+ fi
+ filename=/sys/firmware/devicetree/base/cpus/$dt_cpu/clock-frequency
+ bytes=$(od -t u1 -A n $filename)
+ calc_freq $bytes
+ cpu_type=$(cat /sys/firmware/devicetree/base/cpus/$dt_cpu/compatible)
+ set_eff $cpu_type
+ capacity=$((($freq>>20)*$eff))
+ if [ $capacity -gt $max_capacity ]; then
+ max_capacity=$capacity
+ fi
+ if [ $capacity -lt $min_capacity ]; then
+ min_capacity=$capacity
+ fi
+ if [ $(((4 * $max_capacity))) -lt $(((3 * ($max_capacity + $min_capacity)))) ]; then
+ middle_capacity=$((($min_capacity + $max_capacity)>>($sched_capacity_shift+1)))
+ else
+ middle_capacity=$(((($max_capacity / 3)>>($sched_capacity_shift-1))+1))
+ fi
+ done
+}
+
+cpu_num=0
+
+verify_cpu_capacity()
+{
+ for dt_cpu in $dt_cpus; do
+ if [ ! -f /sys/firmware/devicetree/base/cpus/$dt_cpu/clock-frequency ]; then
+ log_skip "no clock frequency file present"
+ return
+ fi
+ if [ ! -f /sys/firmware/devicetree/base/cpus/$dt_cpu/compatible ]; then
+ log_skip "no compatible file present"
+ return
+ fi
+ filename=/sys/firmware/devicetree/base/cpus/$dt_cpu/clock-frequency
+ bytes=$(od -t u1 -A n $filename)
+ calc_freq $bytes
+ cpu_type=$(cat /sys/firmware/devicetree/base/cpus/$dt_cpu/compatible)
+ set_eff $cpu_type
+ capacity=$((($freq>>20)*$eff/$middle_capacity))
+ expected_capacity_string=$(dmesg | grep "CPU$cpu_num: update cpu_capacity")
+ expected_capacity=${expected_capacity_string##*cpu_capacity}
+ echo "cpu num: $cpu_num capacity $capacity expected capacity $expected_capacity"
+ check "expected capacity for cpu$cpu_num equal to computed capacity" "test $expected_capacity -eq $capacity"
+
+ cpu_num=$((cpu_num+1))
+ done
+}
+
+verify_capacity()
+{
+ if ! [ -d /sys/firmware/devicetree/base/cpus ]; then
+ log_skip "no cpus directory present"
+ return
+ fi
+
+ calc_mid_capacity
+ dt_cpus=$(ls -1 /sys/firmware/devicetree/base/cpus | egrep "cpu@.{1,2}$")
+ verify_cpu_capacity
+ dt_cpus=$(ls -1 /sys/firmware/devicetree/base/cpus | egrep "cpu@.{3,4}$")
+ verify_cpu_capacity
+}
+
+verify_capacity || exit 1
+test_status_show
diff --git a/cputopology/cputopology_04.txt b/cputopology/cputopology_04.txt
new file mode 100644
index 0000000..2995aab
--- /dev/null
+++ b/cputopology/cputopology_04.txt
@@ -0,0 +1,5 @@
+Test capacity calculation (this is based on
+the algorithm in arch/arm/kernel/topology.c),
+make sure that the information in
+/sys/firmware/devicetree/base/cpus corresponds
+to that reported by the kernel log.
--
1.8.3.2
Update the README file with bugs, questions, and contribution
sections and fix the format for readability.
Signed-off-by: Lisa Nguyen <lisa.nguyen(a)linaro.org>
---
Changes in v2:
* Removed references to LAVA
* Rewritten Additional Notes section of README
* Replace the phrase "Linux devices" with hardware to be more generic
README | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 60 insertions(+), 16 deletions(-)
diff --git a/README b/README
index 2eef1c4..b976727 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
-General Info
-============
+Commands
+========
- In order to run the tests, invoke as root:
make check
@@ -12,20 +12,64 @@ General Info
make -C cpufreq check
-- The test specifications can be found at
+
+Test Specifications
+===================
+The test specifications can be found at:
https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/TestSuite/P…
-Other info
-==========
-- PM-QA is one of the tools in the external opensource modules in the external
- path of android. For building on android, the makefile Android.mk is used to
- build the testsuite with a makefile for each subtest.
-- Incase you are extending a subtest, say a new script which will test a
- feature. Add the test number in the Android.mk, in addition to this if its
- using a source file (say .c), add the source file in the Android.mk so that
- it gets built.
-- LAVA scripts are used to trigger the pm-qa tests.
-- Similarly for non-android adding a script and txt (test description) pair is
- needed to extent the suite.
-=======
+
+Bugs
+====
+If you believe that you have encountered a bug, please file a bug report on
+Linaro Bugzilla at https://bugs.linaro.org. Once you log in, click on
+"New" --> "Power Management" --> "PM-QA" as the component. Then fill
+in the form.
+
+Helpful tips for filing a bug report:
+ 1. Provide logs, be verbose as possible
+ 2. Outline steps to reproduce the bug
+ 3. Describe the environment you are running PM-QA on (e.g. Android,
+ OpenEmbedded, Ubuntu, etc.)
+ 4. What hardware you're using
+
+Questions/Comments
+==================
+Please submit questions and comments to the linaro-dev mailing list at
+linaro-dev(a)lists.linaro.org with "PM-QA" as part of the subject.
+
+Contributions
+=============
+If you wish to submit patches to improve PM-QA, please send them to
+the linaro-dev mailing list at linaro-dev(a)lists.linaro.org with
+"PATCH PM-QA" as the subject prefix.
+
+All scripts in PM-QA must be POSIX-compliant and cannot use any
+bashisms. At a minimum, they must run in Android and Ubuntu
+environment and have text files that include their descriptions.
+
+Additional notes on new tests
+=============================
+PM-QA can be extended with more functional tests by following a few
+simple rules.
+
+a. Add the test (usually a shell script) and its associated
+description (in a .txt file with the same name) in the appropriate
+subdirectory
+b. Change the Android.mk makefile in the subdirectory as appropriate.
+You will need to change the 'test_num' variable at a minimum. If
+you're using other source files (say .c), add that to the makefile as
+well.
+c. Create a draft specification for your test that can be added to the
+wiki page[1]
+d. Make sure your shell scripts do not use bash-specific constructs.
+Run them with the #!/bin/sh as the interpreter directive instead of
+#!/bin/bash.
+e. PM-QA can be found in the external opensource modules in the
+external path of android sources hosted at Linaro. It is synced with
+the latest version of PM-QA everytime a new release is made.
+Android.mk makefiles are used to build the test suite - there is one in
+each sub-directory.
+
+[1] https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/TestSuite/P…
--
1.9.1
****************
Team Work Logged
****************
# tyler-baker Progress #
* LAVA-1317 - lava-dispatcher maintenance
* LAVA-1981 - Basic integration of D02 (21.43%)
* Having issues with the networking interface in UEFI. Essentially it works about 1/3 of the time. Stakeholders respun me a new BIOS to try. Still have not been able to get it reflashed.
* LAVA-1511 - Upstream Kernel CI
* LAVA-1524 - ARM KVM boot testing (42.86%)
* Added initial logic to testing branch of lava-ci to parse LAVA test results and create kernelci.org test json. There is a lot of duplication that will need to be factored out. Have a few questions I need answered before I can attempt to push schema to dashboard.
* LAVA-1511 - Upstream Kernel CI
* LAVA-1978 - kselftest improvements (35.71%)
* Patchset cleaned up and submitted to list. Initial feedback was received, will need to tweak the x86 test makefile changes. Waiting for more comments before spinning a new change set.
# stylesen Progress #
* LAVA-1317 - lava-dispatcher maintenance
* LAVA-1414 - LC: Linaro login integration with LAVA (100.0%)
* Code and documentation patch up for review.
# milo Progress #
* LAVA-1511 - Upstream Kernel CI
* LAVA-1556 - [frontend] Implement RSS view for website pages (37.5%)
* Added first implementation of a daily RSS feed for all available builds. More work will be needed if we want that feed to be machine readable.
* Merged RSS enabling code into master, without enabling it by default. More work is needed toward implementing missing views to give better RSS feed.
* LAVA-1511 - Upstream Kernel CI
* LAVA-1811 - Frontend UI improvements/requests (6.25%)
* Moved arch label in build and boot view to be more close to the defconfing value.
* LAVA-1511 - Upstream Kernel CI
* LAVA-1554 - Email notification system (56.25%)
* Added errors/warnings/mismatches summary to the text based email: sent out first tests to collect input.
* Worked on TXT template to add the full detailed logs breakdown for each defconfig.
* Cleaned up email report templates and email creation logic.
* Fixed email report subject with statuses other than fail and pass.
* Reworked how the email report subject line is created and added tests.
# stevan.radakovic Progress #
* LAVA-1536 - LAVA Server
* LAVA-1831 - Add the ability to add/modify/remove meta-data for existing bundles (57.89%)
* Resolve problem with migration timeout. Implement rest of GUI.
* Implement cornercase scenarios.
* LAVA-1429 - Dispatcher Refactoring
* LAVA-1929 - Export a set of variables on the DUT (42.11%)
* Second iteration of code review fixes. Refactor pipeline classes.
# neil.williams(a)linaro.org Progress #
* LAVA-1429 - Dispatcher Refactoring
* LAVA-2014 - Fix looping support for pipeline devices (15.79%)
* LAVA-1429 - Dispatcher Refactoring
* LAVA-1806 - Port VMGroup support as secondary connections (84.21%)
****************
Team In-Progress
****************
# dean.arnold(a)linaro.org Plan #
* LAVA-1966 - Bug-1409
# georgy.redkozubov(a)linaro.org Plan #
* LAVA-1777 - Create lava-test-shell helpers for performance collection
# milo.casagrande(a)linaro.org Plan #
* LAVA-1554 - Email notification system
* LAVA-1920 - Backend improvements
* LAVA-2003 - Study and implement a boot trigger API
# neil.williams(a)linaro.org Plan #
* LAVA-1853 - Ensure VMgroup operations use a clean environment
* LAVA-1987 - Update docs on hacking sessions
* LAVA-1806 - Port VMGroup support as secondary connections
# senthil.kumaran(a)linaro.org Plan #
* LAVA-1976 - 5044
* LAVA-1948 - migratre-user script for lava ldap migration
* LAVA-2006 - 1461
* LAVA-2018 - 1256
# stevan.radakovic(a)linaro.org Plan #
* LAVA-1929 - Export a set of variables on the DUT
# tyler.baker(a)linaro.org Plan #
* LAVA-1982 - Bug Bisection
* LAVA-1792 - Tyler's Mentoring
* LAVA-1643 - 4. Trending Builds Boots and Tests
* LAVA-1524 - ARM KVM boot testing
* LAVA-1981 - Basic integration of D02
* LAVA-2010 - Meetings
== Progress ==
* Tested and documented debian-installer on arm64 hardware (40% CARD-1722)
* Confirmed jessie D-I + hilt-integration kernel installs to HD on D01 (50% DEVPLAT-257)
* Uploaded cross-gcc-14 for jessie (RC bug) (10% DEVPLAT-220)
== Plans ==
* Test cross-gcc in experimental
* Build grub32.efi
* Test linux 4.0 on D01
Wookey
--
Principal hats: Linaro, Debian, Wookware, ARM
http://wookware.org/
== Progress ==
* Spreadtrum CI loop for tshark (40 %)
* Android 5.1 update on nexus 10 (10 %)
* Project ARA (50 %)
== Plans ==
* Project ARA
* CI loop for ZTE member build.
Regards,
Vishal
== Progress ==
* CI bugfixes (lci-build-tools, linaro-cp usage in xen-packages etc) 30%
* update UEFI and run perf test on hikey, found some aarch64 bugs in testcases:
https://www.mail-archive.com/linux-kernel%40vger.kernel.org/msg868497.html
(DEVPLAT-303 30%)
* cleaned up debarch patch as requested by upstream (DEVPLAT-303 20%)
* KVM user support 10%
== Plans ==
* Closeout perf card
* KVM ARM32 booting with UEFI (DEVPLAT-360)
== Issues ==
* LAVA filters *still* fail to send mail to me:
https://bugs.linaro.org/show_bug.cgi?id=1371
Update the README file with bugs, questions, and contribution
sections and fix the format for readability.
Signed-off-by: Lisa Nguyen <lisa.nguyen(a)linaro.org>
---
README | 46 +++++++++++++++++++++++++++++++++++++++-------
1 file changed, 39 insertions(+), 7 deletions(-)
diff --git a/README b/README
index 2eef1c4..5da4485 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
-General Info
-============
+Commands
+========
- In order to run the tests, invoke as root:
make check
@@ -12,20 +12,52 @@ General Info
make -C cpufreq check
-- The test specifications can be found at
+
+Test Specifications
+===================
+The test specifications can be found at:
https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/TestSuite/P…
-Other info
-==========
+
+Bugs
+====
+If you believe that you have encountered a bug, please file a bug report on
+Linaro Bugzilla at https://bugs.linaro.org. Once you log in, click on
+"New" --> "Power Management" --> "PM-QA" as the component. Then fill
+in the form.
+
+Helpful tips for filing a bug report:
+ 1. Provide logs, be verbose as possible
+ 2. Outline steps to reproduce the bug
+ 3. Describe the environment you are running PM-QA on (e.g. Android,
+ OpenEmbedded, Ubuntu, etc.)
+ 4. What Linux device(s) you're using
+
+Questions/Comments
+==================
+Please submit questions and comments to the linaro-dev mailing list at
+linaro-dev(a)lists.linaro.org with "PM-QA" as part of the subject.
+
+Contributions
+=============
+If you wish to submit patches to improve PM-QA, please send them to
+the linaro-dev mailing list at linaro-dev(a)lists.linaro.org with
+"PATCH PM-QA" as the subject prefix.
+
+All scripts in PM-QA must be POSIX-compliant and cannot use any
+bashisms. At a minimum, they must run in Android and Ubuntu
+environment and have text files that include their descriptions.
+
+Additional Notes
+================
- PM-QA is one of the tools in the external opensource modules in the external
path of android. For building on android, the makefile Android.mk is used to
build the testsuite with a makefile for each subtest.
-- Incase you are extending a subtest, say a new script which will test a
+- In case you are extending a subtest, say a new script which will test a
feature. Add the test number in the Android.mk, in addition to this if its
using a source file (say .c), add the source file in the Android.mk so that
it gets built.
- LAVA scripts are used to trigger the pm-qa tests.
- Similarly for non-android adding a script and txt (test description) pair is
needed to extent the suite.
-=======
--
1.7.9.5