Spdk/include/spdk
Tomasz Zawadzki c33840b7e6 lib/blob: add option to enable extent pages
This is an additional option that can be passed when creating
a blob.

When opts->enable_extent_pages is set to false (current default),
only EXTENT_RLE should be persisted on sync.
During blob load, when EXTENT_RLE is present in md,
blob->extent_rle_found is set to true.

When opts->enable_extent_pages is set to true,
only EXTENT_TABLE and EXTENT_PAGES should be persisted on sync.
During blob load, when EXTENT_TABLE is present in md,
blob->extent_table_found is set to true.

It is possible to find neither EXTENT_* descriptor when loading a blob.
This means that blob length is 0 and EXTENT_RLE was supposed to be used.
Yet none were persisted due to lack of clusters.
In such case blob->use_extent_table is set to true after finishing
blob load.

When parsing metadata ends, if extent_table_found is set - then
support for extent_table is enabled. All other cases disable it.

At this time path for Extent Pages is not implemented, so it should
not be used.
Later in the series, it will become the default path for serialization.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I2146da6130a0645e686ab02a3b5d2d86a7d35a1f
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/479853
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2020-01-27 18:06:43 +00:00
..
assert.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
barrier.h barrier: cleanup the file 2019-03-15 19:32:55 +00:00
base64.h util/base64: add base64 lib and unit tests 2018-07-19 00:50:54 +00:00
bdev_module.h bdev: Add spdk_bdev_io_get_nvme_fused_status function 2020-01-27 17:39:52 +00:00
bdev_zone.h lib/bdev: Added spdk_bdev_zone_append() 2019-10-01 14:48:54 +00:00
bdev.h bdev: Add spdk_bdev_get_acwu function 2020-01-27 17:39:52 +00:00
bit_array.h util: added bit array bitmask load, store and clear 2018-12-14 15:34:53 +00:00
blob_bdev.h blob_bdev: add spdk_bdev_create_bs_dev_from_desc 2019-09-18 02:59:59 +00:00
blob.h lib/blob: add option to enable extent pages 2020-01-27 18:06:43 +00:00
blobfs_bdev.h blobfs/fuse: put FUSE code in module blobfs_bdev 2019-10-15 16:25:09 +00:00
blobfs.h blobfs: add result for set_cache_size 2019-11-07 00:33:25 +00:00
conf.h include/conf: add comments for public APIs 2018-02-26 11:59:09 -05:00
copy_engine.h include/copy_engine.h: add comments for callback functions 2018-05-28 01:45:03 +00:00
cpuset.h cpuset: Expose internal of struct spdk_cpuset in header file 2019-07-04 00:30:22 +00:00
crc16.h util/crc16: Add spdk_crc16_t10dif_copy to use in read strip and write insert 2018-12-20 17:52:29 +00:00
crc32.h util: Move architecture detection to crc32c.c 2019-02-04 19:14:22 +00:00
dif.h dif: Add spdk_dix_remap_ref_tag to remap ref. tag for separate metadata payload 2019-07-11 11:14:22 +00:00
endian.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
env_dpdk.h env: add a new function for printing memory layout 2019-12-13 11:05:57 +00:00
env.h env: add spdk_pci_device_get_type 2019-10-24 17:04:04 +00:00
event.h lib/event: Rename context switch monitoring APIs to be concise 2020-01-03 08:33:25 +00:00
fd.h include/fd.h: add comments for pubclic APIs 2018-01-04 12:12:10 -05:00
file.h util: add a new file operation API 2019-05-15 18:54:27 +00:00
ftl.h lib/ftl: Change "lbk" name to "block" 2020-01-17 08:59:08 +00:00
gpt_spec.h bdev/gpt: dump partition name 2017-07-12 18:12:52 -04:00
histogram_data.h histograms: add function to merge histograms 2018-11-15 23:03:26 +00:00
io_channel.h thread: Rename io_channel.h to thread.h 2018-06-12 15:24:07 +00:00
ioat_spec.h ioat_spec: fix gcc9 warning 2019-06-17 14:09:03 +00:00
ioat.h ioat: add APIs to only build descriptors 2019-02-18 07:44:17 +00:00
iscsi_spec.h iscsi: fix layout of logout request reason field 2017-09-22 16:11:11 -04:00
json.h json: add utilities function enabling itaration over JSON object 2018-10-18 16:07:37 +00:00
jsonrpc.h jsonrpc: always allocate response for request 2019-07-19 20:56:54 +00:00
likely.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
log.h lib/log: passing va_list to user-provided log call 2019-10-09 14:35:51 +00:00
lvol.h lvol: ensure enum for lvol clear method is the same as blobstore 2019-02-28 20:50:27 +00:00
mmio.h mmio: add functions for 1 and 2 byte I/O accesses 2017-10-13 10:46:00 -04:00
nbd.h nbd: Remove unused spdk_event forward declaration 2019-04-23 20:22:55 +00:00
net.h net: make the net initialization in a correct way 2018-12-20 01:37:50 +00:00
notify.h lib/notify: rename spdk_notify_get_events to spdk_notify_foreach_event 2019-05-07 06:11:27 +00:00
nvme_intel.h nvme: pad struct spdk_nvme_intel_marketing_description_page 2019-06-05 02:46:50 +00:00
nvme_ocssd_spec.h ocssd: add chunk notification log struct 2018-09-27 01:30:45 +00:00
nvme_ocssd.h ocssd: add chunk notification log struct 2018-09-27 01:30:45 +00:00
nvme_spec.h nvmf: Add call support for compare and write cmd in spdk_nvmf_ctrlr_process_io_cmd 2020-01-27 17:39:52 +00:00
nvme.h lib/nvme: add functions for registering new transports 2020-01-16 09:10:38 +00:00
nvmf_fc_spec.h nvme: define SPDK_NVME_NQN_FIELD_SIZE 2019-12-23 08:44:10 +00:00
nvmf_spec.h lib/nvme: update trid struct with trstring. 2020-01-16 09:10:38 +00:00
nvmf.h nvmf/tcp: Simplify qpair resource initialization 2020-01-27 17:42:24 +00:00
opal_spec.h opal: Add multiuser support 2019-07-22 04:32:59 +00:00
opal.h Opal: Add async function for revert TPer 2019-10-24 17:09:57 +00:00
pci_ids.h pci_ids: add virtio-vhost-user device id 2019-06-03 20:11:22 +00:00
pipe.h pipe: Add a utility for buffering data from sockets 2019-11-20 09:35:32 +00:00
queue_extras.h queue_extras: use SPDK_CONTAINEROF 2019-10-07 15:06:01 +00:00
queue.h queue: redefine TAILQ_REMOVE for scan-build 2019-07-26 19:28:31 +00:00
reduce.h lib/reduce: change and move the max IOVEC define for reduce 2019-07-29 04:36:59 +00:00
rpc.h rpc: add spdk_rpc_verify_methods() 2019-11-06 15:19:48 +00:00
scsi_spec.h scsi: fix SCSI reservation typos 2019-05-30 21:42:36 +00:00
scsi.h lib/scsi: Pass SCSI task to SCSI layer to get DIF context 2019-11-21 08:01:29 +00:00
sock.h sock/posix: Zero copy send 2020-01-27 17:42:24 +00:00
stdinc.h env: Check supported iommu address width before using iova-mode=va 2019-11-27 07:08:32 +00:00
string.h string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
thread.h lib/thread: Add spdk_thread_send_critical_msg function 2020-01-13 12:42:37 +00:00
trace.h trace: shorten max name from 44 to 24 characters 2019-05-02 08:41:56 +00:00
util.h util: add SPDK_ALIGN_FLOOR/CEIL macro definition 2020-01-10 08:45:45 +00:00
uuid.h util/uuid: add a new uuid copy API. 2018-12-06 22:25:09 +00:00
version.h build/rpc: Add git sha1 to SPDK version macro 2019-11-14 03:46:17 +00:00
vhost.h vhost: add completion callback to lib init 2019-05-02 17:06:34 +00:00
vmd.h lib/vmd: Documentation and user guide 2019-11-15 18:21:23 +00:00