Spdk/lib/blob
Alexey Marchuk 1eca87c39c blobstore: Preallocate md_page for new cluster
When a new cluster is added to a thin provisioned blob,
md_page is allocated to update extents in base dev
This memory allocation reduces perfromance, it can
take 250usec - 1 msec on ARM platform.

Since we may have only 1 outstainding cluster
allocation per io_channel, we can preallcoate md_page
on each channel and remove dynamic memory allocation.

With this change blob_write_extent_page() expects
that md_page is given by the caller. Sicne this function
is also used during snapshot deletion, this patch also
updates this process. Now we allocate a single page
and reuse it for each extent in the snapshot.

Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Change-Id: I815a4c8c69bd38d8eff4f45c088e5d05215b9e57
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12129
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-05-18 09:02:02 +00:00
..
blob_bs_dev.c blob: Add readv/writev_ext functions 2022-05-16 10:14:26 +00:00
blobstore.c blobstore: Preallocate md_page for new cluster 2022-05-18 09:02:02 +00:00
blobstore.h blobstore: Preallocate md_page for new cluster 2022-05-18 09:02:02 +00:00
Makefile so_ver: increase all major versions 2022-01-31 15:29:56 +00:00
request.c blob: Add readv/writev_ext functions 2022-05-16 10:14:26 +00:00
request.h blob: Add readv/writev_ext functions 2022-05-16 10:14:26 +00:00
spdk_blob.map blob: Add readv/writev_ext functions 2022-05-16 10:14:26 +00:00
zeroes.c blob: Add readv/writev ext ops to spdk_bs_dev 2022-05-16 10:14:26 +00:00