+94
−2
+1
−0
+4
−7
Loading
Implement cleaner that is used in WriteBack mode. Cleaner is a background agent that does synchronization of data between cache and its cores. Cleaner usually runs every ~20 seconds to perform cleaning. The synchronization is a simmilar operation to OCF management flushes. We need cleaner for WriteBack because only WriteBack mode produces dirty data that cleaner needs to deal with. Cleaner requires adopting trylock() because in current version cleaner uses management lock when performs cleaning, which may lead to deadlocks if cleaner runs on the same thread as management operations. WriteBack mode is fully functional after this change, but persistent metadata support is required to use it for production. Cleaner will run on management thread for now. We plan to implement functionality of chosing a CPU core where cleaner should run. Cleaning policy is not configurable yet. The default is ALRU with 20 sec interval. Change-Id: I35aa7e00c44e0d7a77e64e60df1f66f20be03f55 Signed-off-by:Vitaliy Mysak <vitaliy.mysak@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/448537 Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by:
Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by:
Jim Harris <james.r.harris@intel.com>