On Mon, 2023-12-04 at 10:05 -0800, Ira Weiny wrote:
> 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.
> 
Correct, the set -e will cause the script to abort with an error exit
code whenever a command fails.

I do wonder if we need this new test - with Dave's patch here[1],
destroy-region and disable-region both use the same helper that
performs the libdaxctl checks.

cxl-create-region.sh already has flows that create a region and then
destroy it. Those should now cover this case as well yeah?

[1]: 
https://lore.kernel.org/all/170112921107.2687457.2741231995154639197.stgit@djiang5-mobl3/

Reply via email to