History log of /spdk/include/ (Results 1 – 25 of 3099)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
66289a6d06-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 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12345678910>>...124