When dir is ignored, and 0 is passed instead, each flush request will
appear as READ request, which is not supported by some block device
drivers.
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This is a suboptimal solution to CAS on top of MD RAID1 device. If using
only submit_bio API RAID1 would process all IOs in single thread.
Plugging bypasses this thread and processess IOs in blk_finish_plug
caller context improving performance drastically.
Testing showed no negative impact to other usecases and it's a thing
that Linux does in AIO, so it's vetted and proven to work.
Signed-off-by: Jan Musial <jan.musial@intel.com>
It's defined on every single supported kernel, so there is actually no need
for this define at all.
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This counter is not accurate (missing required memory barrier
to avoid unwanted behavior due to processor optimizations)
and performance gain is not clear - generally global
atomic variables are something we would like to avoid
going forward.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
Returning non-const char* doesn't have any benefits since
the only caller casts the output pointer to const char *.
This change fixes compilation on 5.3 kernel.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
While unloading cas_cache module, volume types were deinitialized, although core
pool still wasn't empty. Now this deinitialization can be done after removing
cores from core pool, and before context is freed.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
Functions and macros dependent on different kernel versions are now generated
before compilation basing on current kernel capabilities instead of hardcoding
them for specific kernels.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
This needs to be done in caller application context. As part of asynchronous
management API rework, volume_open callback was moved to kernel worker thread
context. To work around this, atomic parameters are now read before cache
attach/load/probe and provided to bottom volume via volume params.
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>