[00:43:31] *** Joins: ziyeyang__ (~ziyeyang@134.134.139.83) [00:43:31] *** Quits: ziyeyang_ (~ziyeyang@192.55.55.41) (Remote host closed the connection) [01:41:36] *** Joins: ziyeyang_ (~ziyeyang@192.55.55.41) [01:41:36] *** Quits: ziyeyang__ (~ziyeyang@134.134.139.83) (Remote host closed the connection) [02:04:15] *** Joins: mszwed (~mszwed@192.55.54.44) [02:52:05] *** Quits: ziyeyang_ (~ziyeyang@192.55.55.41) (Remote host closed the connection) [06:38:25] *** Quits: tomzawadzki (~tzawadzk@134.134.139.77) (Ping timeout: 260 seconds) [07:31:33] *** Joins: nKumar (uid239884@gateway/web/irccloud.com/x-ehfaohtxrfuxrtsv) [07:33:47] I am currently still working on an implementation of blobStore. I have pretty much stuck to the process used in the blob_ut.c unit tests for read and write. In my write for example: create blob -> open blob -> resize blob -> write blob -> close blob. Create and open seem to be working fine, however the resizing is returning a -1 which leads to a write fail. [07:34:18] I realize this is a broad question, given a lack of code. Let me know and Im happy to share my read/write functions. [07:35:08] yeah, that would be a big help I think [07:35:51] write function: [07:36:07] the hello world code is super basic, not sure if you've looked it for anything obvious. It's not merged yet but you can find it at https://review.gerrithub.io/#/c/370785/ [07:37:03] https://www.irccloud.com/pastebin/JMNDcMwL/ [07:37:38] op is essentially a message that is taken from an SPSC queue [07:37:41] here are its elements: [07:38:01] blobStoreOpType_t operationType; [07:38:01] void * ctx; [07:38:01] uintptr_t arg; [07:38:01] blobName_t name; [07:38:01] const uint8_t* blobBytes; [07:38:01] size_t blobLen; [07:38:02] blobXAttrs_t * attributes; [07:38:02] bool flushNow; [07:38:03] BLOB_OP_COMPLETE_CALLBACK opCallback; [07:38:03] BLOB_LIST_CALLBACK listCallback; [07:38:04] BLOB_GET_CALLBACK getCallback; [07:38:37] and here are the declarations im using internally in my "blobStore_t" class: [07:38:52] private: [07:38:52] struct spdk_blob_store * m_bs; [07:38:52] struct spdk_bs_dev m_dev; [07:38:52] struct spdk_io_channel * m_channel; [07:38:52] struct spdk_env_opts m_opts; [07:38:52] spdk_blob_id m_blobid; [07:38:53] struct spdk_blob * m_blob; [07:38:53] int m_rc; [07:38:54] spdk_blob_id m_g_blobid; [07:38:54] struct spdk_blob * m_g_blob; [07:38:55] int m_g_bserrno; [07:38:55] struct spdk_blob_store * m_g_bs; [07:38:56] uint8_t * m_g_dev_buffer; [07:38:59] struct ctrlr_entry * m_g_controllers; [07:39:44] how are you determining temp2? ie, where is op.blobLen coming from? [07:40:51] here is my begin function, which creates the op object and then puts it into the SPSC queue for the execute function to consume: [07:40:56] bool nvmeBlobStore_t::beginPut( void * ctx, uintptr_t arg, const blobName_t & name, const uint8_t * blobBytes, size_t blobLen, unique_ptr && attributes, bool flushNow, BLOB_OP_COMPLETE_CALLBACK callback) [07:40:56] { [07:40:56] blobStoreOperation_t putOp(blobBytes); [07:40:56] putOp.operationType = blobStoreOpType_t::PUT; [07:40:56] putOp.ctx = ctx; [07:40:56] putOp.arg = arg; [07:40:57] putOp.blobBytes = blobBytes; [07:40:57] putOp.blobLen = blobLen; [07:40:58] //need to figure out how to "extract" here. [07:40:59] putOp.attributes = attributes.get(); [07:40:59] putOp.name = name; [07:41:00] putOp.flushNow = flushNow; [07:41:00] putOp.opCallback = callback; [07:41:00] m_blobQueue.enqueue(putOp); [07:43:08] so is blobLen in unit of clusters? [07:43:57] I believe it is the number of bytes of the blob [07:44:24] is the resize function expecting the size to be in unit of clusters? [07:44:47] OK, that would be a problem. Yes, it takes clusters [07:45:05] got it [07:47:12] let us know how it goes... as you probably know you can set the cluster size when you init the blob and if not the default is 1MB [07:49:17] will do, Thanks! [07:49:47] no problem! [07:51:43] so with a very small test sample, a single blob of ~500 bytes, which should fit in a single 1MB cluster, I passed a hardCoded cluster size of 2 to the resize function and it seems to still be giving me an error code of -1. [07:54:35] when a BlobStore is initialized, what is the default size if the spdk_bs_opts is passed as NULL in the bs_init function? [08:03:01] *** Quits: sethhowe (~sethhowe@192.55.54.42) (Remote host closed the connection) [08:03:05] *** Joins: sethhowe_ (~sethhowe@134.134.139.82) [08:05:28] *** Quits: peluse (~peluse@192.55.54.44) (Ping timeout: 240 seconds) [08:06:20] *** Joins: peluse (~peluse@192.55.54.44) [08:10:29] *** Quits: jkkariu (~jkkariu@192.55.54.44) (Ping timeout: 240 seconds) [08:12:36] *** Quits: vermavis (~vermavis@192.55.54.44) (Ping timeout: 240 seconds) [08:13:41] Hi all, our connection to the GerritHub server seems to have been interrupted. When that comes back online, the test pool will be able to resume. [08:14:00] *** Joins: vermavis (~vermavis@192.55.54.44) [08:14:35] *** Joins: jkkariu (~jkkariu@192.55.54.44) [08:54:02] *** Joins: pzedlews_ (~pzedlews@109241096052.gdansk.vectranet.pl) [09:12:41] *** Quits: pzedlews_ (~pzedlews@109241096052.gdansk.vectranet.pl) (Read error: Connection reset by peer) [09:14:12] *** Joins: pzedlews_ (~pzedlews@109241096052.gdansk.vectranet.pl) [09:16:11] *** Quits: mszwed (~mszwed@192.55.54.44) (Ping timeout: 240 seconds) [09:34:01] *** Quits: jkkariu (~jkkariu@192.55.54.44) (Ping timeout: 240 seconds) [09:34:01] *** Quits: pzedlews (~pzedlews@192.55.54.44) (Ping timeout: 255 seconds) [09:34:46] *** Quits: tsg (~tsg@192.55.54.44) (Ping timeout: 255 seconds) [09:34:48] *** Quits: cunyinch (~cunyinch@192.55.54.44) (Ping timeout: 260 seconds) [13:18:48] *** Joins: bwalker (~bwalker@192.55.54.38) [13:18:48] *** Server sets mode: +cnt [13:18:49] *** Server sets mode: +cnt [13:19:49] *** Joins: cunyinch (~cunyinch@192.55.54.38) [13:21:21] *** Joins: ppelplin (ppelplin@nat/intel/x-kznemfaositixyyf) [13:21:55] *** Joins: qdai2 (~qdai2@192.55.54.38) [13:22:21] *** Joins: vermavis (vermavis@nat/intel/x-puzxnrdpzqmtxnue) [13:22:56] *** Joins: ziyeyang (~ziyeyang@192.55.54.38) [13:26:54] *** Joins: jstern (~jstern@192.55.54.38) [13:27:28] *** Joins: pbshah1 (pbshah1@nat/intel/x-tnuxdmklckwvyroq) [13:27:54] *** Joins: changpe1 (changpe1@nat/intel/x-cpzesufphkvqfbty) [14:36:22] *** Joins: sethhowe (~sethhowe@192.55.54.42) [14:36:39] *** Quits: peluse (~peluse@2600:8800:140a:ae18:856f:f948:f511:7c93) (Quit: Leaving...) [14:36:39] *** peluse- is now known as peluse [14:37:17] *** ChanServ sets mode: +o peluse [14:38:34] *** Quits: sethhowe_ (~sethhowe@134.134.139.82) (Remote host closed the connection) [14:45:39] *** Quits: sethhowe (~sethhowe@192.55.54.42) (Remote host closed the connection) [14:46:24] *** Joins: sethhowe (~sethhowe@192.55.54.44) [14:52:15] *** Quits: sethhowe (~sethhowe@192.55.54.44) (Remote host closed the connection) [14:52:37] *** Joins: sethhowe (~sethhowe@134.134.139.73) [15:22:33] *** ChanServ sets mode: +o jimharris [16:21:55] *** Quits: sethhowe (~sethhowe@134.134.139.73) (Remote host closed the connection) [16:22:03] *** Joins: sethhowe (sethhowe@nat/intel/x-dsgadnhurjodckdv) [16:50:14] *** Joins: bwalker (~bwalker@192.55.54.44) [16:50:14] *** Server sets mode: +cnt [16:50:44] *** Joins: peluse (~peluse@192.55.54.44) [16:52:20] *** Joins: cunyinch (~cunyinch@192.55.54.44) [16:53:18] *** Joins: changpe1 (~changpe1@192.55.54.44) [16:55:48] *** Joins: pzedlews (~pzedlews@192.55.54.44) [16:57:49] *** Joins: jstern (~jstern@192.55.54.44) [16:58:54] *** Joins: pbshah1 (~pbshah1@192.55.54.44) [17:01:23] *** ChanServ sets mode: +o jimharris [17:03:24] *** Joins: qdai2 (~qdai2@192.55.54.44) [19:47:20] *** Quits: nKumar (uid239884@gateway/web/irccloud.com/x-ehfaohtxrfuxrtsv) (Quit: Connection closed for inactivity)