Commit Graph

1880 Commits

Author SHA1 Message Date
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
Robert Baldyga
5859e432c8 Introduce ocf_forward_metadata()
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
17144e5d32 composite: Add forward_write_zeros 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
cd544e8ee5 Introduce ocf_forward_write_zeros()
This is meant to be used in atomic mode to avoid allocating huge buffers
for zeroing data on drive.

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
c7580a75d7
Merge pull request #832 from rafalste/fix_debug_macros
Fix metadata debug macros
2024-09-20 13:59:34 +02:00
Rafal Stefanowski
c1dc688fb5 Fix metadata debug macros
Signed-off-by: Rafal Stefanowski <rafal.stefanowski@huawei.com>
2024-09-20 10:09:40 +02:00
Robert Baldyga
4d9bc6eaa1
Merge pull request #829 from mmichal10/d2c-improvement
D2C improvement
2024-09-20 07:56:06 +02:00
Robert Baldyga
7d53dd1e41 Handle D2C early and fast
Avoid unnecessary code execution in D2C mode.
Avoid multiple req->d2c check in normal I/O path.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-19 23:58:26 +02:00
Robert Baldyga
df280cf5ec
Merge pull request #828 from mmichal10/io_forward
Io forward pt.1
2024-09-19 19:42:49 +02:00
Robert Baldyga
10098ccedd Remove unused functions
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-19 15:55:19 +02:00
Robert Baldyga
1ed707361f Modify engines to use forward API
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Rafal Stefanowski <rafal.stefanowski@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-19 15:55:19 +02:00
Robert Baldyga
e667c10b4a example: Add forward ops to volume
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-19 15:55:19 +02:00
Robert Baldyga
c9cd217a08 pyocf: Update to use forward API
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-19 15:55:19 +02:00
Robert Baldyga
0cd2393aaf Implement forward ops in composite volume
Allow composite volume to forward the io to sub-volumes, splitting it
into several forward operations when needed. This is still done with
zero allocations, making forward even more efficient when combined with
composite volume.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-19 15:55:19 +02:00
Robert Baldyga
7e73de0d51 volume: Introduce general IO forward mechanism
Allow the core volume IOs to be forwarded directly to backend volumes to
avoid unnecessary allocations.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-19 15:55:19 +02:00
Robert Baldyga
edce2c26a5
Merge pull request #833 from mmichal10/wi-fix
Clean dirty requests in WI
2024-09-19 15:34:38 +02:00
Jan Musial
5fadec7e32 Clean dirty requests in WI
Signed-off-by: Jan Musial <jan.musial@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-19 14:58:56 +02:00
Robert Baldyga
ba92aade52
Merge pull request #827 from mmichal10/engine-rd-refacotr
engine_rd refactor
2024-09-19 08:53:38 +02:00
Michal Mielewczyk
9c65ec955f engine_rd: Ignore backfill buffer allocation error
It's OK to proceed with a read even if failed to allocate a buffer for backfill

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-18 19:43:56 +02:00
Michal Mielewczyk
a3bccbba6c engine_rd: Refactor
Code beautification only, no functional changes.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-18 19:38:51 +02:00
Robert Baldyga
5531b9cc79
Merge pull request #826 from mmichal10/errors-in-engines
Errors in engines
2024-09-18 15:26:21 +02:00
Rafal Stefanowski
194e5a9172 Use cache_error and core_error flags only in WT
Signed-off-by: Rafal Stefanowski <rafal.stefanowski@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-09-18 14:04:08 +02:00
Rafal Stefanowski
2761540326 Report cache and core errors separately
Signed-off-by: Rafal Stefanowski <rafal.stefanowski@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-18 08:01:08 +02:00
Robert Baldyga
b3f5ca1c2f
Merge pull request #816 from mmichal10/zero-offset
Support set_data() with offset > 0
2024-09-17 21:00:35 +02:00
Roel Apfelbaum
73387c8f26 Support set_data() with offset > 0 for core
Signed-off-by: Roel Apfelbaum <roel.apfelbaum@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-17 16:26:27 +02:00
Robert Baldyga
eb44557aed
Merge pull request #824 from mmichal10/partial-hit-tests
Partial hit tests
2024-09-17 15:55:12 +02:00
Sara Merzel
9a6fe8a49b pyocf: Tests for partial hits
Signed-off-by: Sara Merzel <sara.merzel@huawei.com>
Signed-off-by: Roel Apfelbaum <roel.apfelbaum@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-17 14:16:23 +02:00
Michal Mielewczyk
97477d484f pyocf: Helpers for sync IOs for Volume
Signed-off-by: Sara Merzel <sara.merzel@huawei.com>
Signed-off-by: Roel Apfelbaum <roel.apfelbaum@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-09-17 10:04:02 +02:00
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