|
Revision tags: v25.01-rc1, v24.09, v25.01-pre, v24.09-rc1 |
|
| #
05e32e93 |
| 12-Aug-2024 |
Anisa Su <anisa.su@samsung.com> |
test/unit: add poller_get_stats unit test
Change-Id: Ibf94c19643ba2ae33998dd3b6e5fad174872c9c6 Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+
test/unit: add poller_get_stats unit test
Change-Id: Ibf94c19643ba2ae33998dd3b6e5fad174872c9c6 Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24526 Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot
show more ...
|
| #
9c56fc47 |
| 12-Aug-2024 |
Anisa Su <anisa.su@samsung.com> |
test/unit: add poller_get_period_ticks unit test
Change-Id: I76f9f517dd2e16fd9091735575985910ff42cbad Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk
test/unit: add poller_get_period_ticks unit test
Change-Id: I76f9f517dd2e16fd9091735575985910ff42cbad Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24525 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
show more ...
|
| #
4b534e73 |
| 12-Aug-2024 |
Anisa Su <anisa.su@samsung.com> |
test/unit: add poller_get_state_str unit test
Change-Id: I469afb87a0626fa70701f2b0ab57811584093952 Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/sp
test/unit: add poller_get_state_str unit test
Change-Id: I469afb87a0626fa70701f2b0ab57811584093952 Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24524 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Jim Harris <jim.harris@samsung.com>
show more ...
|
| #
1513b044 |
| 12-Aug-2024 |
Anisa Su <anisa.su@samsung.com> |
test/unit: add poller_get_id unit test
Change-Id: I2e040a19b9358e33934bafa314bb0f9a5725f550 Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24
test/unit: add poller_get_id unit test
Change-Id: I2e040a19b9358e33934bafa314bb0f9a5725f550 Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24523 Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com> Community-CI: Mellanox Build Bot
show more ...
|
| #
2ff93357 |
| 08-Aug-2024 |
Anisa Su <anisa.su@samsung.com> |
test/unit: add poller_get_name unit test
Change-Id: I1f8a7439221e81632349ab1db28fb05aee711ea7 Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/
test/unit: add poller_get_name unit test
Change-Id: I1f8a7439221e81632349ab1db28fb05aee711ea7 Signed-off-by: Anisa Su <anisa.su@samsung.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24522 Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <jim.harris@samsung.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
show more ...
|
|
Revision tags: v24.05, v24.09-pre, v24.05-rc1, LTS, v24.01, v24.05-pre, v24.01-rc1 |
|
| #
6f4e0c95 |
| 29-Nov-2023 |
Shuhei Matsumoto <smatsumoto@nvidia.com> |
thread: Don't move to EXITED if for_each_channel is in progress
There was a race between spdk_thread_exit() and spdk_for_each_channel(). A SPDK thread should not move to EXITED until spdk_for_each_c
thread: Don't move to EXITED if for_each_channel is in progress
There was a race between spdk_thread_exit() and spdk_for_each_channel(). A SPDK thread should not move to EXITED until spdk_for_each_channel() completes especially if the SPDK thread is the caller. Realize this adding a counter to spdk_thread structure and using it. spdk_for_each_thread() has the same issue. Hence, fix spdk_for_each_thread() together. Verify this by simple unit test cases.
Fixes #3201
Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: If6be50cf3204d13f71596bbbb84f4de0f9adfcec Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20788 Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <jim.harris@samsung.com>
show more ...
|
|
Revision tags: v23.09, v24.01-pre, v23.09-rc1 |
|
| #
ea941cae |
| 28-Jul-2023 |
Konrad Sztyber <konrad.sztyber@intel.com> |
test/unit: use spdk_ut_run_tests()
Replaced direct calls to the CUnit's functions to run the tests with spdk_ut_run_tests(). That way, each test will have the ability to run a specific test case.
test/unit: use spdk_ut_run_tests()
Replaced direct calls to the CUnit's functions to run the tests with spdk_ut_run_tests(). That way, each test will have the ability to run a specific test case.
The blob.c unit test wasn't changed, because it runs all tests multiple times with different parameter combinations, so it cannot be easily converted. In the future, each such combination could be split into a separate test suite, which would make it compatible with spdk_ut_run_tests().
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I4463f808f89844e9bf32b5b31eda197c5d729d1d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19288 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| #
ae431e31 |
| 28-Jul-2023 |
Konrad Sztyber <konrad.sztyber@intel.com> |
test/unit: move spdk_cunit.h to include/spdk_internal
It'll make it easier to include this file outside of unit tests.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I171ddb864
test/unit: move spdk_cunit.h to include/spdk_internal
It'll make it easier to include this file outside of unit tests.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I171ddb8649f67b5786f08647560e2907603d0574 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19284 Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
show more ...
|
|
Revision tags: v23.05, v23.09-pre, v23.01.1, v23.01, v23.05-pre, v23.01-rc1 |
|
| #
a9bcb7f2 |
| 17-Jan-2023 |
Ben Walker <benjamin.walker@intel.com> |
thread: Move iobuf code to a separate compilation unit.
This makes it much easier to mock this code in unit tests without having to mock up the entire thread library.
Change-Id: Ic3d9cb826ae71af780
thread: Move iobuf code to a separate compilation unit.
This makes it much easier to mock this code in unit tests without having to mock up the entire thread library.
Change-Id: Ic3d9cb826ae71af780a06f88669c37cef2c9a4ae Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16173 Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
show more ...
|
| #
eb7506a1 |
| 11-Jan-2023 |
MengjinWu <mengjin.wu@intel.com> |
lib/thread: iobuf get/put functions will not add offset
When a buffer is get, it does not need to reserve the space for tailq header.
Signed-off-by: MengjinWu <mengjin.wu@intel.com> Change-Id: I0aa
lib/thread: iobuf get/put functions will not add offset
When a buffer is get, it does not need to reserve the space for tailq header.
Signed-off-by: MengjinWu <mengjin.wu@intel.com> Change-Id: I0aa2d77739fbb86a6e2df1c00a772aff1cb7c6e4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16181 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
|
Revision tags: v22.01.2 |
|
| #
36df38c0 |
| 23-Nov-2022 |
Konrad Sztyber <konrad.sztyber@intel.com> |
thread: cache a number of iobuf buffers on each channel
Users can now specify a number of small/large buffers to be cached on each iobuf channel. Previously, we relied on the cache of the underlyin
thread: cache a number of iobuf buffers on each channel
Users can now specify a number of small/large buffers to be cached on each iobuf channel. Previously, we relied on the cache of the underlying spdk_mempool, which has per-core caches. However, since iobuf channels are tied to a module and an SPDK thread, each module and each thread is now guaranteed to have a number of buffers available, so it won't be starved by other modules/threads.
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I1e29fe29f78a13de371ab21d3e40bf55fbc9c639 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15634 Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
| #
3aceb2da |
| 26-Oct-2022 |
Konrad Sztyber <konrad.sztyber@intel.com> |
thread: introduce iobuf buffer pools
The idea behind "iobuf" is to have a single place for allocating data buffers across different libraries. That way, each library won't need to allocate its own
thread: introduce iobuf buffer pools
The idea behind "iobuf" is to have a single place for allocating data buffers across different libraries. That way, each library won't need to allocate its own mempools, therefore decreasing the memory footprint of the whole application.
There are two reasons for putting these kind of functions in the thread library. Firstly, the code is pretty small, so it doesn't make sense to create a new library. Secondly, it relies on the IO channel abstraction, so users will need to pull in the thread library anyway.
It's very much inspired by the way bdev layer handles data buffers (much of the code was directly copied over). There are two global mempools, one for small and one for large buffers, and per-thread queues that hold requests waiting for a buffer. The main difference is that we also need to track which module requested a buffer in order to allow users to iterate over its pending requests.
The usage is fairly simple:
``` /* Embed spdk_iobuf_channel into an existing IO channel */ struct foo_channel { ... struct spdk_iobuf_channel iobuf; };
/* Embed spdk_iobuf_entry into objects that will request buffers */ struct foo_object { ... struct spdk_iobuf_entry entry; };
/* Register the module as iobuf user */ spdk_iobuf_register_module("foo");
/* Initialize iobuf channel in foo_channel's create cb */ spdk_iobuf_channel_init(&foo_channel->iobuf, "foo", 0, 0);
/* Finally, request a buffer... */ buf = spdk_iobuf_get(&foo_channel->iobuf, length, &foo_objet.entry, buf_get_cb);
...
/* ...and release it */ spdk_iobuf_put(&foo_channel->iobuf, buf, length);
```
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: Ifaa6934c03ed6587ddba972198e606921bd85008 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15326 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|
| #
cd2bcf10 |
| 24-Oct-2022 |
Mike Gerdts <mgerdts@nvidia.com> |
thread: SPDK spinlocks
This introduces an enhanced spinlock that adds safeguards compared to the default pthread_spinlock_t. In particular:
- A pthread_spinlock_t is still used, but additional erro
thread: SPDK spinlocks
This introduces an enhanced spinlock that adds safeguards compared to the default pthread_spinlock_t. In particular:
- A pthread_spinlock_t is still used, but additional error checking is performed to ensure there is no undefined behavior on relock, unlocking when not the owner, or destoying a locked lock. - The SPDK concurrency model allows an SPDK thread to be migrated between pthreads. Releasing a pthread spinlock on a different thread from where it is taken is undefined behavior. If an SPDK spinlock is held at a time that a time when a poller or message returns control to thread_poll(), the program will abort. - SPDK spinlocks can only be obtained from an SPDK thread.
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Change-Id: I6dd6493ab5f5532ae69e20654546405a507eb594 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15277 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
| #
a6dbe372 |
| 01-Nov-2022 |
paul luse <paul.e.luse@intel.com> |
update Intel copyright notices
per Intel policy to include file commit date using git cmd below. The policy does not apply to non-Intel (C) notices.
git log --follow -C90% --format=%ad --date defa
update Intel copyright notices
per Intel policy to include file commit date using git cmd below. The policy does not apply to non-Intel (C) notices.
git log --follow -C90% --format=%ad --date default <file> | tail -1
and then pull just the 4 digit year from the result.
Intel copyrights were not added to files where Intel either had no contribution ot the contribution lacked substance (ie license header updates, formatting changes, etc). Contribution date used "--follow -C95%" to get the most accurate date.
Note that several files in this patch didn't end the license/(c) block with a blank comment line so these were added as the vast majority of files do have this last blank line. Simply there for consistency.
Signed-off-by: paul luse <paul.e.luse@intel.com> Change-Id: Id5b7ce4f658fe87132f14139ead58d6e285c04d4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15192 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot
show more ...
|
|
Revision tags: v22.09, v23.01-pre, v22.09-rc1 |
|
| #
d33497d3 |
| 04-Aug-2022 |
Jim Harris <james.r.harris@intel.com> |
thread: defer unregistration when for_each ops exist
There may be for_each operations outstanding on an io_device when it is unregistered. Currently we just return when this happens, not unregister
thread: defer unregistration when for_each ops exist
There may be for_each operations outstanding on an io_device when it is unregistered. Currently we just return when this happens, not unregistering the device but also not notifying the caller that this happened (since it returns void, and the callback function doesn't have a status parameter either).
We could just push this responsibility to the caller, to never unregister an io_device if it knows it has outstanding for_each calls waiting to complete. But I think we can simplify this a lot by just handling this inside of the thread library. Mark that the device is pending registration, and unregister it (on the original requesting thread!) when the for_each count gets back to zero. Also don't allow any new for_each operations either.
Note this requires a bit of refactoring on the thread unit tests, since it is now possible to unregister a device with outstanding for_each operations.
Fixes issue #2631.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I978f2d99a25e65d2b7d71ce9b1926a79a6c94263 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13890 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: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
show more ...
|
| #
488570eb |
| 03-Jun-2022 |
Jim Harris <james.r.harris@intel.com> |
Replace most BSD 3-clause license text with SPDX identifier.
Many open source projects have moved to using SPDX identifiers to specify license information, reducing the amount of boilerplate code in
Replace most BSD 3-clause license text with SPDX identifier.
Many open source projects have moved to using SPDX identifiers to specify license information, reducing the amount of boilerplate code in every source file. This patch replaces the bulk of SPDK .c, .cpp and Makefiles with the BSD-3-Clause identifier.
Almost all of these files share the exact same license text, and this patch only modifies the files that contain the most common license text. There can be slight variations because the third clause contains company names - most say "Intel Corporation", but there are instances for Nvidia, Samsung, Eideticom and even "the copyright holder".
Used a bash script to automate replacement of the license text with SPDX identifier which is checked into scripts/spdx.sh.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Iaa88ab5e92ea471691dc298cfe41ebfb5d169780 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12904 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Dong Yi <dongx.yi@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: <qun.wan@intel.com>
show more ...
|
|
Revision tags: v22.05, v22.09-pre, v22.05-rc1, v22.01.1 |
|
| #
a71cd521 |
| 13-Feb-2022 |
Alexis Lescouet <alexis.lescouet@nutanix.com> |
event: Add a user option to change the size of spdk_msg_mempool
The spdk_msg_mempool structure has a fixed size, which is not flexible enough. The size of the memory allocation can now be changed in
event: Add a user option to change the size of spdk_msg_mempool
The spdk_msg_mempool structure has a fixed size, which is not flexible enough. The size of the memory allocation can now be changed in the options given to the spdk_app_start function.
Signed-off-by: Alexis Lescouet <alexis.lescouet@nutanix.com> Change-Id: I1d6524ab8cf23f69f553aedb0f5b0cdc9dde374b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11635 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
|
Revision tags: v22.01, v22.01-rc1 |
|
| #
c9c7c281 |
| 25-Nov-2021 |
Josh Soref <jsoref@gmail.com> |
spelling: test
Part of #2256
* achieve * additionally * against * aliases * already * another * arguments * between * capabilities * comparison * compatibility * configuration * continuing * contro
spelling: test
Part of #2256
* achieve * additionally * against * aliases * already * another * arguments * between * capabilities * comparison * compatibility * configuration * continuing * controlq * cpumask * default * depends * dereferenced * discussed * dissect * driver * environment * everything * excluded * existing * expectation * failed * fails * following * functions * hugepages * identifiers * implicitly * in_capsule * increment * initialization * initiator * integrity * iteration * latencies * libraries * management * namespace * negotiated * negotiation * nonexistent * number * occur * occurred * occurring * offsetting * operations * outstanding * overwhelmed * parameter * parameters * partition * preempts * provisioned * responded * segment * skipped * struct * subsystem * success * successfully * sufficiently * this * threshold * transfer * transferred * unchanged * unexpected * unregistered * useless * utility * value * variable * workload
Change-Id: I21ca7dab4ef575b5767e50aaeabc34314ab13396 Signed-off-by: Josh Soref <jsoref@gmail.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10409 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
|
Revision tags: v21.10, v21.10-rc1, v21.07, v21.07-rc1 |
|
| #
49c6afbf |
| 17-May-2021 |
Jiewei Ke <jiewei@smartx.com> |
thread: speed up io_device lookup by using rbtree
Use the macros for red black tree provided by Free BSD to speed up io_device lookup.
This change was reverted once but is re-submitted because the
thread: speed up io_device lookup by using rbtree
Use the macros for red black tree provided by Free BSD to speed up io_device lookup.
This change was reverted once but is re-submitted because the critical issue was fixed by the preceding patches.
In addition to the fix, add unit tests to verify the fix explicitly.
Signed-off-by: Jiewei Ke <jiewei@smartx.com> Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I97ed77f6e5ceacdf2593c9751b55a7d0b92c0b35 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8525 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|
| #
5fc0475c |
| 05-Jun-2021 |
Jiewei Ke <jiewei@smartx.com> |
thread: Make the definition of struct spdk_io_channel private
Move the definition of structure spdk_io_channel into lib/thread/thread_internal.h, so we don't have to update SO_VER for other librarie
thread: Make the definition of struct spdk_io_channel private
Move the definition of structure spdk_io_channel into lib/thread/thread_internal.h, so we don't have to update SO_VER for other libraries in future when we need to change the internal details on the structure.
Signed-off-by: Jiewei Ke <jiewei@smartx.com> Change-Id: I3d2ca7a8737972e0b33ce92e464da42c48f89dec Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8189 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ziye Yang <ziye.yang@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
show more ...
|
| #
c7540439 |
| 07-Jun-2021 |
Jim Harris <james.r.harris@intel.com> |
Revert "thread: speed up io_device lookup by using rbtree"
This reverts commit 2246a9371809c30333b1844afbf9772c4b06db79.
We are seeing a lot of failure on io_device lookup in the test pool. These
Revert "thread: speed up io_device lookup by using rbtree"
This reverts commit 2246a9371809c30333b1844afbf9772c4b06db79.
We are seeing a lot of failure on io_device lookup in the test pool. These only showed up after this patch was merged and sees the most likely culprit. Reverting this patch for now while we continue debug.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I2ab098319dfae3a5356eb4fe0dbf9f4af2d2eea5 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8199 Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
show more ...
|
| #
2246a937 |
| 17-May-2021 |
Jiewei Ke <jiewei@smartx.com> |
thread: speed up io_device lookup by using rbtree
Use the macros for red black tree provided by Free BSD to speed up io_device lookup.
Signed-off-by: Jiewei Ke <jiewei@smartx.com> Change-Id: Ib3bd3
thread: speed up io_device lookup by using rbtree
Use the macros for red black tree provided by Free BSD to speed up io_device lookup.
Signed-off-by: Jiewei Ke <jiewei@smartx.com> Change-Id: Ib3bd382bbeb610503194e7d7bfd569f60a0d0121 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7894 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
show more ...
|
| #
4e9adb3b |
| 19-May-2021 |
Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> |
thread: Replace TAILQ by Red Black tree for timed pollers
Use the macros for red black tree provided by Free BSD to manage timed pollers efficiently.
Allow RB_INSERT() to insert elements with dupli
thread: Replace TAILQ by Red Black tree for timed pollers
Use the macros for red black tree provided by Free BSD to manage timed pollers efficiently.
Allow RB_INSERT() to insert elements with duplicated keys by changing the compare function to return 1 if two keys are equal.
Check the return code of RB_INSERT() because this is the first use case for RB tree macros in SPDK. We did the same for RB_REMOVE() by adding another temporary variable but we remove it from this patch because it is not so important compared with RB_INSERT().
When a timed poller is inserted, update the cache for the closest (leftmost) timed poller only if the tree was empty before or the closest (leftmost) timed poller was actually changed. We do not have to use RB_MIN() because all duplicated entries are inserted on the right side.
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Ibe253ca8eecc10116548b5eedbcdba8fb961b88d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7722 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
show more ...
|
| #
3ca15e33 |
| 18-May-2021 |
Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> |
thread: Set poller to PAUSING even when it is in RUNNING
This change is a preparation to first dequeue the closest timed poller always when it is expired. Previously the poller_remove_timer() calls
thread: Set poller to PAUSING even when it is in RUNNING
This change is a preparation to first dequeue the closest timed poller always when it is expired. Previously the poller_remove_timer() calls were not consistent and difficult to follow.
spdk_poller_pause() sets poller to PAUSING even when it in RUNNING and move it to PAUSED after returning from its context.
If spdk_poller_pause() and spdk_poller_resume() are called while poller runs, it is moved to WAITING. Hence thread_execute_poller() and thread_execute_timed_poller() ignore such cases.
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I29340613a2ec0c3529d0886f4d81c0a0fdf8745d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7908 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|
| #
50487701 |
| 18-May-2021 |
Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> |
ut/thread: Test if multiple timed pollers are expired simultaneously
Add a little complex test cases to avoid regression by the following patches.
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.
ut/thread: Test if multiple timed pollers are expired simultaneously
Add a little complex test cases to avoid regression by the following patches.
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: I1c94edd913f0a582868e355be085a1faf9bd1a94 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7913 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
show more ...
|