Robert Baldyga
a1af1809d8
Fix error accounting in forward_io
...
Resetting cache_error/core_error in ocf_req_forward_* functions may lead
to overwriting already reported error if the forward is being done in the
loop.
To avoid this potential problem, introduce set of forward init functions
intended to be called before the entire forward operation, which resets
the error code and sets a forward callback.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-10-14 16:54:51 +02:00
Robert Baldyga
6ad1007e6f
Merge pull request #848 from robertbaldyga/maintainer-email
...
Update maintainer's email
2024-10-07 13:30:13 +02:00
Robert Baldyga
89d48a7d39
Update maintainer's email
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-10-07 09:37:34 +02:00
Robert Baldyga
d166bb7938
Merge pull request #846 from mmichal10/flush-tests
...
Flush tests
2024-10-04 08:50:33 +02:00
Robert Baldyga
b16b49c84d
tests: Introduce cache/core flush test
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-10-04 07:54:46 +02:00
Roel Apfelbaum
b8ea10f30c
pyocf: Fix core.reset_stats()
...
Signed-off-by: Roel Apfelbaum <roel.apfelbaum@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-10-04 07:52:14 +02:00
Robert Baldyga
f729887938
Merge pull request #845 from robertbaldyga/fix-ubsan-false-positive
...
Avoid UBSAN false positive
2024-10-02 16:58:42 +02:00
Robert Baldyga
75fb6a59e0
Avoid UBSAN false positive
...
UBSAN: array-index-out-of-bounds in src/ocf_request.c:230:44
index 1 is out of range for type 'ocf_map_info [*]'
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-10-02 16:47:17 +02:00
Robert Baldyga
630748a1e7
Merge pull request #844 from mmichal10/engine-errors-test
...
Engine errors test
2024-10-02 16:26:00 +02:00
Michal Mielewczyk
a681f7ec7e
pyocf: Test for reporting and accounting IO errors
...
Test for bug fixed in 237f6c708a
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-10-02 16:21:10 +02:00
Michal Mielewczyk
6ec4f6cceb
pyocf: rio: reads and writes accounting
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-10-02 15:55:28 +02:00
Michal Mielewczyk
818dacfe89
pyocf: Disarm error volumes in teardown
...
This prevents obfuscating the actual test errors
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-10-02 15:52:21 +02:00
Robert Baldyga
575b1abc50
Merge pull request #840 from mmichal10/d2c-dc
...
Test for IO in d2c after attaching cache
2024-10-02 15:50:12 +02:00
Michal Mielewczyk
191471af1b
Test for IO in d2c after attaching cache
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-10-02 15:33:06 +02:00
Robert Baldyga
1aa9c382c7
Merge pull request #843 from mmichal10/suppress-cache-errors
...
Don't modify req->error for IOs outside io engines
2024-10-01 14:24:35 +02:00
Michal Mielewczyk
237f6c708a
Don't modify req->error for IOs outside io engines
...
`req->error` should be modified by the request's owner only; hence, if
the request has been allocated to handle IO (i.e. it's not an internal OCF
request) only engines can change it
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-10-01 14:06:26 +02:00
Robert Baldyga
f59f6e4b33
Merge pull request #842 from robertbaldyga/fix-inline
...
Place "inline" before the type declaration
2024-10-01 09:52:36 +02:00
Robert Baldyga
3f2b382a2c
Place "inline" before the type declaration
...
It's needed to make OCF compile with kernel 6.11.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-09-28 09:42:55 +02:00
Robert Baldyga
c978848786
Merge pull request #841 from mmichal10/static-functions
...
Fix missing 'static' identifier
2024-09-27 12:23:59 +02:00
Michal Mielewczyk
e42df078c3
Add missing 'static' identifier
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-27 11:25:21 +02:00
Robert Baldyga
34778d4529
Merge pull request #838 from robertbaldyga/fix-wi-double-completion
...
Fix double completion in engine_wi
2024-09-25 09:20:06 +02:00
Robert Baldyga
3e21b11703
Remove unnecessary references to req->req_remaining
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-09-24 20:06:24 +02:00
Robert Baldyga
fd508435d6
Fix double completion in engine_wi
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-09-24 20:04:09 +02:00
Robert Baldyga
d126a30cce
Merge pull request #836 from rafalste/parallelize_use_mngt_queue
...
Use management queue for parallelized management operations
2024-09-24 15:12:50 +02:00
Rafal Stefanowski
97ee3af8f7
Use management queue for parallelized management operations
...
When IO queues are used for parallelized management operations,
e.g. changing cleaning policy, a deadlock may occur due to global
metadata lock interfering with taking request from IO queue,
as they might be run on the same thread. As a workaround using
a management queue specifically for such operations eliminates
this problem.
Signed-off-by: Rafal Stefanowski <rafal.stefanowski@huawei.com>
2024-09-23 14:05:33 +02:00
Robert Baldyga
d8994e886e
Merge pull request #835 from mmichal10/composite-improvements
...
Composite improvements
2024-09-23 12:33:35 +02:00
Michal Mielewczyk
c6d2436622
volume: add description to 'uuid_copy' filed
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-23 12:15:23 +02:00
Michal Mielewczyk
82c8d4f45c
composite volume: add subvolume iterator API
...
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 17:59:37 +02:00
Robert Baldyga
6907abeba2
Merge pull request #831 from mmichal10/io_forward_pt2
...
Io forward pt2
2024-09-20 17:21:36 +02:00
Robert Baldyga
3fbb75756e
Consolidate ocf_request_io and ocf_request - io properties
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
d8d750462a
tests: pyocf: Remove legacy submit_* ops implementation from volumes
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
9b7f476470
pyocf: Update after removing struct ocf_io
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
6392ccecef
example: simple: Update after removing struct ocf_io
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Michal Mielewczyk
f72b92211d
Remove struct ocf_io
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
ff5c20b395
Redirect ocf_volume_submit_* operations to forward
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
be0ad8fe20
pyocf: Update tests after the API changes
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
c5741df0ed
Bind ocf_io to ocf_request
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
7fb6b62825
Drop support for submit_* ops in backend volumes
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
39d566c280
Replace submit with forward in ocf_metadata_read_sb()
...
This one is quite special, because it can be called before cache is
instantiated, which means we can not allocate the request using
ocf_req_new_mngt() due to absence of mngt_queue. For that reason we
simply allocate request using env_zalloc() and then release it with
env_free(). The lifecycle of the request is very straightforward and
the only used fields are forward counter and callback.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
9404716c3c
Replace submit with forward in metadata_raw_atomic
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
af3b379bb8
Replace submit with forward in metadata_io
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
29ca8fbbe4
Replace submit with forward in standby
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
322ae2687d
Replace submit with forward in cleaner
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
834786866c
Replace submit with forward in mngt
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
1c2d5bbcf3
Introduce forward_io_simple
...
It's intended to be used in a context, where cache is not initialized
and the io_queue is not available yet.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
1f26ceb563
composite: Add forward_io_simple support
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
2d303e8d09
Replace ocf_forward_get_io() with more specific ops
...
struct ocf_io is going to be removed soon (consolidated with ocf_request).
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
6aa141c247
Introduce ocf_forward_get_data()
...
Skip the ocf_io abstraction and get the data directly from the request.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
54f75ba492
Introduce ocf_req_forward_volume_*()
...
Those are meant to be used in context where no cache nor queue is
available (typically at very early stage of initialization). We reuse
cache_forward* callback and counter, because they will not be used
in this context anyway.
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00
Robert Baldyga
07abdf5d8b
composite: Add forward_metadata support
...
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-20 13:59:46 +02:00