bdev: deprecate spdk_vbdev_register
This API had good intentions, but as more complicated use cases came up where base bdevs could come and go, we've realized that the bdev layer will need another mechanism to query bdev modules on these types of relationships between a virtual bdev and its base bdevs. We removed all code related to tracking the array of base bdevs a long time ago. Change all existing callers to use spdk_bdev_register. Document spdk_vbdev_register as deprecated for now, and change its implementation to just call spdk_bdev_register for simplicity sake. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I3b40ed96480c0fa7184db42953a9f4e4c167fed1 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/450076 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
parent
a0760b9554
commit
bfd1e46e6e
@ -43,6 +43,9 @@ to be performed on the thread at given time.
|
||||
An new API `spdk_bdev_get_data_block_size` has been added to get size of data
|
||||
block except for metadata.
|
||||
|
||||
spdk_vbdev_register() has been deprecated. spdk_bdev_register() should be used
|
||||
instead.
|
||||
|
||||
### NVMe-oF Target
|
||||
|
||||
Support for per-device shared receive queues in the RDMA transport has been added.
|
||||
|
@ -603,6 +603,10 @@ void spdk_bdev_destruct_done(struct spdk_bdev *bdev, int bdeverrno);
|
||||
/**
|
||||
* Register a virtual bdev.
|
||||
*
|
||||
* This function is deprecated. Users should call spdk_bdev_register instead.
|
||||
* The bdev layer currently makes no use of the base_bdevs array, so switching
|
||||
* to spdk_bdev_register results in no loss of functionality.
|
||||
*
|
||||
* \param vbdev Virtual bdev to register.
|
||||
* \param base_bdevs Array of bdevs upon which this vbdev is based.
|
||||
* \param base_bdev_count Number of bdevs in base_bdevs.
|
||||
|
@ -3758,16 +3758,8 @@ spdk_bdev_register(struct spdk_bdev *bdev)
|
||||
int
|
||||
spdk_vbdev_register(struct spdk_bdev *vbdev, struct spdk_bdev **base_bdevs, int base_bdev_count)
|
||||
{
|
||||
int rc;
|
||||
|
||||
rc = spdk_bdev_init(vbdev);
|
||||
if (rc) {
|
||||
return rc;
|
||||
}
|
||||
|
||||
spdk_bdev_start(vbdev);
|
||||
spdk_notify_send("bdev_register", spdk_bdev_get_name(vbdev));
|
||||
return 0;
|
||||
SPDK_ERRLOG("This function is deprecated. Use spdk_bdev_register() instead.\n");
|
||||
return spdk_bdev_register(vbdev);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1234,17 +1234,17 @@ vbdev_compress_claim(struct vbdev_compress *comp_bdev)
|
||||
goto error_claim;
|
||||
}
|
||||
|
||||
rc = spdk_vbdev_register(&comp_bdev->comp_bdev, &comp_bdev->base_bdev, 1);
|
||||
rc = spdk_bdev_register(&comp_bdev->comp_bdev);
|
||||
if (rc < 0) {
|
||||
SPDK_ERRLOG("trying to register vbdev\n");
|
||||
goto error_vbdev_register;
|
||||
SPDK_ERRLOG("trying to register bdev\n");
|
||||
goto error_bdev_register;
|
||||
}
|
||||
|
||||
SPDK_NOTICELOG("registered io_device and virtual bdev for: %s\n", comp_bdev->comp_bdev.name);
|
||||
|
||||
return;
|
||||
/* Error cleanup paths. */
|
||||
error_vbdev_register:
|
||||
error_bdev_register:
|
||||
spdk_bdev_module_release_bdev(comp_bdev->base_bdev);
|
||||
error_claim:
|
||||
TAILQ_REMOVE(&g_vbdev_comp, comp_bdev, link);
|
||||
|
@ -1605,11 +1605,11 @@ vbdev_crypto_claim(struct spdk_bdev *bdev)
|
||||
goto error_session_init;
|
||||
}
|
||||
|
||||
rc = spdk_vbdev_register(&vbdev->crypto_bdev, &vbdev->base_bdev, 1);
|
||||
rc = spdk_bdev_register(&vbdev->crypto_bdev);
|
||||
if (rc < 0) {
|
||||
SPDK_ERRLOG("ERROR trying to register vbdev\n");
|
||||
SPDK_ERRLOG("ERROR trying to register bdev\n");
|
||||
rc = -EINVAL;
|
||||
goto error_vbdev_register;
|
||||
goto error_bdev_register;
|
||||
}
|
||||
SPDK_DEBUGLOG(SPDK_LOG_VBDEV_crypto, "registered io_device and virtual bdev for: %s\n",
|
||||
name->vbdev_name);
|
||||
@ -1619,7 +1619,7 @@ vbdev_crypto_claim(struct spdk_bdev *bdev)
|
||||
return rc;
|
||||
|
||||
/* Error cleanup paths. */
|
||||
error_vbdev_register:
|
||||
error_bdev_register:
|
||||
error_session_init:
|
||||
rte_cryptodev_sym_session_free(vbdev->session_decrypt);
|
||||
error_session_de_create:
|
||||
|
@ -967,7 +967,7 @@ _create_lvol_disk(struct spdk_lvol *lvol, bool destroy)
|
||||
bdev->fn_table = &vbdev_lvol_fn_table;
|
||||
bdev->module = &g_lvol_if;
|
||||
|
||||
rc = spdk_vbdev_register(bdev, &lvs_bdev->bdev, 1);
|
||||
rc = spdk_bdev_register(bdev);
|
||||
if (rc) {
|
||||
free(bdev);
|
||||
return rc;
|
||||
|
@ -367,7 +367,7 @@ spdk_bdev_part_construct(struct spdk_bdev_part *part, struct spdk_bdev_part_base
|
||||
base->channel_size,
|
||||
name);
|
||||
|
||||
spdk_vbdev_register(&part->internal.bdev, &base->bdev, 1);
|
||||
spdk_bdev_register(&part->internal.bdev);
|
||||
TAILQ_INSERT_TAIL(base->tailq, part, tailq);
|
||||
|
||||
return 0;
|
||||
|
@ -630,7 +630,7 @@ vbdev_passthru_register(struct spdk_bdev *bdev)
|
||||
}
|
||||
SPDK_NOTICELOG("bdev claimed\n");
|
||||
|
||||
rc = spdk_vbdev_register(&pt_node->pt_bdev, &bdev, 1);
|
||||
rc = spdk_bdev_register(&pt_node->pt_bdev);
|
||||
if (rc) {
|
||||
SPDK_ERRLOG("could not register pt_bdev\n");
|
||||
spdk_bdev_close(pt_node->base_desc);
|
||||
|
@ -330,10 +330,9 @@ allocate_bdev(char *name)
|
||||
}
|
||||
|
||||
static struct spdk_bdev *
|
||||
allocate_vbdev(char *name, struct spdk_bdev *base1, struct spdk_bdev *base2)
|
||||
allocate_vbdev(char *name)
|
||||
{
|
||||
struct spdk_bdev *bdev;
|
||||
struct spdk_bdev *array[2];
|
||||
int rc;
|
||||
|
||||
bdev = calloc(1, sizeof(*bdev));
|
||||
@ -343,13 +342,7 @@ allocate_vbdev(char *name, struct spdk_bdev *base1, struct spdk_bdev *base2)
|
||||
bdev->fn_table = &fn_table;
|
||||
bdev->module = &vbdev_ut_if;
|
||||
|
||||
/* vbdev must have at least one base bdev */
|
||||
CU_ASSERT(base1 != NULL);
|
||||
|
||||
array[0] = base1;
|
||||
array[1] = base2;
|
||||
|
||||
rc = spdk_vbdev_register(bdev, array, base2 == NULL ? 1 : 2);
|
||||
rc = spdk_bdev_register(bdev);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
return bdev;
|
||||
@ -464,19 +457,19 @@ open_write_test(void)
|
||||
rc = spdk_bdev_module_claim_bdev(bdev[3], NULL, &bdev_ut_if);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
bdev[4] = allocate_vbdev("bdev4", bdev[0], bdev[1]);
|
||||
bdev[4] = allocate_vbdev("bdev4");
|
||||
rc = spdk_bdev_module_claim_bdev(bdev[4], NULL, &bdev_ut_if);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
bdev[5] = allocate_vbdev("bdev5", bdev[2], NULL);
|
||||
bdev[5] = allocate_vbdev("bdev5");
|
||||
rc = spdk_bdev_module_claim_bdev(bdev[5], NULL, &bdev_ut_if);
|
||||
CU_ASSERT(rc == 0);
|
||||
|
||||
bdev[6] = allocate_vbdev("bdev6", bdev[2], NULL);
|
||||
bdev[6] = allocate_vbdev("bdev6");
|
||||
|
||||
bdev[7] = allocate_vbdev("bdev7", bdev[2], bdev[3]);
|
||||
bdev[7] = allocate_vbdev("bdev7");
|
||||
|
||||
bdev[8] = allocate_vbdev("bdev8", bdev[4], bdev[5]);
|
||||
bdev[8] = allocate_vbdev("bdev8");
|
||||
|
||||
/* Open bdev0 read-only. This should succeed. */
|
||||
rc = spdk_bdev_open(bdev[0], false, NULL, NULL, &desc[0]);
|
||||
|
@ -129,8 +129,7 @@ DEFINE_STUB(spdk_bdev_open, int, (struct spdk_bdev *bdev, bool write,
|
||||
DEFINE_STUB(spdk_bdev_module_claim_bdev, int, (struct spdk_bdev *bdev, struct spdk_bdev_desc *desc,
|
||||
struct spdk_bdev_module *module), 0);
|
||||
DEFINE_STUB_V(spdk_bdev_module_examine_done, (struct spdk_bdev_module *module));
|
||||
DEFINE_STUB(spdk_vbdev_register, int, (struct spdk_bdev *vbdev, struct spdk_bdev **base_bdevs,
|
||||
int base_bdev_count), 0);
|
||||
DEFINE_STUB(spdk_bdev_register, int, (struct spdk_bdev *bdev), 0);
|
||||
DEFINE_STUB(spdk_bdev_get_by_name, struct spdk_bdev *, (const char *bdev_name), NULL);
|
||||
DEFINE_STUB(spdk_env_get_socket_id, uint32_t, (uint32_t core), 0);
|
||||
DEFINE_STUB_V(spdk_reduce_vol_readv, (struct spdk_reduce_vol *vol,
|
||||
|
@ -162,8 +162,7 @@ DEFINE_STUB(spdk_bdev_open, int, (struct spdk_bdev *bdev, bool write,
|
||||
DEFINE_STUB(spdk_bdev_module_claim_bdev, int, (struct spdk_bdev *bdev, struct spdk_bdev_desc *desc,
|
||||
struct spdk_bdev_module *module), 0);
|
||||
DEFINE_STUB_V(spdk_bdev_module_examine_done, (struct spdk_bdev_module *module));
|
||||
DEFINE_STUB(spdk_vbdev_register, int, (struct spdk_bdev *vbdev, struct spdk_bdev **base_bdevs,
|
||||
int base_bdev_count), 0);
|
||||
DEFINE_STUB(spdk_bdev_register, int, (struct spdk_bdev *vbdev), 0);
|
||||
DEFINE_STUB(spdk_env_get_socket_id, uint32_t, (uint32_t core), 0);
|
||||
|
||||
/* DPDK stubs */
|
||||
|
@ -550,7 +550,7 @@ spdk_bdev_get_name(const struct spdk_bdev *bdev)
|
||||
}
|
||||
|
||||
int
|
||||
spdk_vbdev_register(struct spdk_bdev *vbdev, struct spdk_bdev **base_bdevs, int base_bdev_count)
|
||||
spdk_bdev_register(struct spdk_bdev *vbdev)
|
||||
{
|
||||
TAILQ_INIT(&vbdev->aliases);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user