aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStéphane Lesimple <speed47_github@speed47.net>2018-01-18 21:16:14 +0100
committerStéphane Lesimple <speed47_github@speed47.net>2018-01-20 12:24:23 +0100
commitde6590cd09f74be30e33766be5f63e50730fbef4 (patch)
tree3440d77f434ffaced3e5d74011ae1fa97a329969
parent56d4f82484d82639ee60a91a81b526baedb22236 (diff)
downloadspectre-meltdown-checker-de6590cd09f74be30e33766be5f63e50730fbef4.tar.lz
spectre-meltdown-checker-de6590cd09f74be30e33766be5f63e50730fbef4.tar.xz
spectre-meltdown-checker-de6590cd09f74be30e33766be5f63e50730fbef4.zip
cache is_cpu_vulnerable result for performance
-rwxr-xr-xspectre-meltdown-checker.sh24
1 files changed, 18 insertions, 6 deletions
diff --git a/spectre-meltdown-checker.sh b/spectre-meltdown-checker.sh
index 1d7c72b..30828cc 100755
--- a/spectre-meltdown-checker.sh
+++ b/spectre-meltdown-checker.sh
@@ -170,6 +170,16 @@ _debug()
_echo 3 "\033[34m(debug) $@\033[0m"
}
+is_cpu_vulnerable_cached=0
+_is_cpu_vulnerable_cached()
+{
+ [ "$1" = 1 ] && return $variant1
+ [ "$1" = 2 ] && return $variant2
+ [ "$1" = 3 ] && return $variant3
+ echo "$0: error: invalid variant '$1' passed to is_cpu_vulnerable()" >&2
+ exit 255
+}
+
is_cpu_vulnerable()
{
# param: 1, 2 or 3 (variant)
@@ -177,6 +187,11 @@ is_cpu_vulnerable()
# (note that in shell, a return of 0 is success)
# by default, everything is vulnerable, we work in a "whitelist" logic here.
# usage: is_cpu_vulnerable 2 && do something if vulnerable
+ if [ "$is_cpu_vulnerable_cached" = 1 ]; then
+ _is_cpu_vulnerable_cached "$1"
+ return $?
+ fi
+
variant1=''
variant2=''
variant3=''
@@ -260,12 +275,9 @@ is_cpu_vulnerable()
[ "$variant2" = "immune" ] && variant2=1 || variant2=0
[ "$variant3" = "immune" ] && variant3=1 || variant3=0
_debug "is_cpu_vulnerable: final results are <$variant1> <$variant2> <$variant3>"
-
- [ "$1" = 1 ] && return $variant1
- [ "$1" = 2 ] && return $variant2
- [ "$1" = 3 ] && return $variant3
- echo "$0: error: invalid variant '$1' passed to is_cpu_vulnerable()" >&2
- exit 255
+ is_cpu_vulnerable_cached=1
+ _is_cpu_vulnerable_cached "$1"
+ return $?
}
show_header()