Commit Graph

257 Commits

Author SHA1 Message Date
Robert Baldyga
be068df400
Merge pull request #853 from mmichal10/repart
Repart
2025-02-04 16:39:49 +01:00
Robert Baldyga
08eb00665c
Merge pull request #854 from robertbaldyga/request-cleanup
A little cleanup between ocf_request and ocf_io
2025-02-04 15:20:44 +01:00
Robert Baldyga
b850727d17 tests: Fix d2c test
Cache attach operation is not supposed to complete unless all the d2c
requests are completed, thus need to handle it asynchronously.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-11-21 21:29:23 +01:00
Michal Mielewczyk
a18bee3d23 pyocf: ioclass statas api
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-10-21 19:32:51 +02:00
Robert Baldyga
85513332d7 Remove ocf_io_get()
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-10-15 09:55:56 +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
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
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
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
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
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
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
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
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
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
c07e44f036 pyocf: Fix cache settle
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
2024-09-09 15:28:11 +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
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
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
59227999da pyocf: fix standby detach completion
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 08:39:55 +02:00
Roel Apfelbaum
9f0147ab1e pyocf: refactor sync io operations
Replace the pattern:
	completion = OcfCompletion([("err", c_int)])
	io.callback = completion.callback
	io.submit()
	completion.wait()
with:
	completion = Sync(io).submit()
Also, remove some redundant imports.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 08:39:53 +02:00
Robert Baldyga
8d4661bdc9 pyocf: rio: Introduce copy()
This allows to create a Rio prototype object and the copy it for every
invocations so that some parameters can be overwritten without modifying
the prototype object itself.

Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 08:29:43 +02:00
Robert Baldyga
d892e3b0d5 pyocf: rio: Fix offset
Signed-off-by: Robert Baldyga <robert.baldyga@huawei.com>
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 08:29:42 +02:00
Michal Mielewczyk
16830cd3c3 pyocf: rio: Fix the default JobSpec
Make JobSpec dataclass' default values immutable.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-08-29 08:29:10 +02:00
Michal Mielewczyk
83ec255458 Disable changing cache params for detached cache
Majority of management operations should be blocked for detached cache,
although adding and removing cores should be possible.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-07-10 16:19:37 +02:00
Michal Mielewczyk
f8a0f88892 Test detaching cache twice
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
2024-07-10 16:16:18 +02:00
Robert Baldyga
93b6ddb8a7
Merge pull request #703 from jfckm/metadata-corruption-tests
Metadata corruption tests
2022-07-22 16:06:41 +02:00
Robert Baldyga
675cd11f40 Add missing license headers
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-07-22 08:33:55 +02:00
Jan Musial
b3bd778a78 pyocf: simplify volume open/close API
Make Volumes usable by both pyocf and OCF with clear open/_open split
and clean-up of instance/uuid tracking on C interface only.

Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
b1b3e134cf pyocf: clean-up hanging device reference
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
a0c6995189 pyocf: make open/close explicit
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
abc726d7f8 pyocf: warn about not-closed Volumes
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
4328fd77b0 pyocf: don't store UUIDs in Cache object
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
cfd8eea0c0 pyocf: fix cache device references
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
1bdf4a13ae pyocf: Improve volume instance lifecycle handling
We need a strong reference to volume for as long as OCF has it open.
For that I changed instance tracking dictionary from weakvalue to
normal. This way I made sure that GC won't clean up Volume before its
closed.

Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
83a28825d2 pyocf: Load standby from device
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
d87bdc3a43 pyocf: Improve buffer logger to also print on console
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
2aaa69b33b pyocf: Add helper for superblock size
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Jan Musial
eac7d64456 pyocf: Parse size from string
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-07-19 10:50:11 +02:00
Adam Rutkowski
69ef673bd1 pyocf: composite volume tests
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-06-29 12:30:21 +02:00
Adam Rutkowski
81396681f4 pyocf: extend OcfCompletion
1. add optional timeout and return value to wait()
2. add method to check whether completion was triggered

Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-06-29 12:30:21 +02:00
Adam Rutkowski
e2ea2b41e6 pyocf: extend ErrorDevice to inject error on flush and discard
Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
2022-06-29 12:30:21 +02:00
Jan Musial
fb83a182ee pyocf: API for getting cleaning policy from cache
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-06-22 14:02:14 +02:00
Jan Musial
2f289bd873 pyocf: update OcfErrorCode with new code
Signed-off-by: Jan Musial <jan.musial@intel.com>
2022-06-22 14:02:14 +02:00
Robert Baldyga
ef4bfc9ac3 pyocf: Make cache lookup by name a common utility
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
2022-06-22 12:01:54 +02:00