Since there is no kernel-kernel api available to communicate
with nvme driver it is more convenient to use some nvme-dedicated
software (e.g. nvme-cli) to manage nvme devices.
It is even not possible to format nvme device with CAS using current
implementation on newest kernels.
Signed-off-by: Michal Rakowski <michal.rakowski@intel.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
Implement new package which primary goal is to collect and validate
performance metrics in managable way then dump them in JSON form for
further processing/storage.
Example usage:
container = PerfContainer()
container.insert_config_param("20.03.0000", ConfigParameter.CAS_VERSION)
container.insert_cache_metric(20000000, IOMetric.read_IOPS)
with open("perf.json", "w") as f:
json.dump(container.to_serializable_dict(), f)
Signed-off-by: Jan Musial <jan.musial@intel.com>
Add test for checking for logs of requests insyslog from OpenCAS
when SCSI_DEBUG module is base-level core device in multilevel cache.
Signed-off-by: Slawomir Jankowski <slawomir.jankowski@intel.com>
Add test for checking for logs of requests insyslog from OpenCAS
when SCSI_DEBUG module is cache device.
Signed-off-by: Slawomir Jankowski <slawomir.jankowski@intel.com>
Add test for checking for logs of requests in syslog from OpenCAS
when SCSI_DEBUG module is core device.
Signed-off-by: Slawomir Jankowski <slawomir.jankowski@intel.com>
To avoid logging the same message each time _cache_mngt_create_exported_object()
is called, print error message within it.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
To avoid logging the same message each time block_dev_activate_exported_object()
is called, print error message within it.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
In case of error `blk_mq_init_queue()` does not return NULL, but
`ERR_PTR(error_code)` instead.
`IS_ERR_OR_NULL()` should be used to check if `blk_mq_init_queue()` actually
failed.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
Make *run_ioctl_interruptible* a wrapper for new function *run_ioctl_interruptible_retry_option*.
Make new function *run_ioctl_interruptible_retry* - a wrapper for *run_ioctl_interruptible_retry_option*.
*run_ioctl_interruptible_retry_option* is old *run_ioctl_interruptible*
function with one more parameter to decide if call *run_ioctl* or *run_ioctl_retry*.
Signed-off-by: Slawomir Jankowski <slawomir.jankowski@intel.com>
Make *run_ioctl* a simple wrapper for *ioctl* function.
*run_ioctl_retry* is old *run_ioctl* function.
Signed-off-by: Slawomir Jankowski <slawomir.jankowski@intel.com>