66289a6d | 06-Dec-2024 |
Konrad Sztyber <konrad.sztyber@intel.com> |
build: use VERSION file for storing version
This reduces the number of places to update whenever a version is bumped and also gives us an easy way to check the current version from scripts.
Signed-
build: use VERSION file for storing version
This reduces the number of places to update whenever a version is bumped and also gives us an easy way to check the current version from scripts.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I01d7240b6e07467548c211f1e505c1e1a34360af Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25523 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: Ben Walker <ben@nvidia.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com>
show more ...
|
cec5ba28 | 23-Aug-2024 |
Alexey Marchuk <alexeymar@nvidia.com> |
nvme/rdma: Register UMR per IO request
If accel sequence is supported, append a copy task even if there is no accel sequence. NVME RDMA driver expects that accel framework registers UMR for the data
nvme/rdma: Register UMR per IO request
If accel sequence is supported, append a copy task even if there is no accel sequence. NVME RDMA driver expects that accel framework registers UMR for the data buffer. This UMR allows to represent fragmented payload as a virtually contig one.
Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com> Change-Id: I410f991959b08eab033105a7dbb4a9aaba491567 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24709 Reviewed-by: Ben Walker <ben@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
1ae735a5 | 05-Nov-2024 |
Konrad Sztyber <konrad.sztyber@intel.com> |
nvme: add poll_group interrupt callback
In interrupt mode, IO completions are processed when waiting on poll_group's fd_group. But there are some events (qpair disconnection) that require extra han
nvme: add poll_group interrupt callback
In interrupt mode, IO completions are processed when waiting on poll_group's fd_group. But there are some events (qpair disconnection) that require extra handling. Normally, this happens in spdk_nvme_poll_group_wait(), but when manually doing a spdk_fd_group_wait() on poll_group's fd_group, we need a notification to get this done.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I08979e42ff57b53f0c97670e9996b0ce6dad713e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25468 Reviewed-by: Ankit Kumar <ankit.kumar@samsung.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <ben@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com>
show more ...
|
f8047163 | 01-Nov-2024 |
Konrad Sztyber <konrad.sztyber@intel.com> |
nvme: add spdk_nvme_poll_group_get_fd_group()
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I0eb30622baf8d1d0ba0af632482570aaaeef52af Reviewed-on: https://review.spdk.io/gerrit
nvme: add spdk_nvme_poll_group_get_fd_group()
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I0eb30622baf8d1d0ba0af632482570aaaeef52af Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25467 Reviewed-by: Ankit Kumar <ankit.kumar@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@nvidia.com> Reviewed-by: Ben Walker <ben@nvidia.com>
show more ...
|
969b360d | 01-Nov-2024 |
Konrad Sztyber <konrad.sztyber@intel.com> |
thread: fd_group-based interrupts
It's now possible to register an interrupt for a whole fd_group. The advantage of doing this over registering an interrupt using fd_group's fd is that the fd_group
thread: fd_group-based interrupts
It's now possible to register an interrupt for a whole fd_group. The advantage of doing this over registering an interrupt using fd_group's fd is that the fd_group is nested in thread's fd_group, so spdk_fd_group_wait() on thread's fd_group will trigger events of the registered fd_group.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I1b2e4e9ea0b5dc2a8ba5e7ab7366fe1c412167f5 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25466 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Reviewed-by: Ben Walker <ben@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Community-CI: Mellanox Build Bot Reviewed-by: Ankit Kumar <ankit.kumar@samsung.com>
show more ...
|
c12cb8fe | 01-Nov-2024 |
Konrad Sztyber <konrad.sztyber@intel.com> |
util: add method for setting fd_group's wrapper
A wrapper is a function that is executed when an event is triggered prior to executing the callback associated with that event. It can be used to per
util: add method for setting fd_group's wrapper
A wrapper is a function that is executed when an event is triggered prior to executing the callback associated with that event. It can be used to perform tasks common to all fds in an fd_group, without having to control the code that adds the fds.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: Ia6e29d430dad220497aa2858529662a3934c6c52 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25464 Reviewed-by: Jim Harris <jim.harris@nvidia.com> Reviewed-by: Ankit Kumar <ankit.kumar@samsung.com> Community-CI: Mellanox Build Bot Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Ben Walker <ben@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
2e1d23f4 | 06-Dec-2024 |
Jim Harris <jim.harris@nvidia.com> |
fuse_dispatcher: make header internal
The fuse_dispatcher is not intended to be a public API, it's for internal use only.
Signed-off-by: Jim Harris <jim.harris@nvidia.com> Change-Id: I23e839a8f7155
fuse_dispatcher: make header internal
The fuse_dispatcher is not intended to be a public API, it's for internal use only.
Signed-off-by: Jim Harris <jim.harris@nvidia.com> Change-Id: I23e839a8f71557960fe27f83c2eb9e51c57c8ea8 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25516 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Ben Walker <ben@nvidia.com>
show more ...
|
60adca7e | 22-Aug-2024 |
Alexey Marchuk <alexeymar@nvidia.com> |
lib/mlx5: API to configure UMR
Add API to configure regular UMR, without BSF and any offloads, only scatter-gather functionality
Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com> Change-Id: Ib4f
lib/mlx5: API to configure UMR
Add API to configure regular UMR, without BSF and any offloads, only scatter-gather functionality
Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com> Change-Id: Ib4fb21c5d27c3a89aef649ca6fd0162ba9d10e8a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24706 Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Community-CI: Mellanox Build Bot Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Ben Walker <ben@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
98eca6fa | 22-Jan-2024 |
Alexey Marchuk <alexeymar@nvidia.com> |
lib/thread: Add API to register a post poller handler
This patch aims to improve doorbell management. SPDK pollers are executed one after other, there is no way to controll its execution time. In a
lib/thread: Add API to register a post poller handler
This patch aims to improve doorbell management. SPDK pollers are executed one after other, there is no way to controll its execution time. In a case when some application has 3 active pollers where each poller represents a HW queue (e.g. nvmf_tgt with nvme_tcp backend and accel module), time interval between 2 poller invokations might be much more than average request latency. That makes doorbells managment more complicated bcs the rule of thumb is to submit a batch of commands to a HW and typical design is to ring doorbells once per poller invokation to flush any tasks submitted by other pollers. With this approach (flush once per poll) HW stalls for significant amount of time. The best solution would be to flush requests to the HW once a batch of requests is in the submission queue. But that is another poller which submits work to the queue, e.g. nvmf_tgt reaps a new request and submits it do bdev and bdev submits crypto task. That is done in the context of nvmf_tgt poller but task is eventually submitted to HW in the context of accel poller. We need a mechanism to notify accel module that nvmf_tgt finishes a batch in order to flush submission queue. But we can go in another direction - code in accel module may ask nvmf_tgt poller to flush doorbells once it submits the last request in the batch. With some abstraction we can achieve it by introducing generic API which registers a one-shot callback which a poller calls once it exits its routine task. In that case accel module can register a callback to flush SQ if a new request is submitted. This patch adds such API It allows to ring doorbels (and in the future to flush sockets) in more optimal way and significantly improve performance in highly loaded applications.
Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com> Change-Id: I026cf931f6e56bfbb66422738a90f71525516bf7 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24703 Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
show more ...
|
b37db069 | 03-Dec-2024 |
XuQi <1530865185@qq.com> |
replace strtok with strtok_r
The strtok function is not reentrant. To address this issue in a multithreaded environment, the strtok_r function should be used, which is the reentrant version of strto
replace strtok with strtok_r
The strtok function is not reentrant. To address this issue in a multithreaded environment, the strtok_r function should be used, which is the reentrant version of strtok.
Signed-off-by: XuQi <1530865185@qq.com> Change-Id: I35c07c7cf4e20bacb7b1e7c7adaedfcd1a81f86e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25492 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Changpeng Liu <changpeliu@tencent.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
show more ...
|
aac967c0 | 09-Oct-2024 |
Jim Harris <jim.harris@samsung.com> |
lib/nvmf: create pollers for each transport poll group
Having more granular pollers makes it easier to detect and report whether any given poller has pending work in progress.
Signed-off-by: Jim Ha
lib/nvmf: create pollers for each transport poll group
Having more granular pollers makes it easier to detect and report whether any given poller has pending work in progress.
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: I640eca2c702ac07eec1b84e3f541564fd0d44a12 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25184 Community-CI: Mellanox Build Bot 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: Ben Walker <ben@nvidia.com>
show more ...
|
5ca6db5d | 10-Jun-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
nvme_spec: Add SPDK_NVME_IO_FLAGS_PRCHK_MASK
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I2b182060e80262ad5d25b3a2ef19c889631bdd13 Reviewed-on: https://review.spdk.io/gerrit/c
nvme_spec: Add SPDK_NVME_IO_FLAGS_PRCHK_MASK
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I2b182060e80262ad5d25b3a2ef19c889631bdd13 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23628 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> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@nvidia.com>
show more ...
|
aa58c9e0 | 15-Nov-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
dif: Add spdk_dif_pi_format_get_size() to use for NVMe PRACT
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I991e419645f269a614fad44e3b02939c68767250 Reviewed-on: https://review.
dif: Add spdk_dif_pi_format_get_size() to use for NVMe PRACT
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I991e419645f269a614fad44e3b02939c68767250 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25436 Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.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 ...
|
afdec00e | 06-Nov-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
nvmf: Add hide_metadata option to nvmf_subsystem_add_ns
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I518c3cc5fdcb16b41f1e3bda1debf5cb3cc9c47b Reviewed-on: https://review.spdk.
nvmf: Add hide_metadata option to nvmf_subsystem_add_ns
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I518c3cc5fdcb16b41f1e3bda1debf5cb3cc9c47b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25413 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> 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>
show more ...
|
fc308e3c | 01-Oct-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
accel: Fix comments for spdk_accel_*_dif_verify_copy()
destination and source were opposite.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Ia54e08d9c78f60ec4e02a079a8203374ad69
accel: Fix comments for spdk_accel_*_dif_verify_copy()
destination and source were opposite.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Ia54e08d9c78f60ec4e02a079a8203374ad695eb6 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25086 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <jim.harris@nvidia.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 ...
|
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 ...
|
e0d7428b | 23-Oct-2024 |
Atul Malakar <a.malakar@samsung.com> |
lvol: Add custom metadata page size to lvstore
Added new --md_page_size parameter to bdev_lvol_create_lvstore RPC. It facilitates user to pick a custom md_page_size, greater than phys_blocklen of th
lvol: Add custom metadata page size to lvstore
Added new --md_page_size parameter to bdev_lvol_create_lvstore RPC. It facilitates user to pick a custom md_page_size, greater than phys_blocklen of the underlying device.
This will allow functional testing of the large IU metadata changes on 4K IU NVMe SSDs.
Change-Id: Ib1bc68ba4d5b8a7db7f2befc1f616b342c01bc0f Signed-off-by: Atul Malakar <a.malakar@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25304 Community-CI: Mellanox Build Bot Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> 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> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com>
show more ...
|
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 ...
|
3299bf6d | 23-Oct-2024 |
Jim Harris <jim.harris@samsung.com> |
blob: remove all references to pages as io_units
When blobstore was first created, everything was in terms of 4KB pages - this included metadata page size and the unit for I/O operations.
A bit lat
blob: remove all references to pages as io_units
When blobstore was first created, everything was in terms of 4KB pages - this included metadata page size and the unit for I/O operations.
A bit later, we introduced concept of "io_unit". If a blobstore was put on a bdev with 512 blocksize, then the io_unit could be 512 bytes.
But when this happened, we should have changed all of the blobstore code such that remaining "page" references only referred to metadata pages. Instead, we left a bunch of places where we would convert various values to/from a number of 4KB pages, and then to the number of io_units. This made the code quite confusing, since direct conversion to/from io_units would have been much clearer.
This existing problem was exacerbated with the upcoming patch to support variable metadata page sizes. We need things like spdk_bs_get_page_size() to return the size of the metadata pages, which may not be 4KB.
So make all of the changes necessary such that all references to "page" now means "metadata page". This includes removing the spdk_blob_get_num_pages() function, which no longer makes sense.
Signed-off-by: Jim Harris <jim.harris@samsung.com> Change-Id: I66e93e7a4325a3b032bb16edaf657ef12044e1fd Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25368 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 <ben@nvidia.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
show more ...
|
92fb2251 | 25-Jun-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
dif: dif_generate/verify_copy() supports NVMe PRACT = 1 and MD size > PI size
In the NVMe spec, if PRACT is 1 and metadata size is larger than PI size, PI is just overwritten for write and PI is jus
dif: dif_generate/verify_copy() supports NVMe PRACT = 1 and MD size > PI size
In the NVMe spec, if PRACT is 1 and metadata size is larger than PI size, PI is just overwritten for write and PI is just verified for read. spdk_dif_generate_copy() and spdk_dif_verify_copy() simulate this behavior.
Update unit test cases for verification.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I0e26a0c2675af416d9d181e3cb4ecb084939c6a4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23688 Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Mellanox Build Bot Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
79daf868 | 25-Jun-2024 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
dif: Add SPDK_DIF_FLAGS_NVME_PRACT for dif_generate/verify_copy()
Add a macro constant SPDK_DIF_FLAGS_NVME_PRACT which is the same value as the PRACT bit in the NVMe specification.
spdk_dif_generat
dif: Add SPDK_DIF_FLAGS_NVME_PRACT for dif_generate/verify_copy()
Add a macro constant SPDK_DIF_FLAGS_NVME_PRACT which is the same value as the PRACT bit in the NVMe specification.
spdk_dif_generate/verify_copy() works if NVME_PRACT is not set or metadata size is equal with PI size, or return -ENOTSUP otherwise.
The following patch will support the ENOTSUP cases.
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: Ie0113521572aa405f26c8c197f5ffb14ca0503ff Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23687 Reviewed-by: Jim Harris <jim.harris@nvidia.com> Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> 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> Community-CI: Mellanox Build Bot
show more ...
|
a0c12854 | 04-Nov-2024 |
Yash Raj Singh <yash.rajsingh@nutanix.com> |
bdev/nvme: Make bdev nvme get and set opts APIs public
This patch exposes bdev_nvme_get_opts and bdev_nvme_set_opts APIs. No changes have been done to the implementation of these functions.
Change-
bdev/nvme: Make bdev nvme get and set opts APIs public
This patch exposes bdev_nvme_get_opts and bdev_nvme_set_opts APIs. No changes have been done to the implementation of these functions.
Change-Id: I8498ed81e14abb66283a1608f17bb6bba8e38975 Signed-off-by: Yash Raj Singh <yash.rajsingh@nutanix.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25406 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> Community-CI: Mellanox Build Bot Reviewed-by: Ankit Kumar <ankit.kumar@samsung.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|