Lines Matching defs:cache
88 free(vbdev->cache.name);
93 /* Get existing cache base
101 if (&vbdev->cache == base || !vbdev->cache.attached) {
104 if (!strcmp(vbdev->cache.name, base->name)) {
105 return &vbdev->cache;
115 if (vbdev->cache.attached && vbdev->ocf_cache) {
124 if (vbdev->cache.attached && vbdev->ocf_cache) {
130 /* Get existing OCF cache instance
141 if (strcmp(cmp->cache.name, vbdev->cache.name)) {
212 /* Try to lock cache, then remove core */
214 remove_core_cache_lock_cmpl(ocf_cache_t cache, void *priv, int error)
219 SPDK_ERRLOG("Error %d, can not lock cache instance %s\n",
242 remove_base_bdev(&vbdev->cache);
246 /* Detach cache base */
252 /* If some other vbdev references this cache bdev,
254 if (get_other_cache_base(&vbdev->cache)) {
255 vbdev->cache.attached = false;
262 stop_vbdev_cmpl(ocf_cache_t cache, void *priv, int error)
267 ocf_mngt_cache_unlock(cache);
272 /* Try to lock cache, then stop it */
274 stop_vbdev_cache_lock_cmpl(ocf_cache_t cache, void *priv, int error)
279 SPDK_ERRLOG("Error %d, can not lock cache instance %s\n",
288 /* Stop OCF cache object
299 SPDK_NOTICELOG("Not stopping cache instance '%s'"
301 vbdev->cache.name);
310 flush_vbdev_cmpl(ocf_cache_t cache, void *priv, int error)
314 ocf_mngt_cache_unlock(cache);
319 flush_vbdev_cache_lock_cmpl(ocf_cache_t cache, void *priv, int error)
324 SPDK_ERRLOG("Error %d, can not lock cache instance %s\n",
386 /* Clean remove case - remove core and then cache, this order
396 if (vbdev->cache.attached) {
402 /* Dirty shutdown/hot remove case - remove cache and then core, this order
407 if (vbdev->cache.attached) {
430 /* Prevent before detach cache/core during register path of
452 /* Stop OCF cache and unregister SPDK bdev */
470 /* Remove cores permanently and then stop OCF cache and unregister SPDK bdev */
519 if (vbdev->cache.name && strcmp(vbdev->cache.name, name) == 0) {
520 return &vbdev->cache;
728 spdk_json_write_named_string(w, "cache_device", vbdev->cache.name);
736 vbdev->cfg.cache.metadata_volatile);
756 spdk_json_write_named_string(w, "cache_bdev_name", vbdev->cache.name);
826 /* Called on cache vbdev creation at every thread
843 qctx->cache_ch = spdk_bdev_get_io_channel(vbdev->cache.desc);
969 add_core_cmpl(ocf_cache_t cache, ocf_core_t core, void *priv, int error)
973 ocf_mngt_cache_unlock(cache);
976 SPDK_ERRLOG("Error %d, failed to add core device to cache instance %s,"
987 /* Try to lock cache, then add core */
989 add_core_cache_lock_cmpl(ocf_cache_t cache, void *priv, int error)
994 SPDK_ERRLOG("Error %d, can not lock cache instance %s,"
1001 /* Add core for existing OCF cache instance */
1009 start_cache_cmpl(ocf_cache_t cache, void *priv, int error)
1015 ocf_mngt_cache_unlock(cache);
1018 SPDK_ERRLOG("Error %d during start cache %s, starting rollback\n",
1022 volume_size = vbdev->cache.bdev->blockcnt * vbdev->cache.bdev->blocklen;
1023 mem_needed = ocf_mngt_get_ram_needed(cache, volume_size);
1025 SPDK_NOTICELOG("Try to increase hugepage memory size or cache line size. "
1028 "cache: %"PRIu64" bytes\n",
1029 volume_size, vbdev->cfg.cache.cache_line_size, mem_needed);
1063 /* Start OCF cache, attach caching device */
1068 uint32_t cache_block_size = vbdev->cache.bdev->blocklen;
1086 SPDK_NOTICELOG("OCF bdev %s connects to existing cache device %s\n",
1087 vbdev->name, vbdev->cache.name);
1104 rc = ocf_mngt_cache_start(vbdev_ocf_ctx, &vbdev->ocf_cache, &vbdev->cfg.cache, NULL);
1106 SPDK_ERRLOG("Could not start cache %s: %d\n", vbdev->name, rc);
1136 /* Start cache instance and register OCF bdev */
1142 if (!(vbdev->core.attached && vbdev->cache.attached) || vbdev->state.started) {
1155 * for core and cache devices */
1167 ocf_mngt_cache_config_set_default(&cfg->cache);
1170 ret = snprintf(cfg->cache.name, sizeof(cfg->cache.name), "%s", vbdev->name);
1171 if (ret < 0 || (size_t) ret >= sizeof(cfg->cache.name)) {
1183 vbdev->cfg.cache.locked = true;
1193 /* When cache is initialized as new, set force flag to true,
1199 * Core UUID is a triple of (core name, vbdev name, cache name)
1200 * Cache UUID is cache bdev name */
1206 uuid.size = strlen(vbdev->cache.name) + 1;
1207 uuid.data = vbdev->cache.name;
1215 vbdev->core.name, vbdev->name, vbdev->cache.name);
1251 vbdev->cache.name = strdup(cache_name);
1252 if (!vbdev->cache.name) {
1261 vbdev->cache.parent = vbdev;
1263 vbdev->cache.is_cache = true;
1275 vbdev->cfg.cache.cache_mode
1277 } else if (!loadq) { /* In load path it is OK to pass NULL as cache mode */
1278 SPDK_ERRLOG("No cache mode specified\n");
1282 if (vbdev->cfg.cache.cache_mode < 0) {
1283 SPDK_ERRLOG("Incorrect cache mode '%s'\n", cache_mode_name);
1297 vbdev->cfg.cache.cache_line_size = set_cache_line_size;
1349 * We will unregister cache vbdev here
1350 * When cache device is removed, we delete every OCF bdev that used it */
1371 if (strcmp(base->name, vbdev->cache.name) == 0) {
1373 " its cache device '%s' was removed\n",
1406 /* If base cache bdev was already opened by other vbdev,
1456 vbdev->cache.bdev = cache_bdev;
1457 rc |= attach_base(&vbdev->cache);
1497 SPDK_NOTICELOG("OCF bdev '%s' is waiting for cache device '%s' to connect\n",
1518 /* Set new cache mode on OCF cache */
1525 ocf_cache_t cache;
1529 cache = vbdev->ocf_cache;
1532 rc = ocf_mngt_cache_trylock(cache);
1538 rc = ocf_mngt_cache_set_mode(cache, cache_mode);
1539 ocf_mngt_cache_unlock(cache);
1543 /* Set sequential cutoff parameters on OCF cache */
1548 ocf_cache_t cache;
1552 cache = vbdev->ocf_cache;
1560 rc = ocf_mngt_cache_trylock(cache);
1566 rc = ocf_mngt_core_set_seq_cutoff_policy_all(cache, policy);
1574 rc = ocf_mngt_core_set_seq_cutoff_threshold_all(cache, threshold);
1581 rc = ocf_mngt_core_set_seq_cutoff_promotion_count_all(cache, promotion_count);
1585 ocf_mngt_cache_unlock(cache);
1603 if (!strcmp(bdev_name, vbdev->cache.name)) {
1680 /* -ENODATA means device does not have cache metadata on it */
1711 if (!strcmp(bdev_name, vbdev->cache.name)) {