Adds API for fast shutdown - the ability for FTL to skip most of the metadata persists made during clean shutdown, and relying on their representation in shared memory instead. This allows for faster update of SPDK (or just FTL, assuming no metadata changes), with downtime reduction from 2-5 seconds to 500-1000 ms (for 14TiB+800GiB base and cache drives). Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com> Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com> Change-Id: I5999d31698a81512db8d5893eabee7b505c80d06 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13348 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
29 lines
754 B
C
29 lines
754 B
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright (c) Intel Corporation.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
#ifndef SPDK_BDEV_FTL_H
|
|
#define SPDK_BDEV_FTL_H
|
|
|
|
#include "spdk/stdinc.h"
|
|
#include "spdk/bdev_module.h"
|
|
#include "spdk/ftl.h"
|
|
|
|
#include "ftl_core.h"
|
|
|
|
struct ftl_bdev_info {
|
|
const char *name;
|
|
struct spdk_uuid uuid;
|
|
};
|
|
|
|
typedef void (*ftl_bdev_init_fn)(const struct ftl_bdev_info *, void *, int);
|
|
typedef void (*ftl_bdev_thread_fn)(void *);
|
|
|
|
int bdev_ftl_create_bdev(const struct spdk_ftl_conf *conf, ftl_bdev_init_fn cb, void *cb_arg);
|
|
void bdev_ftl_delete_bdev(const char *name, bool fast_shutdown, spdk_bdev_unregister_cb cb_fn,
|
|
void *cb_arg);
|
|
int bdev_ftl_defer_init(const struct spdk_ftl_conf *conf);
|
|
|
|
#endif /* SPDK_BDEV_FTL_H */
|