#
a6dbe372 |
| 01-Nov-2022 |
paul luse <paul.e.luse@intel.com> |
update Intel copyright notices
per Intel policy to include file commit date using git cmd below. The policy does not apply to non-Intel (C) notices.
git log --follow -C90% --format=%ad --date defa
update Intel copyright notices
per Intel policy to include file commit date using git cmd below. The policy does not apply to non-Intel (C) notices.
git log --follow -C90% --format=%ad --date default <file> | tail -1
and then pull just the 4 digit year from the result.
Intel copyrights were not added to files where Intel either had no contribution ot the contribution lacked substance (ie license header updates, formatting changes, etc). Contribution date used "--follow -C95%" to get the most accurate date.
Note that several files in this patch didn't end the license/(c) block with a blank comment line so these were added as the vast majority of files do have this last blank line. Simply there for consistency.
Signed-off-by: paul luse <paul.e.luse@intel.com> Change-Id: Id5b7ce4f658fe87132f14139ead58d6e285c04d4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15192 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
#
d8a3dee1 |
| 05-Sep-2022 |
Damiano <damiano@localhost.localdomain> |
blob: Add functions to find [un]allocated io_unit
These functions start from a given offset and seek for first io_unit belonging to an allocated cluster or first io_unit belonging to an unallocated
blob: Add functions to find [un]allocated io_unit
These functions start from a given offset and seek for first io_unit belonging to an allocated cluster or first io_unit belonging to an unallocated cluster
Signed-off-by: Damiano Cipriani <damiano.cipriani@suse.com> Change-Id: I0c632e2b3dfd2e96aa22e21796e25a36f2f55f9f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14360 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
#
fa09c9ac |
| 20-Jul-2022 |
vagrant <vagrant@ubuntu2004.localdomain> |
lib/blob: Fix deleting a snapshot after decoupling it from its parent
When decoupling a snapshot from its parent, we need to clear its parent. So we should remove the xattr BLOB_SNAPSHOT. Modifying
lib/blob: Fix deleting a snapshot after decoupling it from its parent
When decoupling a snapshot from its parent, we need to clear its parent. So we should remove the xattr BLOB_SNAPSHOT. Modifying the xattrs of a blob only works if its metadata are not in read-only mode. By default, a snapshot is in read-only mode so this operation fails. When we later want to delete the snapshot, we will see that it has a parent, so we will try to remove the snapshot from its parent's clones list. This will cause a crash. The fix is to remove the BLOB_SNAPSHOT xattr only after setting the snapshot's metadata in rw mode.
Signed-off-by: Alex Michon <amichon@kalrayinc.com> Change-Id: I80efa6dd3dcb38b4c738ce2e97aa2ffc281cefa5 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13723 Community-CI: Mellanox Build Bot 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: Aleksey Marchuk <alexeymar@nvidia.com>
show more ...
|
Revision tags: v22.01-rc1, v21.10, v21.10-rc1 |
|
#
1f0b8df7 |
| 05-Oct-2021 |
yupeng <yupeng0921@gmail.com> |
blobstore: implement spdk_bs_grow and bdev_lvol_grow_lvstore RPC
The bdev_lvol_grow_lvstore will grow the lvstore size if the undering bdev size is increased. It invokes spdk_bs_grow internally. The
blobstore: implement spdk_bs_grow and bdev_lvol_grow_lvstore RPC
The bdev_lvol_grow_lvstore will grow the lvstore size if the undering bdev size is increased. It invokes spdk_bs_grow internally. The spdk_bs_grow will extend the used_clusters bitmap. If there is no enough space resereved for the used_clusters bitmap, the api will fail. The reserved space was calculated according to the num_md_pages at blobstore creating time.
Signed-off-by: Peng Yu <yupeng0921@gmail.com> Change-Id: If6e8c0794dbe4eaa7042acf5031de58138ce7bca Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9730 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
#
8dd1cd21 |
| 22-Jun-2022 |
Ben Walker <benjamin.walker@intel.com> |
check_format: For C files only, fix return type breaks
In SPDK, declarations have the return type on the same line. Definitions have the return type on a separate line. Astyle has an option for enfo
check_format: For C files only, fix return type breaks
In SPDK, declarations have the return type on the same line. Definitions have the return type on a separate line. Astyle has an option for enforcing this. Unfortunately, it seems to have two bugs:
1) It doesn't work correctly at all on C++ files. 2) It often fails on functions that return enums, or long type names
Deal with 1) by adjusting the check_format.sh script to only tell astyle to fix return type line breaks for C files and not C++. Deal with 2) by adding a few typedefs to work around the problem.
Change-Id: Idf28281466cab8411ce252d5f02ab384166790c6 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13437 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
show more ...
|
#
488570eb |
| 03-Jun-2022 |
Jim Harris <james.r.harris@intel.com> |
Replace most BSD 3-clause license text with SPDX identifier.
Many open source projects have moved to using SPDX identifiers to specify license information, reducing the amount of boilerplate code in
Replace most BSD 3-clause license text with SPDX identifier.
Many open source projects have moved to using SPDX identifiers to specify license information, reducing the amount of boilerplate code in every source file. This patch replaces the bulk of SPDK .c, .cpp and Makefiles with the BSD-3-Clause identifier.
Almost all of these files share the exact same license text, and this patch only modifies the files that contain the most common license text. There can be slight variations because the third clause contains company names - most say "Intel Corporation", but there are instances for Nvidia, Samsung, Eideticom and even "the copyright holder".
Used a bash script to automate replacement of the license text with SPDX identifier which is checked into scripts/spdx.sh.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Iaa88ab5e92ea471691dc298cfe41ebfb5d169780 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12904 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: <qun.wan@intel.com>
show more ...
|
#
1eca87c3 |
| 01-Apr-2022 |
Alexey Marchuk <alexeymar@mellanox.com> |
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,
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>
show more ...
|
#
a2360845 |
| 31-Jan-2022 |
Alexey Marchuk <alexeymar@mellanox.com> |
blob: Add readv/writev_ext functions
These function accept optional spdk_blob_ext_io_opts structure. If this structure is provided by the user then readv/writev_ext ops of base dev will be used in d
blob: Add readv/writev_ext functions
These function accept optional spdk_blob_ext_io_opts structure. If this structure is provided by the user then readv/writev_ext ops of base dev will be used in data path
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com> Change-Id: I370dd43f8c56f5752f7a52d0780bcfe3e3ae2d9e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11371 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
show more ...
|
#
ba8f1a9e |
| 31-Jan-2022 |
Alexey Marchuk <alexeymar@mellanox.com> |
blob: Add readv/writev ext ops to spdk_bs_dev
Introduce spdk_blob_ext_io_opts structure which is used in the new *_ext functions. Zeroes dev is updated with implementation of readv_ext which uses m
blob: Add readv/writev ext ops to spdk_bs_dev
Introduce spdk_blob_ext_io_opts structure which is used in the new *_ext functions. Zeroes dev is updated with implementation of readv_ext which uses memory domains memzero or regular memset().
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com> Change-Id: Id94542196eff999827bf00591fd43804256fccb4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11369 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
show more ...
|
#
b66f8df7 |
| 12-Jan-2022 |
Mike Gerdts <mgerdts@nvidia.com> |
blob_ut: bs_opts initialized with wrong size
An spdk_bs_opts structure is sometimes partially initialized due to using sizeof(opts) (struct spdk_blob_opts, 64 bytes) rather than sizeof(bs_opts) (str
blob_ut: bs_opts initialized with wrong size
An spdk_bs_opts structure is sometimes partially initialized due to using sizeof(opts) (struct spdk_blob_opts, 64 bytes) rather than sizeof(bs_opts) (struct spdk_bs_opts, 72 bytes).
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: Iaaa89bb419f66969d0888f49f8991c35b3dc5ea4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11268 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
show more ...
|
#
10f32b9f |
| 01-Dec-2021 |
GangCao <gang.cao@intel.com> |
lib/blob: do not assume realloc(NULL, 0) returns a not-NULL value
There is situation that num_extent_pages is zero and original pointer is also NULL, the realloc() could return a Not NULL pointer.
lib/blob: do not assume realloc(NULL, 0) returns a not-NULL value
There is situation that num_extent_pages is zero and original pointer is also NULL, the realloc() could return a Not NULL pointer.
Related UT has been added and updated. 1) In the default allocation (num_clusters == 0), the extent_pages is not allocated as expected. 2) In the thin provisioning allocation (num_clusters != 0), the extent_pages will be allocated if extent_table is used.
More related information as below:
The crux of the problem is that according to POSIX:
realloc: "If ptr is NULL, then the call is equivalent to malloc(size)" malloc: "If size is 0, then malloc returns either NULL or a unique pointer value that can later be successfully passed to free"
blobstore was relying on realloc(NULL, 0) always return a unique pointer value, and not NULL. This is not portable behavior.
Change-Id: Ibc28d9696f15a3c0e2aa6bb2371dc23576c28954 Signed-off-by: GangCao <gang.cao@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10470 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|
#
c9c7c281 |
| 25-Nov-2021 |
Josh Soref <jsoref@gmail.com> |
spelling: test
Part of #2256
* achieve * additionally * against * aliases * already * another * arguments * between * capabilities * comparison * compatibility * configuration * continuing * contro
spelling: test
Part of #2256
* achieve * additionally * against * aliases * already * another * arguments * between * capabilities * comparison * compatibility * configuration * continuing * controlq * cpumask * default * depends * dereferenced * discussed * dissect * driver * environment * everything * excluded * existing * expectation * failed * fails * following * functions * hugepages * identifiers * implicitly * in_capsule * increment * initialization * initiator * integrity * iteration * latencies * libraries * management * namespace * negotiated * negotiation * nonexistent * number * occur * occurred * occurring * offsetting * operations * outstanding * overwhelmed * parameter * parameters * partition * preempts * provisioned * responded * segment * skipped * struct * subsystem * success * successfully * sufficiently * this * threshold * transfer * transferred * unchanged * unexpected * unregistered * useless * utility * value * variable * workload
Change-Id: I21ca7dab4ef575b5767e50aaeabc34314ab13396 Signed-off-by: Josh Soref <jsoref@gmail.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10409 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
#
304153e5 |
| 02-Aug-2021 |
yupeng <yupeng0921@gmail.com> |
blobstore: calculate correct num_md_clusters in bs_recover
The current num_md_clusters doesn't include the the part before md_start. So the bs_recover will get more num_free_clusters than it should
blobstore: calculate correct num_md_clusters in bs_recover
The current num_md_clusters doesn't include the the part before md_start. So the bs_recover will get more num_free_clusters than it should be. This patch can fix it.
Signed-off-by: Peng Yu <yupeng0921@gmail.com> Change-Id: I911926beb69aca677da508ba71f292496c917e7f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9034 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
Revision tags: v21.07, v21.07-rc1 |
|
#
56d702ab |
| 23-Jul-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
lib/blob: use bs_allocate_and_copy_cluster() in inflate
Using `bs_allocate_and_copy_cluster()` instead of a zero-length write makes it possible to inflate/decouple snapshots, as the writes would fai
lib/blob: use bs_allocate_and_copy_cluster() in inflate
Using `bs_allocate_and_copy_cluster()` instead of a zero-length write makes it possible to inflate/decouple snapshots, as the writes would fail with -EPERM, because the snapshots are marked as read-only.
Additionally, zero-length non-vector requests are now completed immediately. It makes it consistent with the vector path (which already does that) and allows us to use the zero-length reads as a context for cluster copy.
Fixes #2028.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: Ib7fdee352972ecf808833aa179820d85cfab7eed Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8918 Community-CI: Mellanox Build Bot 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>
show more ...
|
#
68063cd8 |
| 13-Jul-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: force md update during decouple parent
Fixes #1933
When decoupling parent the updated parent_id was not persisted to the blob if it was a snapshot. Due to having md_ro set to true, blob_s
lib/blob: force md update during decouple parent
Fixes #1933
When decoupling parent the updated parent_id was not persisted to the blob if it was a snapshot. Due to having md_ro set to true, blob_set_xattr() failed.
Later on the incorrect parent_id could cause troubles like in the github issue, when deleting that snapshot.
This patch adds return code check for blob_set_xattr and forces md_ro to false during blob md sync.
Since some of code paths are shared between decouple, inflate and clone operations, the final callback for them is doing revert of the original md_ro.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: If017455f72e4d809fe533d9f986e5ae6bb8e2035 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8420 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
Revision tags: v21.04 |
|
#
a8fe6018 |
| 27-Apr-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: delay executing blob persist completions
This helps in next patch in series where multiple completions will be executing.
UT is adjusted since one additional poll is required.
Signed-off
lib/blob: delay executing blob persist completions
This helps in next patch in series where multiple completions will be executing.
UT is adjusted since one additional poll is required.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Id72377ddef91e40cdbc2bdea6f33c23309b0ca3d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7642 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
show more ...
|
#
958364b4 |
| 27-Apr-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: only verify cluster allocation when I/O is not frozen
During snapshot creation the original blob becomes a thin provisioned blob that will only the diff of data after snapshot creation.
D
lib/blob: only verify cluster allocation when I/O is not frozen
During snapshot creation the original blob becomes a thin provisioned blob that will only the diff of data after snapshot creation.
Despite the comment in the UT the number of polls before issuing blob write was hitting blob BEFORE it swapped with new one.
Issuing I/O during this period shall check for io freeze before checking cluster allocation.
Otherwise bs_io_unit_is_allocated() hits assert for thin provisioned blob. This is because cluster map of blob is empty, but properties have not been updated yet.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I742e1a50b14d456ae1e6de13b5111caec3e8322c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7641 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
show more ...
|
Revision tags: v21.04-rc1 |
|
#
1f5364e8 |
| 23-Mar-2021 |
Jim Harris <james.r.harris@intel.com> |
test/blob: verify number of extent page writes
New UT verifies number of extent page writes for thin provisioned blobs.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Signed-off-by: Tomasz Za
test/blob: verify number of extent page writes
New UT verifies number of extent page writes for thin provisioned blobs.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I6b52195d26c3c1414ca862b03e8a3043bbe29b42 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7017 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
#
0aed63f0 |
| 02-Apr-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
ut/blob: avoid modifying blob state in simultaneous sync test
This patch addresses couple issues: 1) Before issuing the md syncs the previous steps in test left blob state in dirty state already. Th
ut/blob: avoid modifying blob state in simultaneous sync test
This patch addresses couple issues: 1) Before issuing the md syncs the previous steps in test left blob state in dirty state already. The resize never had a chance to apply. This patch adds a proper md sync and polls for completion.
2) Changing blob state is something that should be done via API. In order for dirty state to apply immidietly set_xattr is now used instead.
3) Verify test state in callbacks to make sure not only the number of completions is correct, but their order.
This patch is introduced because of the test originally worked only because of the extent pages always writing out its pages. The second sync always was delayed because of this. Meanwhile that should not be the case, since no MD or EP modification was done.
Later in the series Extent Pages are fixed, but this test remained incorrect.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Iac17c27f6ff83f2b79835aa6e48472d5293c44d0 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7233 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
Revision tags: v21.01.1, v21.01, v21.01-rc1 |
|
#
b47f0f20 |
| 23-Dec-2020 |
Ziye Yang <ziye.yang@intel.com> |
blob: Make the ABI compatibility of spdk_blob_opts structure.
Change-Id: I1b1806864783e944d8f55c9393228a1954051236 Signed-off-by: Ziye Yang <ziye.yang@intel.com> Reviewed-on: https://review.spdk.io/
blob: Make the ABI compatibility of spdk_blob_opts structure.
Change-Id: I1b1806864783e944d8f55c9393228a1954051236 Signed-off-by: Ziye Yang <ziye.yang@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5687 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
show more ...
|
#
3de9887d |
| 23-Dec-2020 |
Ziye Yang <ziye.yang@intel.com> |
blob: Make the ABI compatibility for spdk_bs_opts
The purpose of this patch is to make spdk_bs_opts for compatiblity issue.
Signed-off-by: Ziye Yang <ziye.yang@intel.com> Change-Id: I26d2a6bc644fee
blob: Make the ABI compatibility for spdk_bs_opts
The purpose of this patch is to make spdk_bs_opts for compatiblity issue.
Signed-off-by: Ziye Yang <ziye.yang@intel.com> Change-Id: I26d2a6bc644feede64d48890c7903f224b1fc306 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5681 Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
show more ...
|
Revision tags: v20.10, v20.10-rc1 |
|
#
b94d358a |
| 15-Oct-2020 |
Jim Harris <james.r.harris@intel.com> |
remove unneeded spdk_internal/thread.h includes
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I488d7c9441302847b170cd3b2a835ecad74cd031 Reviewed-on: https://review.spdk.io/gerrit/c
remove unneeded spdk_internal/thread.h includes
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I488d7c9441302847b170cd3b2a835ecad74cd031 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4718 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ziye Yang <ziye.yang@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
show more ...
|
#
7f139e54 |
| 17-Sep-2020 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: extent_page shall never occupy md page 0
Search for md_page to be used as extent page started from 0, which is completely valid md_page.
This page can be free when for example blob with i
lib/blob: extent_page shall never occupy md page 0
Search for md_page to be used as extent page started from 0, which is completely valid md_page.
This page can be free when for example blob with id 0 was deleted and some other requested a new page for extent.
There are already existing blobs that have extents pointing to 0, which means unallocated. Unfortunetly it means 0 can never mean md page 0. If that already occured for someone, this extent page was already lost during blob/bs reload and nothing can be done.
With this in mind following assumptions are made for extent pages: - 0 means unallocated extent page - UINT32_MAX means we ran out of md pages, and should not be persisted - [NEW] extent page can never occupy md page 0
That last one is new addition in this patch. bs_allocate_cluster will now always try to find md page from 1 or higher.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ia17ce5bbca2fab4fb4487e4e263f3a0aa120bf17 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4314 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
show more ...
|
#
63e257ed |
| 02-Oct-2020 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: update pages array during blob load
When loading a blob and parsing its metadata, the array of pages was not updated. Serialization was unaffected, since the current pages array is unused
lib/blob: update pages array during blob load
When loading a blob and parsing its metadata, the array of pages was not updated. Serialization was unaffected, since the current pages array is unused there. Behavior was working correctly for first page, but did not for any blob with more than one page.
Unfortunetly blob_persist_zero_pages() never zeroed out the pages, neither blob_persist_zero_pages_cpl() released the md pages.
Resulting in md pages being claimed even after blobs deletion.
This patch now fills out the active pages array with the appropriate page numbers from metadata.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I6ff1f4fe95684119d283c2471fdbbea464da8151 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4504 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
show more ...
|
#
bd16f574 |
| 28-Aug-2020 |
Jim Harris <james.r.harris@intel.com> |
blob: switch to bit_pool for tracking used_clusters
We still need to be able to explicitly set specific bits in the cluster array during initialization and loading (especially recovery), so we use a
blob: switch to bit_pool for tracking used_clusters
We still need to be able to explicitly set specific bits in the cluster array during initialization and loading (especially recovery), so we use a bit_array during load, and then convert it to a bit_pool just before calling the user's cmopletion callback.
This gives a roughly 300% improvement over baseline on a benchmark which does continuous resize operations. The benefit is primarily from saving the lowest free bit rather than having to always start at bit 0. We may be able to further improve this by saving extents in the bit pool as well, although after this patch, the benchmark shows other hot spots different from the bit search.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Idb1d75d8348bc50560b1f42d49dbe4d79d024619
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3975 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|