mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 08:19:28 +00:00
![Thomas Gleixner](/assets/img/avatar_default.png)
Based on 1 normalized pattern(s): this software is licensed under the terms of the gnu general public license version 2 as published by the free software foundation and may be copied distributed and modified under those terms 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 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 285 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Alexios Zavras <alexios.zavras@intel.com> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.642774971@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
59 lines
1.1 KiB
Bash
Executable file
59 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
# udelay() test script
|
|
#
|
|
# Test is executed by writing and reading to /sys/kernel/debug/udelay_test
|
|
# and exercises a variety of delays to ensure that udelay() is delaying
|
|
# at least as long as requested (as compared to ktime).
|
|
#
|
|
# Copyright (C) 2014 Google, Inc.
|
|
#
|
|
|
|
MODULE_NAME=udelay_test
|
|
UDELAY_PATH=/sys/kernel/debug/udelay_test
|
|
|
|
setup()
|
|
{
|
|
/sbin/modprobe -q $MODULE_NAME
|
|
tmp_file=`mktemp`
|
|
}
|
|
|
|
test_one()
|
|
{
|
|
delay=$1
|
|
echo $delay > $UDELAY_PATH
|
|
tee -a $tmp_file < $UDELAY_PATH
|
|
}
|
|
|
|
cleanup()
|
|
{
|
|
if [ -f $tmp_file ]; then
|
|
rm $tmp_file
|
|
fi
|
|
/sbin/modprobe -q -r $MODULE_NAME
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
setup
|
|
|
|
# Delay for a variety of times.
|
|
# 1..200, 200..500 (by 10), 500..2000 (by 100)
|
|
for (( delay = 1; delay < 200; delay += 1 )); do
|
|
test_one $delay
|
|
done
|
|
for (( delay = 200; delay < 500; delay += 10 )); do
|
|
test_one $delay
|
|
done
|
|
for (( delay = 500; delay <= 2000; delay += 100 )); do
|
|
test_one $delay
|
|
done
|
|
|
|
# Search for failures
|
|
count=`grep -c FAIL $tmp_file`
|
|
if [ $? -eq "0" ]; then
|
|
echo "ERROR: $count delays failed to delay long enough"
|
|
retcode=1
|
|
fi
|
|
|
|
exit $retcode
|