resctrl_tests - resctrl file system test suit

Authors:
	Fenghua Yu <fenghua.yu@intel.com>
	Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>,

resctrl_tests tests various resctrl functionalities and interfaces including
both software and hardware.

Currently it supports Memory Bandwidth Monitoring test and Memory Bandwidth
Allocation test on Intel RDT hardware. More tests will be added in the future.
And the test suit can be extended to cover AMD QoS and ARM MPAM hardware
as well.

BUILD
-----

Run "make" to build executable file "resctrl_tests".

RUN
---

To use resctrl_tests, root or sudoer privileges are required. This is because
the test needs to mount resctrl file system and change contents in the file
system.

Executing the test without any parameter will run all supported tests:

	sudo ./resctrl_tests

OVERVIEW OF EXECUTION
---------------------

A test case has four stages:

  - setup: mount resctrl file system, create group, setup schemata, move test
    process pids to tasks, start benchmark.
  - execute: let benchmark run
  - verify: get resctrl data and verify the data with another source, e.g.
    perf event.
  - teardown: umount resctrl and clear temporary files.

ARGUMENTS
---------

Parameter '-h' shows usage information.

usage: resctrl_tests [-h] [-b "benchmark_cmd [options]"] [-t test list] [-n no_of_bits]
        -b benchmark_cmd [options]: run specified benchmark for MBM, MBA and CMT default benchmark is builtin fill_buf
        -t test list: run tests specified in the test list, e.g. -t mbm,mba,cmt,cat
        -n no_of_bits: run cache tests using specified no of bits in cache bit mask
        -p cpu_no: specify CPU number to run the test. 1 is default
        -h: help
