Revision tags: v25.01-rc1 |
|
#
2dc4a231 |
| 22-Oct-2024 |
Atul Malakar <a.malakar@samsung.com> |
blob: Add support for variable metadata page size
Currently SPDK blobstore depends on 4KB atomicity of metadata. So, Metadata page size will be made variable based on the physical block size reporte
blob: Add support for variable metadata page size
Currently SPDK blobstore depends on 4KB atomicity of metadata. So, Metadata page size will be made variable based on the physical block size reported by the underlying device. This will enable blobstore to store metadata in IU-sized chunks, not always 4KB.
blobstore.c uses SPDK_BS_PAGE_SIZE (4KB) hardcoded at many places. To remove this make the metadata page size variable, phys_blocklen is added to spdk_bs_dev struct and md_page_size is added to spdk_bs_super_block struct.
Change-Id: I29d073eb4f4341a94a0675e70492b9186382f97f Signed-off-by: Atul Malakar <a.malakar@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25130 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <ben@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com>
show more ...
|
Revision tags: v24.09, v25.01-pre, v24.09-rc1 |
|
#
3f0a3930 |
| 21-Jul-2024 |
Jinlong Chen <nickyc975@zju.edu.cn> |
blob_bdev: check ext_io_opts when resubmitting I/Os
ctx->ext_io_opts might be NULL, we should check it to determine the right way to handle I/Os.
Change-Id: I60954b9f9320dc2b566f42ef12d2d60f86e62f0
blob_bdev: check ext_io_opts when resubmitting I/Os
ctx->ext_io_opts might be NULL, we should check it to determine the right way to handle I/Os.
Change-Id: I60954b9f9320dc2b566f42ef12d2d60f86e62f08 Signed-off-by: Jinlong Chen <chenjinlong2016@outlook.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24273 Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz@tzawadzki.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
show more ...
|
Revision tags: v24.05, v24.09-pre, v24.05-rc1 |
|
#
00311abc |
| 18-Mar-2024 |
Diwakar Sharma <diwakar.sharma@datacore.com> |
blob: handle IO to a resized blob
When a blob is resized and is backed by a another blob like a snapshot, then the resized blob has more number of clusters compared to backing device. Since the blob
blob: handle IO to a resized blob
When a blob is resized and is backed by a another blob like a snapshot, then the resized blob has more number of clusters compared to backing device. Since the blob is thin, either originally or as a result of creating snapshot, the IOs to the new cluster ranges fail as there is no cluster to be looked at in the backing. This patch introduces mechanism to handle reads by zeroeing out the payload which is trailing beyond cluster range, and handle writes by validating backing dev cluster range during copy-on-write.
Change-Id: Ib204b922819775396e53ffb718e8230ebf8fa46b Signed-off-by: Diwakar Sharma <diwakar.sharma@datacore.com> Co-authored-by: Diwakar Sharma <diwakar.sharma@datacore.com> Co-authored-by: Jim Harris <james.r.harris@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22377 Community-CI: Mellanox Build Bot Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
Revision tags: LTS, v24.01, v24.05-pre, v24.01-rc1, v23.09, v24.01-pre, v23.09-rc1 |
|
#
91c0a9d2 |
| 17-Aug-2023 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
module/blob_bdev: add possibility to change size of bs_dev
spdk bdevs can change their size in run time, so far there was no way for bs_dev to change its size too without re-creating it.
Blobstore
module/blob_bdev: add possibility to change size of bs_dev
spdk bdevs can change their size in run time, so far there was no way for bs_dev to change its size too without re-creating it.
Blobstore size in general is determined from size written down in super block. Size of bs_dev is used in following cases: - initializing blobstore (therefore will become super->size) - loading blobstore (to check if super->size is not larger) - growing blobstore (combines two of the above) - parsing/writing out super block when super->size is 0
Last one is for compatibility with old versions of blobstore.
This effectively means bs_dev size is not used in run-time, changing it will not affect blobstore even after reloads. Either way re-creating bs_dev already changed its size.
This patch proposes adding interface that will allow to change the bs_dev size in run-time, and later in the series add a way to grow blobstore without reloading it.
There is no need to add a way to revert the bs_dev size. All error handling for changes in super->size is done in blobstore.
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I3d7872d91f3b24d40976b4a8c64df860ddf642ae Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19453 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
show more ...
|
Revision tags: v23.05, v23.09-pre, v23.01.1, v23.01, v23.05-pre, v23.01-rc1 |
|
#
421fb110 |
| 16-Jan-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
blob_bdev: defer free until all channels destroyed
To avoid races that lead to use-after-free errors during esnap device hot add/remove, we need a way to ensure that the destroy callback does not fr
blob_bdev: defer free until all channels destroyed
To avoid races that lead to use-after-free errors during esnap device hot add/remove, we need a way to ensure that the destroy callback does not free a bs_dev until all consumers are done.
This adds reference counting to the create_channel() and destroy_channel() callbacks. The reference couunt is initialized to 1 and is decremented by destroy(). The destroy() and destroy_channel() callbacks are updated to free the bs_dev only when the reference count drops to 0.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: Ie0b873717e431b33ce6548f878643dbc66d4f956 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16422 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
#
ab2eff07 |
| 11-Jan-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
blob_bdev: take read-only-many claims on ro devs
If the bs_dev was opened read-write, continue to take a read-many-write-one claim. If it was opened read-only, take a read-many-write-none claim.
Si
blob_bdev: take read-only-many claims on ro devs
If the bs_dev was opened read-write, continue to take a read-many-write-one claim. If it was opened read-only, take a read-many-write-none claim.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: I25d977c6961f962423899fb891ec912cd847930a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16282 Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
Revision tags: v22.01.2, v22.09, v23.01-pre, v22.09-rc1 |
|
#
bd5a7847 |
| 20-Sep-2022 |
Mike Gerdts <mgerdts@nvidia.com> |
blob_bdev: support read-only devices
External snapshots, which will be introduced in a later commit, will need read-only blob_bdev instances. This support is partially needed to support underlying d
blob_bdev: support read-only devices
External snapshots, which will be introduced in a later commit, will need read-only blob_bdev instances. This support is partially needed to support underlying devices that are naturally read-only and partially to provide an extra layer of protection against accidental writes.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: Ibcb28d00ad644a6053aa5f4de15471c2cd8e348a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14968 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> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
#
55f94793 |
| 10-Feb-2023 |
Konrad Sztyber <konrad.sztyber@intel.com> |
bdev: remove spdk_bdev_ext_io_opts from spdk_bdev_io
The spdk_bdev_ext_io_opts structure is used to pass extra options when submitting a bdev IO request, without having to modify/add functions to ha
bdev: remove spdk_bdev_ext_io_opts from spdk_bdev_io
The spdk_bdev_ext_io_opts structure is used to pass extra options when submitting a bdev IO request, without having to modify/add functions to handle new options. Additionally, the structure has a size field to allow adding new fields without breaking the ABI (and thus having to bump up the major version of a library).
It is also a part of spdk_bdev_io and there are several reasons for removing it from that structure:
1. The size field only makes sense in structures that are passed through pointers. And spdk_bdev_ext_io_opts is indeed passed as a pointer to spdk_bdev_{readv,writev}_blocks_ext(), however it is also embedded in spdk_bdev_io (internal.ext_opts_copy), which is also part of the API. It means that each time a new field is added to spdk_bdev_ext_io_opts, the size of spdk_bdev_io will also change, so we will need to bump the major version of libspdk_bdev anyway, thus making spdk_bdev_ext_io_opts.size useless. 2. The size field also makes internal.ext_opts cumbersome to use, as each time one of its fields is accessed, we need to check the size. Currently the code doesn't do that, because all of the existing spdk_bdev_ext_io_opts fields were present when this structure was initially introduced, but we'd need to do check the size before accessing any new fields. 3. spdk_bdev_ext_io_opts has a metadata field, while spdk_bdev_io already has u.bdev.md_buf, which means that we store the same thing in several different places in spdk_bdev_io (u.bdev.md_buf, u.bdev.ext_opts->metadata, internal.ext_opts->metadata).
Therefore, this patch removes all references to spdk_bdev_ext_io_opts from spdk_bdev_io and replaces them with fields (memory_domain, memory_domain_ctx) that were missing in spdk_bdev_io. Unfortunately, this change breaks the API and requires changes in bdev modules that supported spdk_bdev_io.u.bdev.ext_opts.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I49b7524eb84d1d4d7f12b7ab025fec36da1ee01f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16773 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|
#
f246b2d5 |
| 05-Jan-2023 |
Mike Gerdts <mgerdts@nvidia.com> |
blob_bdev: use bdev module claims v2
With the introduction bdev module claims v2, existing consumers should transition off of v1 claims. This transitions blob bdevs from v1 exclusive writer claims t
blob_bdev: use bdev module claims v2
With the introduction bdev module claims v2, existing consumers should transition off of v1 claims. This transitions blob bdevs from v1 exclusive writer claims to v2 read write once claims.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: I1884585a540fa17ee341430e03de3c4f5d35322b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16168 Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
#
b7bfa504 |
| 22-Aug-2022 |
Evgeniy Kochetov <evgeniik@nvidia.com> |
blob: Use bdev copy command in CoW flow if supported
Copy-on-write happens when cluster is written for the first time for thin provisioned volume. Currently it is implemented as two separate request
blob: Use bdev copy command in CoW flow if supported
Copy-on-write happens when cluster is written for the first time for thin provisioned volume. Currently it is implemented as two separate requests to underlying bdev: read of the whole cluster to bounce buffer and then write of this buffer to the new location on the same underlying bdev.
This patch improves copy-on-write flow by utilizing copy command of underlying bdev if it is supported. In this case we have just one request to bdev and don't need the bounce buffer.
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com> Change-Id: I92552e0f18f7a41820d589e7bb1e86160c69183f Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14351 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 <smatsumoto@nvidia.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
show more ...
|
#
9e843fdb |
| 15-Sep-2022 |
Evgeniy Kochetov <evgeniik@nvidia.com> |
blob: Add translate_lba operation
New `translate_lba` operation allows to translate blob lba to lba on the underlying bdev. It recurses down the whole chain of bs_dev's. The operation may fail to do
blob: Add translate_lba operation
New `translate_lba` operation allows to translate blob lba to lba on the underlying bdev. It recurses down the whole chain of bs_dev's. The operation may fail to do the translation when blob lba is not backed by the real bdev. For example, when we eventually hit zeroes device in the chain.
This operation is used in the next commit to get source LBA for copy operation.
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com> Change-Id: I89c2d03d1982d66b9137a3a3653a98c361984fab Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14528 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: Aleksey Marchuk <alexeymar@nvidia.com>
show more ...
|
#
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 ...
|
#
2e7a7fe5 |
| 22-Jun-2022 |
Evgeniy Kochetov <evgeniik@nvidia.com> |
blob: Optimize copy-on-write flow for clusters backed by zeroes device
Writing to unallocated cluster triggers copy-on-write sequence. If this cluster is backed by zeroes device we can skip the copy
blob: Optimize copy-on-write flow for clusters backed by zeroes device
Writing to unallocated cluster triggers copy-on-write sequence. If this cluster is backed by zeroes device we can skip the copy part. For a simple thin provisioned volume copy this shortcut is already implemented because `blob->parent_id == SPDK_BLOBID_INVALID`. But this will not work for thin provisioned volumes created from snapshot. In this case we need to traverse the whole stack of underlying `spdk_bs_dev` devices for specific cluster to check if it is zeroes backed.
This patch adds `is_zeroes` operation to `spdk_bs_dev`. For zeroes device it always returns 'true', for real bdev (`blob_bs_dev`) always returns false, for another layer of `blob_bs_dev` does lba conversion and forwards to backing device.
In blobstore's cluster copy flow we check if cluster is backed by zeroes device and skip copy part if it is.
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com> Change-Id: I640773ac78f8f466b96e96a34c3a6c3c91f87dab Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13446 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: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.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 ...
|
Revision tags: v22.05, v22.09-pre, v22.05-rc1, v22.01.1 |
|
#
c3a40396 |
| 31-Jan-2022 |
Alexey Marchuk <alexeymar@mellanox.com> |
blob/bdev: Use extended blob API
Queued vectored IOs use extended API - if ext_opts is NULL there is no difference between regular and extended blob API
Signed-off-by: Alexey Marchuk <alexeymar@mel
blob/bdev: Use extended blob API
Queued vectored IOs use extended API - if ext_opts is NULL there is no difference between regular and extended blob API
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com> Change-Id: I091f36d81dab04bcd483ea61e667a368441d70e4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11372 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.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 ...
|
Revision tags: v22.01, v22.01-rc1, v21.10, v21.10-rc1 |
|
#
f01146ae |
| 05-Oct-2021 |
Jim Harris <james.r.harris@intel.com> |
blob: use uint64_t for unmap and write_zeroes lba count
Previous patches (5363eb3c) tried to work around the 32-bit unmap and write_zeroes LBA counts by breaking up larger operations into smaller ch
blob: use uint64_t for unmap and write_zeroes lba count
Previous patches (5363eb3c) tried to work around the 32-bit unmap and write_zeroes LBA counts by breaking up larger operations into smaller chunks of max size UINT32_MAX lba chunks.
But some SSDs may just ignore unmap operations that are not aligned to full physical block boundaries - and a UINT32_MAX lba unmap on a 512B logical / 4KiB physical SSD would not be aligned. If the SSD decided to ignore the unmap/deallocate (which it is allowed to do according to NVMe spec), we could end up with not unmapping *any* blocks. Probably SSDs should always be trying hard to unmap as many blocks as possible, but let's not try to depend on that in blobstore.
So one option would be to break them into chunks close to UINT32_MAX which are still aligned to 4KiB boundaries. But the better fix is to just change the unmap and write_zeroes APIs to take 64-bit arguments, and then we can avoid the chunking altogether.
Fixes issue #2190.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I23998e493a764d466927c3520c7a8c7f943000a6 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9737 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: Xiaodong Liu <xiaodong.liu@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
Revision tags: v21.07, v21.07-rc1 |
|
#
eef51593 |
| 07-May-2021 |
Jim Harris <james.r.harris@intel.com> |
module/blob/bdev: use __SPDK_BDEV_MODULE_ONLY
This module only requires the spdk_bdev_module APIs, so use this #define to avoid having to bump so version when spdk_bdev is modified.
Signed-off-by:
module/blob/bdev: use __SPDK_BDEV_MODULE_ONLY
This module only requires the spdk_bdev_module APIs, so use this #define to avoid having to bump so version when spdk_bdev is modified.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I292c38e60cbf21d0d5a6583cb2a2b097c524f3d1 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7811 Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Michal Berger <michalx.berger@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: v21.04, v21.04-rc1, v21.01.1 |
|
#
3e15b356 |
| 02-Mar-2021 |
Tomasz Zawadzki <tomasz.zawadzki@intel.com> |
module/blob: remove deprecated spdk_bdev_create_bs_dev/from_desc()
spdk_bdev_create_bs_dev was deprecated in SPDK 19.10 spdk_bdev_create_bs_dev_from_desc was deprecated in SPDK 20.10
Signed-off-by:
module/blob: remove deprecated spdk_bdev_create_bs_dev/from_desc()
spdk_bdev_create_bs_dev was deprecated in SPDK 19.10 spdk_bdev_create_bs_dev_from_desc was deprecated in SPDK 20.10
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I1290958923f7833579d098a693454e7ab7656307 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6624 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
Revision tags: v21.01, v21.01-rc1, v20.10, v20.10-rc1 |
|
#
3ea2bffb |
| 14-Oct-2020 |
Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> |
blob/bdev: Add function pointer get_base_bdev to struct spdk_bs_dev
spdk_bdev_create_bs_dev_ext() gets not bdev pointer but bdev name as an argument, and hence vbdev_lvs_create() will get bdev name
blob/bdev: Add function pointer get_base_bdev to struct spdk_bs_dev
spdk_bdev_create_bs_dev_ext() gets not bdev pointer but bdev name as an argument, and hence vbdev_lvs_create() will get bdev name accordingly.
However after completing spdk_bdev_create_bs_dev_ext(), vbdev_lvs_create() has to get bdev pointer from the created bs_dev.
Hence add a function pointer get_base_bdev to struct spdk_bs_dev and set it to bdev_blob_get_base_bdev() at initialization.
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Idef0663ace85db0269442212014286669c150069 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4706 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
show more ...
|
#
6a72c19e |
| 14-Oct-2020 |
Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> |
blob/bdev: Add an API spdk_bdev_create_bs_dev_ext()
spdk_bdev_open_ext() requires the caller to use bdev_event_cb_t and bdev_event_cb_t is more extensible than bdev_remove_cb_t. Hence use bdev_event
blob/bdev: Add an API spdk_bdev_create_bs_dev_ext()
spdk_bdev_open_ext() requires the caller to use bdev_event_cb_t and bdev_event_cb_t is more extensible than bdev_remove_cb_t. Hence use bdev_event_t as an argument.
spdk_bdev_open_ext() calls spdk_bdev_get_by_name() inside and spdk_bdev_create_bs_dev_ext() calls spdk_bdev_open_ext() inside. The caller needs to know if the spdk_bdev_get_by_name() succeeded. Hence spdk_bdev_create_bs_dev_ext() returns return code by return value and returns the created bs_dev by double pointer.
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I1c225bfb66db036439c69c459f39c86684d8a540 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4692 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
show more ...
|
#
778e21aa |
| 14-Oct-2020 |
Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> |
blob/bdev: Factor out the common blob_bdev initialization
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Icdcc8b57198cd697921b025edfc8ba8f61bf0764 Reviewed-on: https://
blob/bdev: Factor out the common blob_bdev initialization
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Icdcc8b57198cd697921b025edfc8ba8f61bf0764 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4691 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com>
show more ...
|
Revision tags: v20.07, v20.07-rc1, v20.04.1, v20.01.2, v20.04, v20.04-rc1, v20.01.1, v20.01, v20.01-rc1, v19.10.1, v19.10, v19.10-rc1, v19.07.1 |
|
#
3cba062b |
| 16-Sep-2019 |
Xiaodong Liu <xiaodong.liu@intel.com> |
blob_bdev: add spdk_bdev_create_bs_dev_from_desc
New interface for create spdk_bs_dev from bdev desc. This change, together with spdk_bdev_open_ext, can remove the race condition where user gets the
blob_bdev: add spdk_bdev_create_bs_dev_from_desc
New interface for create spdk_bs_dev from bdev desc. This change, together with spdk_bdev_open_ext, can remove the race condition where user gets the bdev structure, but bdev is removed after getting that structure and before spdk_bdev_create_bs_dev function is called.
Change-Id: Ia80c3527ff91b45f97f44d295a5cb6d83f5ee0e4 Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468412 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com>
show more ...
|
#
7392cdef |
| 16-Aug-2019 |
Seth Howell <seth.howell@intel.com> |
lib/blob: move bdev subdir under module directory.
Change-Id: Ifb9a1df919d32a98c328101029cc22e91915a977 Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/c/
lib/blob: move bdev subdir under module directory.
Change-Id: Ifb9a1df919d32a98c328101029cc22e91915a977 Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/465457 Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|