Lines Matching defs:compactor

22 static void compactor_free(struct spdk_ftl_dev *dev, struct ftl_nv_cache_compactor *compactor);
221 struct ftl_nv_cache_compactor *compactor;
293 compactor = compactor_alloc(dev);
295 if (!compactor) {
300 TAILQ_INSERT_TAIL(&nv_cache->compactor_list, compactor, entry);
322 /* Each compactor can be reading a different chunk which it needs to switch state to free to at the end,
355 struct ftl_nv_cache_compactor *compactor;
362 compactor = TAILQ_FIRST(&nv_cache->compactor_list);
363 TAILQ_REMOVE(&nv_cache->compactor_list, compactor, entry);
365 compactor_free(dev, compactor);
715 static void compaction_process_finish_read(struct ftl_nv_cache_compactor *compactor);
777 struct ftl_nv_cache_compactor *compactor = rq->owner.priv;
793 compaction_process_pin_lba(compactor);
935 compactor_deactivate(struct ftl_nv_cache_compactor *compactor)
937 struct ftl_nv_cache *nv_cache = compactor->nv_cache;
939 compactor->rq->iter.count = 0;
942 TAILQ_INSERT_TAIL(&nv_cache->compactor_list, compactor, entry);
955 compaction_process_pad(struct ftl_nv_cache_compactor *compactor, uint64_t idx)
957 struct ftl_rq *rq = compactor->rq;
967 compaction_process_read(struct ftl_nv_cache_compactor *compactor)
969 struct ftl_rq *rq = compactor->rq;
970 struct ftl_nv_cache *nv_cache = compactor->nv_cache;
1058 compaction_process_start(struct ftl_nv_cache_compactor *compactor)
1060 struct ftl_rq *rq = compactor->rq;
1061 struct ftl_nv_cache *nv_cache = compactor->nv_cache;
1064 assert(0 == compactor->rq->iter.count);
1067 compaction_process_pad(compactor, entry->index);
1075 compaction_process_read(compactor);
1077 compactor_deactivate(compactor);
1085 struct ftl_nv_cache_compactor *compactor;
1099 compactor = TAILQ_FIRST(&nv_cache->compactor_list);
1100 if (!compactor) {
1104 TAILQ_REMOVE(&nv_cache->compactor_list, compactor, entry);
1105 compactor->nv_cache->compaction_active_count++;
1106 compaction_process_start(compactor);
1114 struct ftl_nv_cache_compactor *compactor = rq->owner.priv;
1148 compactor_deactivate(compactor);
1152 compaction_process_finish_read(struct ftl_nv_cache_compactor *compactor)
1154 struct ftl_rq *rq = compactor->rq;
1189 compactor_deactivate(compactor);
1194 compactor_free(struct spdk_ftl_dev *dev, struct ftl_nv_cache_compactor *compactor)
1196 if (!compactor) {
1200 ftl_rq_del(compactor->rq);
1201 free(compactor);
1207 struct ftl_nv_cache_compactor *compactor;
1210 compactor = calloc(1, sizeof(*compactor));
1211 if (!compactor) {
1216 compactor->rq = ftl_rq_new(dev, dev->nv_cache.md_size);
1217 if (!compactor->rq) {
1221 compactor->nv_cache = &dev->nv_cache;
1222 compactor->rq->owner.priv = compactor;
1223 compactor->rq->owner.cb = compaction_process_ftl_done;
1224 compactor->rq->owner.compaction = true;
1226 FTL_RQ_ENTRY_LOOP(compactor->rq, entry, compactor->rq->num_blocks) {
1230 return compactor;
1233 compactor_free(dev, compactor);