Commit Graph

1934 Commits

Author SHA1 Message Date
Michal Mielewczyk
f75ad04ec7 pyocf: Remove redundant imports
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-12 14:07:30 +02:00
Robert Baldyga
d2fcd27d7a
Merge pull request #823 from mmichal10/fix-ram-check
Revert "Unstubify RAM check in posix evn"
2024-09-12 12:41:30 +02:00
Michal Mielewczyk
60271ebb72 Revert "Unstubify RAM check in posix evn"
This reverts commit 77d949bdcc.

Returning the actual amount of RAM may cause test_start_cache_huge_device to
fail

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-12 12:18:04 +02:00
Robert Baldyga
297f1cb8b0
Merge pull request #822 from mmichal10/fastpath_refactor
Refactor resolving fast path
2024-09-12 11:57:11 +02:00
Avi Halaf
bd06b1c9b8 Refactor resolving fast path
Signed-off-by: Avi Halaf <avi.halaf@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-10 16:47:40 +02:00
Robert Baldyga
d24e7bac5d
Merge pull request #820 from mmichal10/discard-fixes
Discard fixes
2024-09-10 15:31:53 +02:00
Michal Mielewczyk
ca7f3651e9 discard engine: lookup without updating hotness
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-10 15:20:51 +02:00
Michal Mielewczyk
0df0eec7f0 Uncouple lookup() and set_hot()
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-10 15:20:51 +02:00
Rafal Stefanowski
7dfe70f69b Fix discard step callback refcount
Signed-off-by: Rafal Stefanowski <rafal.stefanowski@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-10 15:20:51 +02:00
Robert Baldyga
070b16b31f
Merge pull request #819 from mmichal10/rename-ops
Rename engine_ops to engine_flush
2024-09-10 15:19:51 +02:00
Robert Baldyga
1bcd949a89 Rename engine_ops to engine_flush
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-10 15:16:33 +02:00
Robert Baldyga
fa8c28ca10
Merge pull request #818 from mmichal10/dont-flush-volatile-md
cleaner: skip metadata flush in volatile mode
2024-09-10 12:44:38 +02:00
Amir Haroush
7930ef9c21 cleaner: skip metadata flush in volatile mode
Signed-off-by: Amir Haroush <amir.haroush@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-10 12:32:25 +02:00
Robert Baldyga
bf679ecb49
Merge pull request #817 from mmichal10/env_ram_check
Unstubify RAM check in posix evn
2024-09-10 12:27:51 +02:00
Michal Mielewczyk
77d949bdcc Unstubify RAM check in posix evn
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-10 10:24:15 +02:00
Robert Baldyga
ebbf832cdc
Merge pull request #814 from mmichal10/debug-mechanism
Debug mechanism
2024-09-09 15:48:45 +02:00
Robert Baldyga
c07e44f036 pyocf: Fix cache settle
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-09-09 15:28:11 +02:00
Robert Baldyga
3ebdf38aa9 Introduce ocf_dbg_cache_is_settled()
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-09-09 15:28:11 +02:00
Michal Mielewczyk
f4d9f0dcf6 Introduce ocf_refcnt_zeroed()
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-09 15:28:09 +02:00
Robert Baldyga
1fbb00de8f
Merge pull request #811 from mmichal10/req-rewrq
Request improvements
2024-09-09 14:37:03 +02:00
Robert Baldyga
dc58eeae9b Introduce d2c request
This avoids unnecessary map allocation and initialization of unused fields of
request structure. It also allows to track thier number separately from
the regular requests

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-09 12:45:51 +02:00
Robert Baldyga
8b93b699c3 Eliminate queue -> cache mapping
Eliminate need to resolve cache based on the queue. This allows to share
the queue between cache instances. The queue still holds pointer to
a cache that owns the queue, but no management or io path relies on the
queue -> cache mapping.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-09 12:45:51 +02:00
Robert Baldyga
460cd461d3 Allocate requests for management path separately
Management path does not benefit much from mpools, as number of requests
allocated is very small. It's less restrictive (mngt_queue does not have
single-CPU affinity) thus avoiding mpool usage in management path allows
to introduce additional restrictions on mpool, leading to I/O performance
improvement.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-09 12:45:51 +02:00
Robert Baldyga
6cd5a27ea9
Merge pull request #812 from Kamoppl/kamilg/fix_tj_actions
github-actions: update checkout version
2024-09-09 12:39:31 +02:00
Kamil Gierszewski
0f60163a46
github-actions: update checkout version
Signed-off-by: Kamil Gierszewski <kamil.gierszewski@huawei.com>
2024-09-09 12:29:01 +02:00
Robert Baldyga
bfd28af1cc
Merge pull request #781 from Open-CAS/dependabot/github_actions/dot-github/workflows/tj-actions/changed-files-41
build(deps): bump tj-actions/changed-files from 18.2 to 41 in /.github/workflows
2024-09-09 11:19:04 +02:00
Robert Baldyga
193410e7b2
Merge pull request #810 from mmichal10/pt-stats
Introduce pass-through block stats
2024-09-06 15:33:23 +02:00
Sara Merzel
835eb708b5 Introduce pass-through block stats
Signed-off-by: Sara Merzel <sara.merzel@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-06 14:47:02 +02:00
Robert Baldyga
3ebf6e64c1
Merge pull request #808 from mmichal10/vol_and_req_fixes
Volume improvements
2024-09-06 14:24:48 +02:00
Robert Baldyga
5a1f6f1f8a
Merge pull request #809 from robertbaldyga/ram-needed-no-fail
Modify ocf_mngt_get_ram_needed to never fail
2024-09-06 14:20:24 +02:00
Amir Haroush
ed62866324 Modify ocf_mngt_get_ram_needed to never fail
Signed-off-by: Amir Haroush <amir.haroush@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-09-05 15:41:54 +02:00
Gershon Geva
2096e34489 Pass user's params when opening a core volume
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-04 20:29:41 +02:00
Robert Baldyga
87b16aef6a Do not deinit user volume
The user is supposed to deinit/destroy it.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-03 16:10:56 +02:00
Robert Baldyga
3d99a2c938 Add missing ocf_volume_init() calls
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-03 16:10:56 +02:00
Robert Baldyga
8aa2d0fb63 Remove unused attach context property
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-03 16:10:56 +02:00
Robert Baldyga
01902e1206
Merge pull request #807 from mmichal10/parallelize-fixes
Parallelize fixes
2024-09-03 12:49:54 +02:00
Robert Baldyga
5e6a90a293 parallelize: Fix race condition
In situation when all the shards finish their work before parallelize
loop does it's final loop condition check, which involves access to
parallelize object, it's possible that parallelize object will be
deinitialized before this final access.

Increasing refcount by 1 before running parallelize and decreasing it
only after the loop is finished addresses this problem.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-02 12:22:11 +02:00
Robert Baldyga
55b99518ed parallelize: Create number of shards requested by user
In some scenarios running the exact number of shards, regardless of
number of available queues is crucial for correctness of operation.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-02 12:22:11 +02:00
Robert Baldyga
5c714cb3de parallelize: Use mngt_queue only as a fallback
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-02 12:22:11 +02:00
Robert Baldyga
83d5642547
Merge pull request #806 from mmichal10/deffered-miss
Count deferred requests as full miss
2024-09-02 12:18:31 +02:00
Michael Lyulko
470204ac70 Count deferred requests as full miss
Otherwise, it may increase the number of hits, while the overall performance
has not been improved. This way, the hit rate is more correlated with
the performance changes.

Signed-off-by: Michael Lyulko <michael.lyulko@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-02 09:21:28 +02:00
Robert Baldyga
35bf43b2e5
Merge pull request #805 from mmichal10/locking-fixes
Locking and queue improvements
2024-08-30 11:03:58 +02:00
Michal Mielewczyk
53756e81be Queue visitor API
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 10:45:57 +02:00
Robert Baldyga
b00ab08473 Introduce io_queues_lock
The queues can be created and destroyed dynamically at any point in
the cache lifetime, and this can happen from different execution contexts,
thus there is a need to protect the queue_list with a lock.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 10:45:36 +02:00
Robert Baldyga
8db93260ae Avoid adding mngt_queue to io_queues list
Previously every created queue was added to io_queues list, which
made mngt_queue being used in ocf_parallelize. Change mngt_queue creation
API so that mngt_queue is not added to the list and doesn't have
unnecessary functionalities initialized.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 10:45:26 +02:00
Michael Lyulko
1d903f4038 Fix debug stats compilation
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 10:16:26 +02:00
Michal Mielewczyk
0a9a173f33 Add missing flush_mutext destroy
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 10:15:08 +02:00
Michal Mielewczyk
2221a7bdf8 Add missing cache lock deinit
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 09:52:05 +02:00
Michal Mielewczyk
28f679cc91 Add missing cache unlock
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 09:52:05 +02:00
Michal Mielewczyk
a542cfa690 Refactor cache_trylock()
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 09:52:05 +02:00