| #
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 |
|
| #
d60fa400 |
| 23-Jul-2021 |
Konrad Sztyber <konrad.sztyber@intel.com> |
lib/blob: add missing dereference in blob_get_snapshot_and_clone_entries
The assertion should verify that a clone has been found. Without the dereference, it makes no sense, as that pointer is dere
lib/blob: add missing dereference in blob_get_snapshot_and_clone_entries
The assertion should verify that a clone has been found. Without the dereference, it makes no sense, as that pointer is dereferenced earlier.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I67fa17b33df6d507822a17ffc221a6d360985646 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8919 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> Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|
| #
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 ...
|
| #
aafc440e |
| 13-Jun-2021 |
Zhiqiang Liu <liuzhiqiang26@huawei.com> |
blobstore:fix memleak problem in blob_load_cpl()
In blob_load_cpl(), spdk_realloc() is called to realloc memory of ctx->pages. If spdk_realloc() return NULL, the ctx->pages is set to NULL without be
blobstore:fix memleak problem in blob_load_cpl()
In blob_load_cpl(), spdk_realloc() is called to realloc memory of ctx->pages. If spdk_realloc() return NULL, the ctx->pages is set to NULL without being freed, and then a memleak problem occurs.
Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com> Change-Id: Idf21b690e89beab0245ba57a5de66a4f506d54fb Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8308 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
| #
c269de97 |
| 13-Jun-2021 |
Zhiqiang Liu <liuzhiqiang26@huawei.com> |
blobstore: fix potential memleak problem in blob_serialize_add_page()
In blob_serialize_add_page(), *pages is set to spdk_realloc(*pages). If spdk_realloc() returns NULL, the *pages pointer will be
blobstore: fix potential memleak problem in blob_serialize_add_page()
In blob_serialize_add_page(), *pages is set to spdk_realloc(*pages). If spdk_realloc() returns NULL, the *pages pointer will be overridden, whose memory will leak.
Here, we introduce a new var (tmp_pages) for checking the return value of spdk_realloc(*pages).
Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com> Change-Id: Ib2ead3f3b5d5e44688d1f0568816f483aa9e101f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8307 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
| #
42ad9d03 |
| 21-May-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: resize open_blobids on bs load
open_blobids holds bit array of currently open blobs, this is a way for quicker determination than iterating over all blobs. See patch introducing it: (30ee8
lib/blob: resize open_blobids on bs load
open_blobids holds bit array of currently open blobs, this is a way for quicker determination than iterating over all blobs. See patch introducing it: (30ee8137)blob: Add a bitmask for quickly checking which blobs are open
That patch added resizes of this bit array to bs init and bs recovery path (not shut down cleanly).
But that patch skipped over bs load from a clean shutdown. This resulted in blob open having multiple blob pointers that target the same blob id.
Fixes #1937
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I3c42a63d168d1f5b013b449f010c5b207936045b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7998 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> Reviewed-by: Ziye Yang <ziye.yang@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
|
Revision tags: v21.04 |
|
| #
ceaa0c7f |
| 27-Apr-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: complete multiple persists
When blob persist starts, there can already be multiple of such requests pending. It is possible to complete a set of persists at once, if blob state after their
lib/blob: complete multiple persists
When blob persist starts, there can already be multiple of such requests pending. It is possible to complete a set of persists at once, if blob state after their execution would be the same. This is the case when persists are already pending when a particular persist request is started.
This patch implements such mechanism by introducing persists_to_complete queue, containing entries that were previously queued up before starting the current persist request. If there are any entries in this queue, further requests are put into pending_persists.
When first request from persists_to_complete is persisted, completions are issued for all requests on that queue at once. If at that point there are any new entries on pending_persists, all of them are put into persists_to_complete. Persist process is started again with the first request from that queue.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I10063e55d6f821b1863de016d3148da6a719a422 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7643 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
show more ...
|
| #
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 ...
|
| #
50935184 |
| 27-Apr-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: force execution of queued persists
When performing snapshot creation the I/O is frozen during the process. The blob persists for extent page allocation is delayed until snapshot creation i
lib/blob: force execution of queued persists
When performing snapshot creation the I/O is frozen during the process. The blob persists for extent page allocation is delayed until snapshot creation is finished.
This results in multiple blob persists executing one after the other, with only intent of writing out updated extent table pointing to new extent pages. Since blob->state is marked DIRTY before issuing each persist, but a single persist completion marks state CLEAR.
Blob serialize correctly expects each persist to contain dirtied metadata, in order to avoid unnecessary md writes. Since all other instances of marking blob DIRTY is explicit, assert in blob serialize is left as is.
Instead when running the queued up blob persists, the blob state is marked DIRTY.
Side effect is that it will write out same md in some cases.
Fixes #1909
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I39f37299f3f0ebfccbdd4063781b5ecce286e993 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7640 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
show more ...
|
|
Revision tags: v21.04-rc1 |
|
| #
ae10cf63 |
| 01-Apr-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: do not write extent pages during md sync for thin blobs
Before this patch blob persist wrote out all allocated extent pages.
Intended design was to write out extent pages in two cases: 1)
lib/blob: do not write extent pages during md sync for thin blobs
Before this patch blob persist wrote out all allocated extent pages.
Intended design was to write out extent pages in two cases: 1) Thin provisioned blobs to write out extent pages when necessary during cluster allocation. 2) Thick provisioned blobs to write extent pages during blob persist when the blob was resized
This patch implements 1) by inserting extent before issuing blob persist in cluster allocation path. See blob_persist_extent_page_cpl() and blob_insert_new_ep_cb(). Blob persist might have to rewrite the last extent page after blob resize. See blob_persist_start().
Meanwhile 2) was incorrecly implemented since it always re-wrote all extent pages starting from 0. This was addressed by limiting number of extent pages written, only to ones that were resized. Some considerations were needed: a) blob resize happen on cluster granularity, it might be needed to re-write last extent page if resize was not large enough to change number of extent pages b) first extent page to write should be based on the num_extent_pages from active or clean, depending on resize direction See blob_persist_start().
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ibba9e3de3aadb64c1844a462eb0246e4ef65d37f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7202 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 ...
|
| #
a5122145 |
| 15-Apr-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: update extent pages during snapshot deletion
When both clone and snapshot had already extent pages corresponding to the same region in cluster map, the clone extent page was replaced with
lib/blob: update extent pages during snapshot deletion
When both clone and snapshot had already extent pages corresponding to the same region in cluster map, the clone extent page was replaced with one from snapshot.
This was incorrect and would result in loss of clusters from clones extent page. It did not occur in practice because all extent pages were rewritten anyway during md sync. Cluster map was correct so updated extent pages were too.
Cluster map correctness is verified in UT _blob_inflate_rw(true), at the very end when checking data consistency of inflated blob.
This patch writes out the updated extent page explicitly. So it would be possible to skip wirting out extent pages during md sync later in the series.
Note 1) At this point in series the extent page is written here, and in blob persists. The later will be removed later in series.
Note 2) Errors during updating extent pages are not accounted for, but neither does syncing them in blob persist.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I7deac3c64299f33f8df49e860af1a16295c074e6 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7438 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 ...
|
| #
bc9da1c6 |
| 22-Apr-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: rename blob_insert_extent to blob_write_extent_page
The blob_insert_extent() name was confusing, since the function was actually responsible for writting out the extent page to disk. Chang
lib/blob: rename blob_insert_extent to blob_write_extent_page
The blob_insert_extent() name was confusing, since the function was actually responsible for writting out the extent page to disk. Changed to a more fitting name.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ia312b0ef152100f30d5a1bfe123e55135c8afa6e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7561 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 ...
|
| #
9c3895b6 |
| 16-Apr-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
lib/blob: refactor extent page updates during snapshot deletion
This patch does not change functionality. It separates three stages of updating clone during snapshot deletion: - updating cluster map
lib/blob: refactor extent page updates during snapshot deletion
This patch does not change functionality. It separates three stages of updating clone during snapshot deletion: - updating cluster map - updating extent pages - removing backing device from clone
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I44869f3be596d9d0f06db4acedfdd7e1500516ff Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7437 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>
show more ...
|
|
Revision tags: v21.01.1, v21.01, v21.01-rc1 |
|
| #
9472eecb |
| 28-Dec-2020 |
Ziye Yang <ziye.yang@intel.com> |
blob: Make the ABI compatibility of spdk_blob_open_opts structure.
Signed-off-by: Ziye Yang <ziye.yang@intel.com> Change-Id: I8627347f44f0a9cb4b50f41ac5effae18b427c6d Reviewed-on: https://review.spd
blob: Make the ABI compatibility of spdk_blob_open_opts structure.
Signed-off-by: Ziye Yang <ziye.yang@intel.com> Change-Id: I8627347f44f0a9cb4b50f41ac5effae18b427c6d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5701 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 ...
|
| #
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 |
|
| #
3790a412 |
| 07-Sep-2020 |
Sochin Jiang <jiangxiaoqing.sochin@bytedance.com> |
lib/blob: try best to merge the contiguous clusters
blob_persist_clear_clusters() issues 'unmap' or 'write_zeroes' IOs in one batch, this can consumes lots of 'bdev_io's. we need to try best to merg
lib/blob: try best to merge the contiguous clusters
blob_persist_clear_clusters() issues 'unmap' or 'write_zeroes' IOs in one batch, this can consumes lots of 'bdev_io's. we need to try best to merge the contiguous clusters especially in the following case:
cluster 0: LBA 128 (count = 128) cluster 1: LBA 0 (meaning thin provisioned, no cluster allocated) cluster 2: LBA 256 (count = 128)
Besides, in the long run, we may need to do this batch by sequence.
Signed-off-by: Sochin Jiang <jiangxiaoqing.sochin@bytedance.com> Change-Id: I436c8b46a1ee33ec127d0f43fd85b2c443689b59 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4082 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: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
show more ...
|
| #
894175de |
| 11-Dec-2020 |
Jim Harris <james.r.harris@intel.com> |
blob: add more detail to bs_load_use_pages_cpl assert
We have an intermittent CI failure that hits this assert. Adding some more detail to help analyze and root cause.
Signed-off-by: Jim Harris <j
blob: add more detail to bs_load_use_pages_cpl assert
We have an intermittent CI failure that hits this assert. Adding some more detail to help analyze and root cause.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I2174dda58d0ae4d98359a914e5975f8be3e45a89 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5550 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
| #
750cfa17 |
| 16-Nov-2020 |
guozhihong <guozhihong@bytedance.com> |
fix a bug of clear extents during blob persist md
Signed-off-by: guozhihong <guozhihong@bytedance.com> Change-Id: Ief3fbc1754dedf424419dc98bebac8d73196377e Reviewed-on: https://review.spdk.io/gerrit
fix a bug of clear extents during blob persist md
Signed-off-by: guozhihong <guozhihong@bytedance.com> Change-Id: Ief3fbc1754dedf424419dc98bebac8d73196377e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5106 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
| #
b8c99a3a |
| 17-Nov-2020 |
Nick Connolly <nick.connolly@mayadata.io> |
lib: Use PRId64 for portability
POSIX defines PRId64/PRIu64/PRIx64 for printing 64-bit values in a portable way. Replace a few references to %ld to remove the assumption about the size of a long. Si
lib: Use PRId64 for portability
POSIX defines PRId64/PRIu64/PRIx64 for printing 64-bit values in a portable way. Replace a few references to %ld to remove the assumption about the size of a long. Similarly, use %z with size_t arguments.
Where the value being printed is an unsigned 64-bit value, use PRIu64 instead of %ld.
Explicitly test for not __linux__ where that is the intent, rather than testing for __FreeBSD__.
Cast pointer to uintptr_t before aligning it, rather than using a specific integer size which may not be large enough to store a pointer.
Signed-off-by: Nick Connolly <nick.connolly@mayadata.io> Change-Id: Icfe219e1bbb2d06b3ef05710fac5b7091d340251 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5142 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.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 ...
|
| #
4e8e97c8 |
| 06-Oct-2020 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
log: remove internal log.h header
There is nothing left here, so remove it.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ib947d42bc577dbebb4650b1be885e05a80f8f8cf Reviewed-
log: remove internal log.h header
There is nothing left here, so remove it.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ib947d42bc577dbebb4650b1be885e05a80f8f8cf Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4541 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Anil Veerabhadrappa <anil.veerabhadrappa@broadcom.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Community-CI: Broadcom CI
show more ...
|