Lines Matching refs:dev

37 init_core_thread(struct spdk_ftl_dev *dev)  in init_core_thread()  argument
45 if (dev->conf.core_mask) { in init_core_thread()
46 if (spdk_cpuset_parse(&cpumask, dev->conf.core_mask)) { in init_core_thread()
49 dev->core_thread = spdk_thread_create("ftl_core_thread", &cpumask); in init_core_thread()
51 dev->core_thread = spdk_get_thread(); in init_core_thread()
54 if (dev->core_thread == NULL) { in init_core_thread()
55 FTL_ERRLOG(dev, "Cannot create thread for mask %s\n", dev->conf.core_mask); in init_core_thread()
71 deinit_core_thread(struct spdk_ftl_dev *dev) in deinit_core_thread() argument
73 if (dev->core_thread && dev->conf.core_mask) { in deinit_core_thread()
74 spdk_thread_send_msg(dev->core_thread, exit_thread, in deinit_core_thread()
75 dev->core_thread); in deinit_core_thread()
76 dev->core_thread = NULL; in deinit_core_thread()
81 free_dev(struct spdk_ftl_dev *dev) in free_dev() argument
83 if (!dev) { in free_dev()
87 deinit_core_thread(dev); in free_dev()
88 spdk_ftl_conf_deinit(&dev->conf); in free_dev()
89 ftl_properties_deinit(dev); in free_dev()
90 free(dev); in free_dev()
97 struct spdk_ftl_dev *dev = calloc(1, sizeof(*dev)); in allocate_dev() local
99 if (!dev) { in allocate_dev()
100 FTL_ERRLOG(dev, "Cannot allocate FTL device\n"); in allocate_dev()
105 rc = ftl_properties_init(dev); in allocate_dev()
111 rc = ftl_conf_init_dev(dev, conf); in allocate_dev()
117 rc = init_core_thread(dev); in allocate_dev()
123 TAILQ_INIT(&dev->rd_sq); in allocate_dev()
124 TAILQ_INIT(&dev->wr_sq); in allocate_dev()
125 TAILQ_INIT(&dev->trim_sq); in allocate_dev()
126 TAILQ_INIT(&dev->ioch_queue); in allocate_dev()
128 ftl_writer_init(dev, &dev->writer_user, SPDK_FTL_LIMIT_HIGH, FTL_BAND_TYPE_COMPACTION); in allocate_dev()
129 ftl_writer_init(dev, &dev->writer_gc, SPDK_FTL_LIMIT_CRIT, FTL_BAND_TYPE_GC); in allocate_dev()
131 return dev; in allocate_dev()
133 free_dev(dev); in allocate_dev()
138 dev_init_cb(struct spdk_ftl_dev *dev, void *_ctx, int status) in dev_init_cb() argument
144 if (dev->init_retry) { in dev_init_cb()
145 FTL_NOTICELOG(dev, "Startup retry\n"); in dev_init_cb()
146 rc = spdk_ftl_dev_init(&dev->conf, ctx->cb_fn, ctx->cb_arg); in dev_init_cb()
148 free_dev(dev); in dev_init_cb()
152 FTL_NOTICELOG(dev, "Startup retry failed: %d\n", rc); in dev_init_cb()
155 free_dev(dev); in dev_init_cb()
156 dev = NULL; in dev_init_cb()
158 ctx->cb_fn(dev, ctx->cb_arg, status); in dev_init_cb()
167 struct spdk_ftl_dev *dev = NULL; in spdk_ftl_dev_init() local
177 dev = allocate_dev(conf, &rc); in spdk_ftl_dev_init()
178 if (!dev) { in spdk_ftl_dev_init()
182 rc = ftl_mngt_call_dev_startup(dev, dev_init_cb, ctx); in spdk_ftl_dev_init()
191 free_dev(dev); in spdk_ftl_dev_init()
196 dev_free_cb(struct spdk_ftl_dev *dev, void *_ctx, int status) in dev_free_cb() argument
201 free_dev(dev); in dev_free_cb()
208 spdk_ftl_dev_free(struct spdk_ftl_dev *dev, spdk_ftl_fn cb_fn, void *cb_arg) in spdk_ftl_dev_free() argument
221 rc = ftl_mngt_call_dev_shutdown(dev, dev_free_cb, ctx); in spdk_ftl_dev_free()