examples/hello_blob: use io_unit_size instead of page_size
Blobstore now supports 512B reads/writes to blobs, if the backing device is formatted for 512B LBAs. The hello_blob example app was never updated to account for this - so when running against a backing device with 512B LBAs, it would fail since it was only reading/writing 1 blob io_unit (512B) but was comparing a page size (4KB). Clean up a typo too while we're here. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I6cfeeff1c160a24d4c10b68b9dd93717ed79f212 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/450069 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
parent
4fad4b86dd
commit
1a2de82456
@ -51,7 +51,7 @@ struct hello_context_t {
|
|||||||
struct spdk_io_channel *channel;
|
struct spdk_io_channel *channel;
|
||||||
uint8_t *read_buff;
|
uint8_t *read_buff;
|
||||||
uint8_t *write_buff;
|
uint8_t *write_buff;
|
||||||
uint64_t page_size;
|
uint64_t io_unit_size;
|
||||||
int rc;
|
int rc;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ read_complete(void *arg1, int bserrno)
|
|||||||
|
|
||||||
/* Now let's make sure things match. */
|
/* Now let's make sure things match. */
|
||||||
match_res = memcmp(hello_context->write_buff, hello_context->read_buff,
|
match_res = memcmp(hello_context->write_buff, hello_context->read_buff,
|
||||||
hello_context->page_size);
|
hello_context->io_unit_size);
|
||||||
if (match_res) {
|
if (match_res) {
|
||||||
unload_bs(hello_context, "Error in data compare", -1);
|
unload_bs(hello_context, "Error in data compare", -1);
|
||||||
return;
|
return;
|
||||||
@ -179,7 +179,7 @@ read_blob(struct hello_context_t *hello_context)
|
|||||||
{
|
{
|
||||||
SPDK_NOTICELOG("entry\n");
|
SPDK_NOTICELOG("entry\n");
|
||||||
|
|
||||||
hello_context->read_buff = spdk_malloc(hello_context->page_size,
|
hello_context->read_buff = spdk_malloc(hello_context->io_unit_size,
|
||||||
0x1000, NULL, SPDK_ENV_LCORE_ID_ANY,
|
0x1000, NULL, SPDK_ENV_LCORE_ID_ANY,
|
||||||
SPDK_MALLOC_DMA);
|
SPDK_MALLOC_DMA);
|
||||||
if (hello_context->read_buff == NULL) {
|
if (hello_context->read_buff == NULL) {
|
||||||
@ -223,9 +223,9 @@ blob_write(struct hello_context_t *hello_context)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Buffers for data transfer need to be allocated via SPDK. We will
|
* Buffers for data transfer need to be allocated via SPDK. We will
|
||||||
* tranfer 1 page of 4K aligned data at offset 0 in the blob.
|
* transfer 1 io_unit of 4K aligned data at offset 0 in the blob.
|
||||||
*/
|
*/
|
||||||
hello_context->write_buff = spdk_malloc(hello_context->page_size,
|
hello_context->write_buff = spdk_malloc(hello_context->io_unit_size,
|
||||||
0x1000, NULL, SPDK_ENV_LCORE_ID_ANY,
|
0x1000, NULL, SPDK_ENV_LCORE_ID_ANY,
|
||||||
SPDK_MALLOC_DMA);
|
SPDK_MALLOC_DMA);
|
||||||
if (hello_context->write_buff == NULL) {
|
if (hello_context->write_buff == NULL) {
|
||||||
@ -233,7 +233,7 @@ blob_write(struct hello_context_t *hello_context)
|
|||||||
-ENOMEM);
|
-ENOMEM);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
memset(hello_context->write_buff, 0x5a, hello_context->page_size);
|
memset(hello_context->write_buff, 0x5a, hello_context->io_unit_size);
|
||||||
|
|
||||||
/* Now we have to allocate a channel. */
|
/* Now we have to allocate a channel. */
|
||||||
hello_context->channel = spdk_bs_alloc_io_channel(hello_context->bs);
|
hello_context->channel = spdk_bs_alloc_io_channel(hello_context->bs);
|
||||||
@ -243,7 +243,7 @@ blob_write(struct hello_context_t *hello_context)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Let's perform the write, 1 page at offset 0. */
|
/* Let's perform the write, 1 io_unit at offset 0. */
|
||||||
spdk_blob_io_write(hello_context->blob, hello_context->channel,
|
spdk_blob_io_write(hello_context->blob, hello_context->channel,
|
||||||
hello_context->write_buff,
|
hello_context->write_buff,
|
||||||
0, 1, write_complete, hello_context);
|
0, 1, write_complete, hello_context);
|
||||||
@ -379,10 +379,10 @@ bs_init_complete(void *cb_arg, struct spdk_blob_store *bs,
|
|||||||
hello_context->bs = bs;
|
hello_context->bs = bs;
|
||||||
SPDK_NOTICELOG("blobstore: %p\n", hello_context->bs);
|
SPDK_NOTICELOG("blobstore: %p\n", hello_context->bs);
|
||||||
/*
|
/*
|
||||||
* We will use the page size in allocating buffers, etc., later
|
* We will use the io_unit size in allocating buffers, etc., later
|
||||||
* so we'll just save it in out context buffer here.
|
* so we'll just save it in out context buffer here.
|
||||||
*/
|
*/
|
||||||
hello_context->page_size = spdk_bs_get_page_size(hello_context->bs);
|
hello_context->io_unit_size = spdk_bs_get_io_unit_size(hello_context->bs);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The blostore has been initialized, let's create a blob.
|
* The blostore has been initialized, let's create a blob.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user