Alison Schofield wrote: > On Thu, Nov 30, 2023 at 08:06:13PM -0800, Ira Weiny wrote:
[snip] > > + > > +check_destroy_devdax() > > +{ > > + mem=$1 > > + decoder=$2 > > + > > + region=$($CXL create-region -d "$decoder" -m "$mem" | jq -r ".region") > > + if [ "$region" == "null" ]; then > > + err "$LINENO" > > + fi > > + $CXL enable-region "$region" > > + > > + dax=$($CXL list -X -r "$region" | jq -r ".[].daxregion.devices" | jq -r > > '.[].chardev') > > + > > + $DAXCTL reconfigure-device -m devdax "$dax" > > + > > + $CXL disable-region $region > > + $CXL destroy-region $region > > +} > > + > > +# Find a memory device to create regions on to test the destroy > > +readarray -t mems < <("$CXL" list -b cxl_test -M | jq -r '.[].memdev') > > +for mem in ${mems[@]}; do > > + ramsize=$($CXL list -m $mem | jq -r '.[].ram_size') > > + if [ "$ramsize" == "null" ]; then > > + continue > > + fi > > + decoder=$($CXL list -b cxl_test -D -d root -m "$mem" | > > + jq -r ".[] | > > + select(.volatile_capable == true) | > > + select(.nr_targets == 1) | > > + select(.size >= ${ramsize}) | > > + .decoder") > > + if [[ $decoder ]]; then > > + check_destroy_ram $mem $decoder > > + check_destroy_devdax $mem $decoder > > + break > > + fi > > +done > > Does this need to check results of the region disable & destroy? > > Did the regression this is after leave a trace in the dmesg log, > so checking that is all that's needed? > The regression causes check_destroy_devdax() $CXL disable-region $region to fail. That command failure will exit with an error which causes the test script to exit with that error as well. At least that is what happened when I used this to test the fix. I'll defer to Vishal if there is a more explicit or better way to check for that cxl-cli command to fail. Ira