cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

udelay_test.sh (1124B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0-only
      3
      4# udelay() test script
      5#
      6# Test is executed by writing and reading to /sys/kernel/debug/udelay_test
      7# and exercises a variety of delays to ensure that udelay() is delaying
      8# at least as long as requested (as compared to ktime).
      9#
     10# Copyright (C) 2014 Google, Inc.
     11#
     12
     13MODULE_NAME=udelay_test
     14UDELAY_PATH=/sys/kernel/debug/udelay_test
     15
     16setup()
     17{
     18	/sbin/modprobe -q $MODULE_NAME
     19	tmp_file=`mktemp`
     20}
     21
     22test_one()
     23{
     24	delay=$1
     25	echo $delay > $UDELAY_PATH
     26	tee -a $tmp_file < $UDELAY_PATH
     27}
     28
     29cleanup()
     30{
     31	if [ -f $tmp_file ]; then
     32		rm $tmp_file
     33	fi
     34	/sbin/modprobe -q -r $MODULE_NAME
     35}
     36
     37trap cleanup EXIT
     38setup
     39
     40# Delay for a variety of times.
     41# 1..200, 200..500 (by 10), 500..2000 (by 100)
     42for (( delay = 1; delay < 200; delay += 1 )); do
     43	test_one $delay
     44done
     45for (( delay = 200; delay < 500; delay += 10 )); do
     46	test_one $delay
     47done
     48for (( delay = 500; delay <= 2000; delay += 100 )); do
     49	test_one $delay
     50done
     51
     52# Search for failures
     53count=`grep -c FAIL $tmp_file`
     54if [ $? -eq "0" ]; then
     55	echo "ERROR: $count delays failed to delay long enough"
     56	retcode=1
     57fi
     58
     59exit $retcode