Provided by: intel-cmt-cat_1.2.0-1_amd64 bug

NAME

       rtdset - Task CPU affinity and Intel(R) Resource Director Technology control tool

SYNOPSIS

       rdtset  -t  <feature=value;...cpu=cpulist>...  -c  <cpulist> [-I] (-p <pidlist> | [-k] cmd
       [<args>...])
       rdtset -r <cpulist> -t <feature=value;...cpu=cpulist>... -c <cpulist> [-I] (-p <pidlist> |
       [-k] cmd [<args>...])
       rdtset -r <cpulist> -c <cpulist> (-p <pidlist> | [-k] cmd [<args>...])
       rdtset -r <cpulist> -t <feature=value;...cpu=cpulist>... [-I] -p <pidlist>
       rdtset -t <feature=value> -I [-c <cpulist>] (-p <pidlist> | [-k] cmd [<args>...])

DESCRIPTION

       For more details on Intel(R) Resource Director Technology see
       http://www.intel.com/content/www/us/en/architecture-and-technology/resource-director-
       technology.html
       or https://github.com/01org/intel-cmt-cat/wiki

       The rdtset tool provides support to set up the CAT (Cache Allocation Technology)  and  MBA
       (Memory  Bandwidth  Allocation)  capabilities for a task and set its CPU affinity. Current
       Intel(R) RDT allocation operations of the utility are based on controlling  MSR  registers
       (via  libpqos  library).  Class of service 0 (CLOS0) is assumed as default one. In command
       mode, rdtset forks and one process executes the command. Another  process  waits  for  the
       task  to terminate and restores default allocation state by assigning cpu's back to CLOS0.
       This behavior is not in place in PID mode.

OPTIONS

       rdtset options are as follow:

       -h, --help
              Show help

       -v, --verbose
              Verbose mode

       -I, --iface-os
              Set the  library  to  use  the  kernel  implementation.  If  not  set  the  default
              implementation is to program the MSR's directly.

       -t --rdt feature=value;...cpu=cpulist
              Specify  Intel(R) RDT configuration, single class configuration per -t, multiple -t
              options allowed.
              Accepted values for features:
              2, l2 for level 2 cache
              3, l3 for level 3 cache
              m, mba for MBA

              For example:

              -t 'l3=0xf;cpu=1'
              CPU 1 uses four L3 cache-ways (mask 0xf)

              -t 'l3=0xf;cpu=2' -t 'l3=0xf0;cpu=3,4,5'
              CPU 2 uses four L3 cache-ways (mask 0xf), CPUs 3-5 share four L3  cache-ways  (mask
              0xf0), L3 cache-ways used by CPU 2 and 3-4 are non-overlapping

              -t 'l3=0xf;cpu=0-2' -t 'l3=0xf0;cpu=3,4,5'
              CPUs  0-2  share  four  L3 cache-ways (mask 0xf), CPUs 3-5 share four L3 cache-ways
              (mask 0xf0), L3 cache-ways used by CPUs 0-2 and 3-5 are non-overlapping

              -t 'l3=0xf,0xf0;cpu=1'
              On CDP enabled system, CPU 1 uses four cache-ways for  code  (mask  0xf)  and  four
              cache-ways for data (mask 0xf0), data and code cache-ways are non-overlapping

              -t 'mba=70;cpu=0-2'
              CPUs 0-2 can utilize up to 70% of available memory bandwidth

              -t 'mba=50;l3=0xf;cpu=1'
              CPU  1  uses  four  L3 (mask 0xf) cache-ways and can utilize up to 50% of available
              memory bandwidth

              Example PID type allocation configuration (requires -I option):

              -t 'l3=0xf'
              Allocate four L3 (mask 0xf) cache-ways to specified PIDs (-p option) or command

              -t 'l3=0xf;cpu=1;l3=0x1'
              CPU 1 uses four L3 (mask 0xf) cache-ways
              Specified PIDs (-p option) or command uses one L3 (mask 0x1) cache-way

       -c <cpulist>, --cpu <cpulist>
              Specify CPU affinity configuration, a numerical list of processors. The numbers are
              separated by commas and may include ranges. For example: 1-3,4,5.

       -p <pidlist>, --pid <pidlist>
              Operate on existing PIDs

       -r <cpulist>, --reset <cpulist>
              Reset allocation for CPUs (assign COS#0 to listed CPUs)
              For example:

              -r 0-5
              Reset allocation for CPUs 0-5

              -r 0-5 -t 'l3=0xf0;cpu=0-5' -c 0-5 -p $BASHPID
              Reconfigure allocation for CPUs 0-5
              In order to reconfigure allocation, it is needed to reset current configuration

       -k, --sudokeep
              Do not drop sudo elevated privileges

NOTES

       CAT  and  MBA  are configured using Model Specific Registers (MSRs) to set up the class of
       service masks and manage the association of  the  cores/logical  threads  to  a  class  of
       service.   The  rdtset software executes in user space, and access to the MSRs is obtained
       through a standard Linux*/FreeBSD*  interface.   Under  Linux,  the  virtual  file  system
       structure  /dev/cpu/CPUNUM/msr  provides  an  interface  to read and write the MSRs, under
       FreeBSD it is /dev/cpuctlCPUNUM.  The msr/cpuctl file interface is protected and  requires
       root  privileges.  The  msr/cpuctl  driver  might  not  be auto-loaded and on some modular
       kernels the driver may need to be loaded manually:

       Under Linux:
       sudo modprobe msr

       Under FreeBSD:
       sudo kldload cpuctl

       Interface enforcement:
       If you require system wide interface enforcement you can do so by setting the  "RDT_IFACE"
       environment variable.

SEE ALSO

       msr(4)

AUTHOR

       rdtset  was written by Wojciech Andralojc <wojciechx.andralojc@intel.com>, Tomasz Kantecki
       <tomasz.kantecki@intel.com>,  Michal  Aleksinski  <michalx.aleksinski@intel.com>,   Marcel
       Cornu <marcel.d.cornu@intel.com>

       This  is  free  software; see the source for copying conditions. There is NO warranty; not
       even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

                                        February 21, 2017                               RDTSET(8)