Message ID | 20240305164623.379149-21-andrew.jones@linux.dev (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: EFI improvements | expand |
On 3/6/24 00:46, Andrew Jones wrote: > Arm's MAX_SMP probing must have stopped working at some point due to > QEMU's error message changing, but nobody noticed. Also, the probing > should work for at least x86 now too, so the comment isn't correct > anymore either. We could probably just delete this probe thing, but > in case it could still serve some purpose we can also keep it, but > updated for later QEMU, and only enabled when a new run_tests.sh > command line option is provided. > > Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> > Signed-off-by: Andrew Jones <andrew.jones@linux.dev> Reviewed-by: Shaoqin Huang <shahuang@redhat.com> > --- > run_tests.sh | 5 ++++- > scripts/runtime.bash | 19 ++++++++++--------- > 2 files changed, 14 insertions(+), 10 deletions(-) > > diff --git a/run_tests.sh b/run_tests.sh > index abb0ab773362..bb3024ff95b1 100755 > --- a/run_tests.sh > +++ b/run_tests.sh > @@ -44,7 +44,7 @@ fi > > only_tests="" > list_tests="" > -args=$(getopt -u -o ag:htj:vl -l all,group:,help,tap13,parallel:,verbose,list -- $*) > +args=$(getopt -u -o ag:htj:vl -l all,group:,help,tap13,parallel:,verbose,list,probe-maxsmp -- $*) > [ $? -ne 0 ] && exit 2; > set -- $args; > while [ $# -gt 0 ]; do > @@ -78,6 +78,9 @@ while [ $# -gt 0 ]; do > -l | --list) > list_tests="yes" > ;; > + --probe-maxsmp) > + probe_maxsmp > + ;; > --) > ;; > *) > diff --git a/scripts/runtime.bash b/scripts/runtime.bash > index c73fb0240d12..f2e43bb1ed60 100644 > --- a/scripts/runtime.bash > +++ b/scripts/runtime.bash > @@ -200,12 +200,13 @@ function run() > # > # Probe for MAX_SMP, in case it's less than the number of host cpus. > # > -# This probing currently only works for ARM, as x86 bails on another > -# error first, so this check is only run for ARM and ARM64. The > -# parameter expansion takes the last number from the QEMU error > -# message, which gives the allowable MAX_SMP. > -if [[ $ARCH == 'arm' || $ARCH == 'arm64' ]] && > - smp=$($RUNTIME_arch_run _NO_FILE_4Uhere_ -smp $MAX_SMP |& grep 'exceeds max CPUs'); then > - smp=${smp##*(} > - MAX_SMP=${smp:0:-1} > -fi > +function probe_maxsmp() > +{ > + local smp > + > + if smp=$($RUNTIME_arch_run _NO_FILE_4Uhere_ -smp $MAX_SMP |& grep 'Invalid SMP CPUs'); then > + smp=${smp##* } > + echo "Restricting MAX_SMP from ($MAX_SMP) to the max supported ($smp)" >&2 > + MAX_SMP=$smp > + fi > +}
diff --git a/run_tests.sh b/run_tests.sh index abb0ab773362..bb3024ff95b1 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -44,7 +44,7 @@ fi only_tests="" list_tests="" -args=$(getopt -u -o ag:htj:vl -l all,group:,help,tap13,parallel:,verbose,list -- $*) +args=$(getopt -u -o ag:htj:vl -l all,group:,help,tap13,parallel:,verbose,list,probe-maxsmp -- $*) [ $? -ne 0 ] && exit 2; set -- $args; while [ $# -gt 0 ]; do @@ -78,6 +78,9 @@ while [ $# -gt 0 ]; do -l | --list) list_tests="yes" ;; + --probe-maxsmp) + probe_maxsmp + ;; --) ;; *) diff --git a/scripts/runtime.bash b/scripts/runtime.bash index c73fb0240d12..f2e43bb1ed60 100644 --- a/scripts/runtime.bash +++ b/scripts/runtime.bash @@ -200,12 +200,13 @@ function run() # # Probe for MAX_SMP, in case it's less than the number of host cpus. # -# This probing currently only works for ARM, as x86 bails on another -# error first, so this check is only run for ARM and ARM64. The -# parameter expansion takes the last number from the QEMU error -# message, which gives the allowable MAX_SMP. -if [[ $ARCH == 'arm' || $ARCH == 'arm64' ]] && - smp=$($RUNTIME_arch_run _NO_FILE_4Uhere_ -smp $MAX_SMP |& grep 'exceeds max CPUs'); then - smp=${smp##*(} - MAX_SMP=${smp:0:-1} -fi +function probe_maxsmp() +{ + local smp + + if smp=$($RUNTIME_arch_run _NO_FILE_4Uhere_ -smp $MAX_SMP |& grep 'Invalid SMP CPUs'); then + smp=${smp##* } + echo "Restricting MAX_SMP from ($MAX_SMP) to the max supported ($smp)" >&2 + MAX_SMP=$smp + fi +}