Provided by: ndctl_74-1_amd64 bug

NAME

       cxl-create-region - Assemble a CXL region by setting up attributes of its constituent CXL
       memdevs.

SYNOPSIS

       cxl create-region [<options>]

DESCRIPTION

       A CXL region is composed of one or more slices of CXL memdevs, with configurable
       interleave settings - both the number of interleave ways, and the interleave granularity.

       For create-region, a size can optionally be specified, but if not, the maximum possible
       size for each memdev will be used up to the available decode capacity in the system for
       the given memory type. For persistent regions a UUID can optionally be specified, but if
       not, one will be generated.

       If the region-creation operation is successful, a region object will be emitted on stdout
       in JSON format (see examples). If the specified arguments cannot be satisfied with a legal
       configuration, then an appropriate error will be emitted on stderr.

EXAMPLE

           #cxl create - region - m - d decoder0 .1 - w 2 - g 1024 mem0 mem1
           {
             "region":"region0",
             "resource":"0xc90000000",
             "size":"512.00 MiB (536.87 MB)",
             "interleave_ways":2,
             "interleave_granularity":1024,
             "mappings":[
               {
                 "position":1,
                 "decoder":"decoder4.0"
               },
               {
                 "position":0,
                 "decoder":"decoder3.0"
               }
             ]
           }
           created 1 region

OPTIONS

       <target(s)>
           The CXL targets that should be used to form the region. The number of target arguments
           must match the --ways option (if provided). The targets are memdev names such as mem0,
           mem1 etc.

       -b, --bus=
           Restrict the operation to the specified bus.

       -m, --memdevs
           Indicate that the non-option arguments for target(s) refer to memdev names. Currently
           this is the only option supported, and must be specified.

       -s, --size=
           Specify the total size for the new region. This is optional, and by default, the
           maximum possible size will be used. The maximum possible size is gated by both the
           contiguous free HPA space remaining in the root decoder, and the available DPA space
           in the component memdevs.

       -t, --type=
           Specify the region type - pmem or ram. Defaults to pmem.

       -U, --uuid=
           Specify a UUID for the new region. This shouldn’t usually need to be specified, as one
           will be generated by default.

       -w, --ways=
           The number of interleave ways for the new region’s interleave. This should be equal to
           the number of memdevs specified in --memdevs, if --memdevs is being supplied. If
           --ways is not specified, it will be determined based on the number of memdev targets
           provided.

       -g, --granularity=
           The interleave granularity for the new region. Must match the selected root decoder’s
           (if provided) granularity. If the root decoder is interleaved across more than one
           host-bridge then this value must match that granularity. Otherwise, for
           non-interleaved decode windows, any granularity can be specified as long as all
           devices support that setting.

       -d, --decoder=
           The root decoder that the region should be created under. If not supplied, the first
           cross-host bridge (if available), decoder that supports the largest interleave will be
           chosen.

       -u, --human
           By default the command will output machine-friendly raw-integer data. Instead, with
           this flag, numbers representing storage size will be formatted as human readable
           strings with units, other fields are converted to hexadecimal strings.

       --debug
           Turn on additional debug messages including library debug.

COPYRIGHT

       Copyright © 2016 - 2022, Intel Corporation. License GPLv2: GNU GPL version 2
       http://gnu.org/licenses/gpl.html. This is free software: you are free to change and
       redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO

       cxl-list(1),