History log of /spdk/lib/bdev/bdev.c (Results 1 – 25 of 780)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v25.01-rc1
# 52a41348 02-Dec-2024 Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>

bdev: do not retry nomem I/Os during aborting them

If bdev module reports ENOMEM for the first I/O in an I/O channel, all
subsequent I/Os would be queued in the nomem list. In this case,
io_outstand

bdev: do not retry nomem I/Os during aborting them

If bdev module reports ENOMEM for the first I/O in an I/O channel, all
subsequent I/Os would be queued in the nomem list. In this case,
io_outstanding and nomem_threshold would remain 0, allowing nomem I/Os
to be resubmitted unconditionally.

Now, a coming reset could trigger nomem I/O resubmission when aborting
nomem I/Os in the following path:

```
bdev_reset_freeze_channel
-> bdev_abort_all_queued_io
-> spdk_bdev_io_complete
-> _bdev_io_handle_no_mem
-> bdev_ch_retry_io
```

Both bdev_abort_all_queued_io and bdev_ch_retry_io modifies nomem_io
list in this path. Thus, there might be I/Os that are firstly submitted
to the underlying device by bdev_ch_retry_io, and then get aborted by
bdev_abort_all_queued_io, resulting in double-completion of these I/Os
later.

To fix this, just do not resubmit nomem I/Os when aborting is in
progress.

Change-Id: I1f66262216885779d1a883ec9250d58a13d8c228
Signed-off-by: Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25522
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>

show more ...


# d1394291 02-Dec-2024 Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>

bdev: simplify bdev_reset_freeze_channel

Commit 055de83a "bdev: multiple QoS queues with atomic-based QoS quota"
removed locking around swapping qos_queued_io, but forgot to remove the
swapping. Let

bdev: simplify bdev_reset_freeze_channel

Commit 055de83a "bdev: multiple QoS queues with atomic-based QoS quota"
removed locking around swapping qos_queued_io, but forgot to remove the
swapping. Let's remove it to simplify bdev_reset_freeze_channel.

Change-Id: I48c1b7e09e7d92450bc2d91a2adefa26d072af52
Signed-off-by: Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25521
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: GangCao <gang.cao@intel.com>

show more ...


# 9094b960 15-Nov-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Assert to check if I/O pass dif_check_flags not enabled by bdev

The generic bdev layer should not pass an I/O with a dif_check_flags set
that the underlying bdev does not support.

The generic

bdev: Assert to check if I/O pass dif_check_flags not enabled by bdev

The generic bdev layer should not pass an I/O with a dif_check_flags set
that the underlying bdev does not support.

The generic bdev layer satisfies this requirement now.

The following patches will change the passthrough vbdev module and the bdev
partition layer to passthrough dif_check_flags. We want to do this as
simply as we can. But, we want to keep satisfying this requirement.

Add an assert to ensure this requirement to be satisfied in future.

We should enable this check only for I/O types which support DIF.
Add a helper function to check if bdev_io supports DIF or not. Assert is
not enabled by release mode. Compiler unused warning does not care about
inline functions. Inline function + switch-case is easy for extension.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Suggested-by: Jim Harris <jiharris@nvidia.com>
Change-Id: Ibdf3307862ea3287df130e63d899fc8cce2a3d31
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23016
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>

show more ...


# f7ce1526 20-Nov-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Insert or overwrite metadata using bounce/accel buffer if NVMe PRACT is set

spdk_dif_generate_copy() and spdk_dif_verify_copy() already support NVMe
PRACT. Support NVMe PRACT in the generic bd

bdev: Insert or overwrite metadata using bounce/accel buffer if NVMe PRACT is set

spdk_dif_generate_copy() and spdk_dif_verify_copy() already support NVMe
PRACT. Support NVMe PRACT in the generic bdev layer by utilizing these
APIs via accel framework.

Read or write I/O copies pract bit of ext_io_opts to dif_check_flags of
bdev_io. Then, if pract bit is set in dif_check_flags of bdev_io,
allocate bounce/accel buffer and insert/overwrite metadata as same as
no_metadata option. Clear pract bit in dif_check_flags of bdev_io after
appending acccel sequence not to passthrough pract bit to the underlying
bdev module.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I56ed4ba9dad677635e36684f93696dec7d90cdb6
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25437
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>

show more ...


# 27c6508e 08-Nov-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Add spdk_bdev_io_hide_metadata() for bdev modules

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I1ec68331718fb9a50f3d563025545d977b427a61
Reviewed-on: https://review.spdk.

bdev: Add spdk_bdev_io_hide_metadata() for bdev modules

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I1ec68331718fb9a50f3d563025545d977b427a61
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25417
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot

show more ...


# a91d250f 20-Nov-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Insert metadata using bounce/accel buffer if I/O is not aware of metadata

Add DIF insert/strip into the generic bdev layer.

Use bounce buffer if I/O allcates it regardless that I/O is not awa

bdev: Insert metadata using bounce/accel buffer if I/O is not aware of metadata

Add DIF insert/strip into the generic bdev layer.

Use bounce buffer if I/O allcates it regardless that I/O is not aware of
metadata. Allocate and use bounce buffer if I/O is not aware of metadata,
and it does not use memory domain or bdev module does not support accel sequence.
Allocate and use accel buffer if I/O uses memory domain, bdev module supports
accel sequence, and I/O is not aware of metadata.

When accel buffer is used, join the existing code path to pull data.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I057d64ab4a1f48c838e1cddd08f3e12cc595817b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25087
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>

show more ...


# e43b3b91 01-Oct-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Clean up duplicated asserts in bdev_io_pull_data()

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I54e9b5afbf562f750370efcbbd03b62f8f742a70
Reviewed-on: https://review.spdk

bdev: Clean up duplicated asserts in bdev_io_pull_data()

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I54e9b5afbf562f750370efcbbd03b62f8f742a70
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25085
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <jim.harris@nvidia.com>

show more ...


# 752c08b5 03-Oct-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Rename _bdev_memory_domain_io_get_buf() to bdev_io_get_bounce_buf()

The following patches will use bounce buffer for DIF insert/strip even if
memory domain is not used.

For clarification, ren

bdev: Rename _bdev_memory_domain_io_get_buf() to bdev_io_get_bounce_buf()

The following patches will use bounce buffer for DIF insert/strip even if
memory domain is not used.

For clarification, rename _bdev_memory_domain_io_get_buf() to
bdev_io_get_bounce_buf().

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ibd20c7385d4bb8a3c376855ae86bde70b5cd4aea
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25088
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


# 22fe262e 03-Oct-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Relocate _bdev_memory_domain_io_get_buf_cb() close to _bdev_io_submit_ext()

It is easier to read if _bdev_memory_domain_get_io_cb() is close to
_bdev_io_submit_ext() because both handle accel

bdev: Relocate _bdev_memory_domain_io_get_buf_cb() close to _bdev_io_submit_ext()

It is easier to read if _bdev_memory_domain_get_io_cb() is close to
_bdev_io_submit_ext() because both handle accel sequence and submit I/O.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I9cbd52ed239a99b2d6a9b8d2db012410fc34b79f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25127
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>

show more ...


# 3c6c4e01 01-Oct-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Factor out checking bounce buffer necessity into helper function

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I62e9e4334767cb6ae3ab69e78a35ab3de7f213e7
Reviewed-on: https

bdev: Factor out checking bounce buffer necessity into helper function

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I62e9e4334767cb6ae3ab69e78a35ab3de7f213e7
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25084
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


# 0836dccd 30-Sep-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Add spdk_dif_ctx and spdk_dif_error into spdk_bdev_io

If the generic bdev layer and the underlying bdev module use T10 DIF APIs
of the accel framework for T10 DIF, DIF context and DIF error st

bdev: Add spdk_dif_ctx and spdk_dif_error into spdk_bdev_io

If the generic bdev layer and the underlying bdev module use T10 DIF APIs
of the accel framework for T10 DIF, DIF context and DIF error structures
must be persistent while executing the APIs.

As a preparation, embed spdk_dif_ctx structure and spdk_dif_error
structure into spdk_bdev_io structure, and initialize both at the start
of the I/O submission if the DIF type of the bdev is not disabled or
no_metadata option is enabled.

These embedded data structure will be able to use for other purposes
too.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I4e61222034bb33d4dd862692a878bd283b5d32d4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23741
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot

show more ...


Revision tags: v24.09, v25.01-pre, v24.09-rc1
# fb1630bf 21-Aug-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Use data_block_size for upper layer buffer if hide_metadata is true

Add two helper functions, bdev_desc_get_block_size() and
bdev_io_get_block_size().

Then, use these functions for buffers of

bdev: Use data_block_size for upper layer buffer if hide_metadata is true

Add two helper functions, bdev_desc_get_block_size() and
bdev_io_get_block_size().

Then, use these functions for buffers of upper layer.

The following patches will do DIF insert/strip for read/write if
no_metadata is true.

bdev_io_update_io_stat() keeps using bdev->blocklen because
I/O to the underlying bdev module uses bdev->blocklen regardless of
the no_metadata option.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I46cedb846a4362ba75742d4e543df466ef43f112
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24629
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>

show more ...


# 67afc973 06-Nov-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Add APIs get metadata config via desc depending on hide_metadata option

Add APIs to get metadata configuration via bdev descriptor depending on
the hide_metadata option.

These correspond to t

bdev: Add APIs get metadata config via desc depending on hide_metadata option

Add APIs to get metadata configuration via bdev descriptor depending on
the hide_metadata option.

These correspond to the existing APIs to get metadata configuration via
bdev pointer. Hence, most comments in the header file were copied and
pasted. However, in existing functions there were notes were put after
the param/return comments. Fix these nits together in this patch.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ieb3fd4f51817b57b3a82b3ba314a4510b97b4424
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25140
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot

show more ...


# 16e5e505 20-Nov-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Add spdk_bdev_open_ext_v2() to support per-open options

We will add the DIF insert/strip feature into the generic bdev layer.
We want to make the feature option per bdev open.

There exists sp

bdev: Add spdk_bdev_open_ext_v2() to support per-open options

We will add the DIF insert/strip feature into the generic bdev layer.
We want to make the feature option per bdev open.

There exists spdk_bdev_open_async_opts. However it is only for
spdk_bdev_open_async(). spdk_bdev_open_async() is not generally usable.

spdk_bdev_open_ext() does not receive any option structure via
parameter.

It is not practical to change the existing spdk_bdev_open_ext().

Hence, add a new API spdk_bdev_open_ext_v2() with spdk_bdev_open_opts
structure. We find many examples to use v2 in DPDK.

Add hide_metadata option as the first option of the spdk_bdev_open_opts
structure.

Last 7 bytes in spdk_bdev_open_opts structure are unused and are not
initialized by the caller. To zero out these clearly with minimal user
effort, add spdk_bdev_open_opts_init() for initialization.

opts in spdk_bdev_desc is a hot data. Put it into the first cache line
in spdk_bdev_desc.

Furthermore, add simple unit test for verification.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I38d93ffbb2becc59e57f9a7163defd5f8f201f07
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23771
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>

show more ...


# 20b34660 20-Nov-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Locate all hot data in spdk_bdev_desc to the first cache line

spdk_bdev_desc is a small data structure but the next patch will add one
hot data into it. To ensure the new hot data to be in the

bdev: Locate all hot data in spdk_bdev_desc to the first cache line

spdk_bdev_desc is a small data structure but the next patch will add one
hot data into it. To ensure the new hot data to be in the first cache
line, consolidate all hot data in spdk_bdev_desc to the first cache
line.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I6beab513e4b19b706a31f9c73b1053c1161778dd
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25454
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>

show more ...


# 557f022f 23-Jul-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Change 1st parameter of bdev_bytes_to_blocks from bdev to desc

The following patches will add option to spdk_bdev_desc and it will
affect block size. As a preparation, change the first paramet

bdev: Change 1st parameter of bdev_bytes_to_blocks from bdev to desc

The following patches will add option to spdk_bdev_desc and it will
affect block size. As a preparation, change the first parameter of
bdev_bytes_to_blocks from bdev pointer to desc pointer.

Even before this patch, the caller used spdk_bdev_desc_get_bdev()
as a function parameter. Hence, this is a good clean up.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I4b84351bce13b109c17b5477e2711ed632208178
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24628
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


# c0b2ac5c 24-Jul-2024 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev: Change void to bdev_io pointer of parameter of _bdev_io_submit()

_bdev_io_submit() is not used as a function pointer now. We can remove
the comment and change the type of the parameter from vo

bdev: Change void to bdev_io pointer of parameter of _bdev_io_submit()

_bdev_io_submit() is not used as a function pointer now. We can remove
the comment and change the type of the parameter from void to
spdk_bdev_io pointer. We do not have to remove inline.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I019bad3be284f66719a945f5ae4423e351daba5f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24627
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>

show more ...


# f549a995 15-Nov-2024 Changpeng Liu <changpeliu@tencent.com>

vhost_blk: return VIRTIO_BLK_S_UNSUPP for flush command

SPDK vhost-blk doesn't negociate `VIRTIO_BLK_F_FLUSH` nor
`VIRTIO_BLK_F_CONFIG_WCE` feature bits, but we can still
receive FLUSH commands from

vhost_blk: return VIRTIO_BLK_S_UNSUPP for flush command

SPDK vhost-blk doesn't negociate `VIRTIO_BLK_F_FLUSH` nor
`VIRTIO_BLK_F_CONFIG_WCE` feature bits, but we can still
receive FLUSH commands from VM, here we return correct
errno for these commands in case the backend block device
doesn't support it.

Partly fix issue #3572.

Change-Id: Ib6269818ae94b38bebed3603fa8b87e97d7e7ab1
Signed-off-by: Changpeng Liu <changpeliu@tencent.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25435
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: GangCao <gang.cao@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...


# dcc2ca8f 15-Nov-2024 Yao Liu <liuy35@chinatelecom.cn>

bdev: fix per_channel data null when bdev_get_iostat with reset option

When bdev_get_iostat comes with the reset option, we should reset the
channel or bdev's stat memory area, not that stat memory

bdev: fix per_channel data null when bdev_get_iostat with reset option

When bdev_get_iostat comes with the reset option, we should reset the
channel or bdev's stat memory area, not that stat memory area
temporarily allocated for rpc output.

Fixes: 63e0c25d ("bdev: add reset_mode to bdev_get_iostat")
Change-Id: I32caaca48c84600b6c3c403ae647d6d3ce6cd5ae
Signed-off-by: Yao Liu <liuy35@chinatelecom.cn>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25441
Community-CI: Mellanox Build Bot
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: GangCao <gang.cao@intel.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeliu@tencent.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>

show more ...


# fc96810c 12-Nov-2024 Ed Reed <edreed@microsoft.com>

bdev: remove bdev from examine allow list on unregister

Removes the Bdev from the examine allow list on unregister to enable
re-registration of a Bdev with the same name.

Change-Id: Iefcb5ff8addd78

bdev: remove bdev from examine allow list on unregister

Removes the Bdev from the examine allow list on unregister to enable
re-registration of a Bdev with the same name.

Change-Id: Iefcb5ff8addd7859df56f1f2a3ce3cc309fde528
Signed-off-by: Ed Reed <edreed@microsoft.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25426
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <jim.harris@nvidia.com>

show more ...


# d47eb51c 30-Oct-2024 Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>

bdev: fix a race between reset start and complete

There is a race between reset start and complete:

1. reset_1 is completing. It clears bdev->internal.reset_in_progress and
sends unfreeze_channe

bdev: fix a race between reset start and complete

There is a race between reset start and complete:

1. reset_1 is completing. It clears bdev->internal.reset_in_progress and
sends unfreeze_channel messages to remove queued resets of all
channels.
2. reset_2 is starting. As bdev->internal.reset_in_progress has been
cleared, it is inserted to queued_resets list and starts to freeze
channels.
3. reset_1's unfreeze_channel message removes reset_2 from queued_resets
list.
4. reset_2 finishes freezing channels, but the corresponding bdev_io has
gone, hence resulting in segmentation fault.

To fix this, we use per-bdev queued_resets list instead of per-channel
ones, and nullify bdev->internal.reset_in_progress after unfreezing bdev
channels. In this way, we can assure that all resets submitted during an
in-progress reset can be queued and completed correctly.

Besides, we do not insert the reset that is submitted to the underlying
device into the queued_resets list, so that the list can be processsed
cleanly.

Change-Id: I7cb14d790c1e20cea86e4829555d04acc408ee28
Signed-off-by: Jinlong Chen <chenjinlong.cjl@alibaba-inc.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25371
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: GangCao <gang.cao@intel.com>

show more ...


# fb6c49f2 24-Oct-2024 Konrad Sztyber <konrad.sztyber@intel.com>

bdev: add spdk_bdev_get_nvme_nsid()

The id of a namespace is required to be sent in some, but not all, admin
commands. So, without it, it's impossible to send an admin command that
does require it.

bdev: add spdk_bdev_get_nvme_nsid()

The id of a namespace is required to be sent in some, but not all, admin
commands. So, without it, it's impossible to send an admin command that
does require it.

This is not a problem for IO commands, as bdev_nvme always fills in nsid
for IO command passthru. However, we can't do that for admin commands,
as some admin commands require nsid to be cleared or behave differently
when it's set to the broadcast value (0xffffffff).

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Ic943a1c52cd9043cc09469ad421be2f089aac606
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25363
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <jim.harris@samsung.com>
Reviewed-by: Changpeng Liu <changpeliu@tencent.com>

show more ...


# f1900e4d 19-Jul-2024 Jim Harris <jim.harris@samsung.com>

thread: convert iobuf nodes to 1-sized arrays

This is just a step towards supporting a bigger array, 1 element per
NUMA node.

Signed-off-by: Jim Harris <jim.harris@samsung.com>
Change-Id: If235aa91

thread: convert iobuf nodes to 1-sized arrays

This is just a step towards supporting a bigger array, 1 element per
NUMA node.

Signed-off-by: Jim Harris <jim.harris@samsung.com>
Change-Id: If235aa9120965921cda6291043169a5c55ceb144
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24520
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>

show more ...


# eba178bf 19-Jul-2024 Jim Harris <jim.harris@samsung.com>

thread: add spdk_iobuf_node_cache

We also rename spdk_iobuf_pool to spdk_iobuf_pool_cache.

This makes it more clear that the iobuf_channel has a cache of
buffers per NUMA node. Currently there is o

thread: add spdk_iobuf_node_cache

We also rename spdk_iobuf_pool to spdk_iobuf_pool_cache.

This makes it more clear that the iobuf_channel has a cache of
buffers per NUMA node. Currently there is only one node, but
future changes will extend this to support multiple NUMA nodes
when configured.

Signed-off-by: Jim Harris <jim.harris@samsung.com>
Change-Id: Id403a089a0de943bd3717e40aba156cbb2368cab
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24517
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>

show more ...


# b82fd48a 19-Jul-2024 Jim Harris <jim.harris@samsung.com>

thread: remove pool parameter from spdk_iobuf_for_each_entry

We always want to iterate across the entire iobuf_channel, so just
make the iterator do exactly that, rather than requiring the caller
to

thread: remove pool parameter from spdk_iobuf_for_each_entry

We always want to iterate across the entire iobuf_channel, so just
make the iterator do exactly that, rather than requiring the caller
to have to iterate both of the pools itself.

This both simplifies the calling logic, and prepares for upcoming
changes which will support multiple NUMA node caches in one channel.

Signed-off-by: Jim Harris <jim.harris@samsung.com>
Change-Id: Ieed144671e7ee7cb4d7b7b28e803ea3cae641fee
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24515
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <ben@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>

show more ...


12345678910>>...32