Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
106
sources/poky/scripts/oe-time-dd-test.sh
Executable file
106
sources/poky/scripts/oe-time-dd-test.sh
Executable file
@@ -0,0 +1,106 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright OpenEmbedded Contributors
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# oe-time-dd-test records how much time it takes to
|
||||
# write <count> number of kilobytes to the filesystem.
|
||||
# It also records the number of processes that are in
|
||||
# running (R), uninterruptible sleep (D) and interruptible
|
||||
# sleep (S) state from the output of "top" command.
|
||||
# The purporse of this script is to find which part of
|
||||
# the build system puts stress on the filesystem io and
|
||||
# log all the processes.
|
||||
usage() {
|
||||
echo "$0 is used to detect i/o latency and runs commands to display host information."
|
||||
echo "The following commands are run in order:"
|
||||
echo "1) top -c -b -n1 -w 512"
|
||||
echo "2) iostat -y -z -x 5 1"
|
||||
echo "3) tail -30 tmp*/log/cooker/*/console-latest.log to gather cooker log."
|
||||
echo " "
|
||||
echo "Options:"
|
||||
echo "-c | --count <amount> dd (transfer) <amount> KiB of data within specified timeout to detect latency."
|
||||
echo " Must enable -t option."
|
||||
echo "-t | --timeout <time> timeout in seconds for the <count> amount of data to be transferred."
|
||||
echo "-l | --log-only run the commands without performing the data transfer."
|
||||
echo "-h | --help show help"
|
||||
|
||||
}
|
||||
|
||||
run_cmds() {
|
||||
echo "start: top output"
|
||||
top -c -b -n1 -w 512
|
||||
echo "end: top output"
|
||||
echo "start: iostat"
|
||||
iostat -y -z -x 5 1
|
||||
echo "end: iostat"
|
||||
echo "start: cooker log"
|
||||
tail -30 tmp*/log/cooker/*/console-latest.log
|
||||
echo "end: cooker log"
|
||||
}
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
re_c='^[0-9]+$'
|
||||
#re_t='^[0-9]+([.][0-9]+)?$'
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
key="$1"
|
||||
|
||||
case $key in
|
||||
-c|--count)
|
||||
COUNT=$2
|
||||
shift
|
||||
shift
|
||||
if ! [[ $COUNT =~ $re_c ]] || [[ $COUNT -le 0 ]] ; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
-t|--timeout)
|
||||
TIMEOUT=$2
|
||||
shift
|
||||
shift
|
||||
if ! [[ $TIMEOUT =~ $re_c ]] || [[ $TIMEOUT -le 0 ]] ; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
-l|--log-only)
|
||||
LOG_ONLY="true"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
-h|--help)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
if [ "$LOG_ONLY" = "true" ] ; then
|
||||
uptime
|
||||
run_cmds
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z ${TIMEOUT+x} ] || [ -z ${COUNT+x} ] ; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
uptime
|
||||
echo "Timeout used: ${TIMEOUT}"
|
||||
timeout ${TIMEOUT} dd if=/dev/zero of=oe-time-dd-test.dat bs=1024 count=${COUNT} conv=fsync
|
||||
if [ $? -ne 0 ]; then
|
||||
run_cmds
|
||||
fi
|
||||
Reference in New Issue
Block a user