diff --git a/lib/bdev/compress/vbdev_compress.c b/lib/bdev/compress/vbdev_compress.c index 4ce2a7018..e541df7fc 100644 --- a/lib/bdev/compress/vbdev_compress.c +++ b/lib/bdev/compress/vbdev_compress.c @@ -60,8 +60,6 @@ #define COMP_BDEV_NAME "compress" -/* TODO: need to get this from RPC on create or reduce metadata on load */ -#define TEST_MD_PATH "/tmp" #define DEV_CHUNK_SZ (16 * 1024) #define DEV_LBA_SZ 512 #define DEV_BACKING_IO_SZ (4 * 1024) @@ -991,7 +989,7 @@ _prepare_for_load_init(struct spdk_bdev *bdev) /* Call reducelib to initialize a new volume */ static void -vbdev_init_reduce(struct spdk_bdev *bdev, const char *vbdev_name, const char *comp_pmd) +vbdev_init_reduce(struct spdk_bdev *bdev, const char *pm_path, const char *comp_pmd) { struct vbdev_compress *meta_ctx; int rc; @@ -1015,7 +1013,7 @@ vbdev_init_reduce(struct spdk_bdev *bdev, const char *vbdev_name, const char *co * in load. */ spdk_reduce_vol_init(&meta_ctx->params, &meta_ctx->backing_dev, - TEST_MD_PATH, + pm_path, vbdev_reduce_init_cb, meta_ctx); } @@ -1110,7 +1108,7 @@ comp_bdev_ch_destroy_cb(void *io_device, void *ctx_buf) /* RPC entry point for compression vbdev creation. */ int -create_compress_bdev(const char *bdev_name, const char *vbdev_name, const char *comp_pmd) +create_compress_bdev(const char *bdev_name, const char *pm_path, const char *comp_pmd) { struct spdk_bdev *bdev; @@ -1119,7 +1117,7 @@ create_compress_bdev(const char *bdev_name, const char *vbdev_name, const char * return -ENODEV; } - vbdev_init_reduce(bdev, vbdev_name, comp_pmd); + vbdev_init_reduce(bdev, pm_path, comp_pmd); return 0; } diff --git a/lib/bdev/compress/vbdev_compress.h b/lib/bdev/compress/vbdev_compress.h index 94b27cfb0..d8f201125 100644 --- a/lib/bdev/compress/vbdev_compress.h +++ b/lib/bdev/compress/vbdev_compress.h @@ -44,11 +44,11 @@ typedef void (*spdk_delete_compress_complete)(void *cb_arg, int bdeverrno); * Create new compression bdev. * * \param bdev_name Bdev on which compression bdev will be created. - * \param vbdev_name Compression bdev name. + * \param pm_path Path to persistent memory. * \param comp_pmd Compression PMD name. * \return 0 on success, other on failure. */ -int create_compress_bdev(const char *bdev_name, const char *vbdev_name, const char *comp_pmd); +int create_compress_bdev(const char *bdev_name, const char *pm_path, const char *comp_pmd); /** * Delete compress bdev. diff --git a/lib/bdev/compress/vbdev_compress_rpc.c b/lib/bdev/compress/vbdev_compress_rpc.c index 140b39d02..ef2db7706 100644 --- a/lib/bdev/compress/vbdev_compress_rpc.c +++ b/lib/bdev/compress/vbdev_compress_rpc.c @@ -40,7 +40,7 @@ /* Structure to hold the parameters for this RPC method. */ struct rpc_construct_compress { char *base_bdev_name; - char *name; + char *pm_path; char *comp_pmd; }; @@ -49,14 +49,14 @@ static void free_rpc_construct_compress(struct rpc_construct_compress *r) { free(r->base_bdev_name); - free(r->name); + free(r->pm_path); free(r->comp_pmd); } /* Structure to decode the input parameters for this RPC method. */ static const struct spdk_json_object_decoder rpc_construct_compress_decoders[] = { {"base_bdev_name", offsetof(struct rpc_construct_compress, base_bdev_name), spdk_json_decode_string}, - {"name", offsetof(struct rpc_construct_compress, name), spdk_json_decode_string}, + {"pm_path", offsetof(struct rpc_construct_compress, pm_path), spdk_json_decode_string}, {"comp_pmd", offsetof(struct rpc_construct_compress, comp_pmd), spdk_json_decode_string}, }; @@ -69,6 +69,7 @@ spdk_rpc_construct_compress_bdev(struct spdk_jsonrpc_request *request, { struct rpc_construct_compress req = {NULL}; struct spdk_json_write_ctx *w; + char *name; int rc; if (spdk_json_decode_object(params, rpc_construct_compress_decoders, @@ -78,7 +79,7 @@ spdk_rpc_construct_compress_bdev(struct spdk_jsonrpc_request *request, goto invalid; } - rc = create_compress_bdev(req.base_bdev_name, req.name, req.comp_pmd); + rc = create_compress_bdev(req.base_bdev_name, req.pm_path, req.comp_pmd); if (rc != 0) { goto invalid; } @@ -89,9 +90,11 @@ spdk_rpc_construct_compress_bdev(struct spdk_jsonrpc_request *request, return; } - spdk_json_write_string(w, req.name); + name = spdk_sprintf_alloc("COMP_%s", req.base_bdev_name); + spdk_json_write_string(w, name); spdk_jsonrpc_end_result(request, w); free_rpc_construct_compress(&req); + free(name); return; invalid: diff --git a/scripts/rpc.py b/scripts/rpc.py index eefbc945f..f1532769c 100755 --- a/scripts/rpc.py +++ b/scripts/rpc.py @@ -134,12 +134,12 @@ if __name__ == "__main__": def construct_compress_bdev(args): print(rpc.bdev.construct_compress_bdev(args.client, base_bdev_name=args.base_bdev_name, - name=args.name, + pm_path=args.pm_path, comp_pmd=args.comp_pmd)) p = subparsers.add_parser('construct_compress_bdev', help='Add a compress vbdev') p.add_argument('-b', '--base_bdev_name', help="Name of the base bdev") - p.add_argument('-c', '--name', help="Name of the compress vbdev") + p.add_argument('-p', '--pm_path', help="Path to persistent memory") p.add_argument('-d', '--comp_pmd', help="Name of the compression device driver") p.set_defaults(func=construct_compress_bdev) diff --git a/scripts/rpc/bdev.py b/scripts/rpc/bdev.py index b702e1895..dcbf9b1ff 100644 --- a/scripts/rpc/bdev.py +++ b/scripts/rpc/bdev.py @@ -15,18 +15,18 @@ def set_bdev_options(client, bdev_io_pool_size=None, bdev_io_cache_size=None): return client.call('set_bdev_options', params) -def construct_compress_bdev(client, base_bdev_name, name, comp_pmd): +def construct_compress_bdev(client, base_bdev_name, pm_path, comp_pmd): """Construct a compress virtual block device. Args: base_bdev_name: name of the underlying base bdev - name: name for the compress vbdev + pm_path: path to persistent memory comp_pmd: name of of the DPDK compression driver to use Returns: Name of created virtual block device. """ - params = {'base_bdev_name': base_bdev_name, 'name': name, 'comp_pmd': comp_pmd} + params = {'base_bdev_name': base_bdev_name, 'pm_path': pm_path, 'comp_pmd': comp_pmd} return client.call('construct_compress_bdev', params)