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 ...
|