diff options
author | Stéphane Lesimple <speed47_github@speed47.net> | 2018-01-18 21:16:14 +0100 |
---|---|---|
committer | Stéphane Lesimple <speed47_github@speed47.net> | 2018-01-20 12:24:23 +0100 |
commit | de6590cd09f74be30e33766be5f63e50730fbef4 (patch) | |
tree | 3440d77f434ffaced3e5d74011ae1fa97a329969 | |
parent | 56d4f82484d82639ee60a91a81b526baedb22236 (diff) | |
download | spectre-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-x | spectre-meltdown-checker.sh | 24 |
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() |