pyocf: Use Rio instead of raw IO API

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@huawei.com>
This commit is contained in:
Michal Mielewczyk 2025-03-27 09:31:18 +01:00
parent c7e47e226a
commit dacbe68a19
2 changed files with 38 additions and 32 deletions

View File

@ -17,6 +17,7 @@ from pyocf.types.io import IoDir, Sync
from pyocf.types.queue import Queue
from pyocf.utils import Size as S
from pyocf.types.shared import OcfError, OcfErrorCode, OcfCompletion, CacheLineSize
from pyocf.rio import Rio, ReadWrite
@pytest.mark.parametrize("cache_mode", CacheMode)
@ -152,13 +153,15 @@ def test_detach_cache_detach_core_cleaning(pyocf_ctx, cleaning_policy, promotion
cache.set_promotion_policy(promotion_policy)
for core in [core_1, core_2]:
vol = CoreVolume(core)
queue = core.cache.get_default_queue()
core_size = core.get_stats()["size"]
data = Data(core_size.B)
_io_to_core(vol, queue, data)
r = (
Rio()
.target(CoreVolume(core))
.readwrite(ReadWrite.WRITE)
.size(core.get_stats()["size"])
.qd(1)
.bs(S.from_KiB(64))
.run([core.cache.get_default_queue()])
)
core_1.detach()
@ -178,13 +181,15 @@ def test_detach_cache_retach_core_cleaning(pyocf_ctx, cleaning_policy, promotion
def _write_cores(cores_list):
for core in cores_list:
vol = CoreVolume(core)
queue = core.cache.get_default_queue()
core_size = core.get_stats()["size"]
data = Data(core_size.B)
_io_to_core(vol, queue, data)
r = (
Rio()
.target(CoreVolume(core))
.readwrite(ReadWrite.WRITE)
.size(core.get_stats()["size"])
.qd(1)
.bs(S.from_KiB(64))
.run([core.cache.get_default_queue()])
)
cache.add_core(core_1)
cache.add_core(core_2)
@ -222,13 +227,15 @@ def test_reattach_cache_reattach_core_cleaning(pyocf_ctx, cleaning_policy, promo
def _write_cores(cores_list):
for core in cores_list:
vol = CoreVolume(core)
queue = core.cache.get_default_queue()
core_size = core.get_stats()["size"]
data = Data(core_size.B)
_io_to_core(vol, queue, data)
r = (
Rio()
.target(CoreVolume(core))
.readwrite(ReadWrite.WRITE)
.size(core.get_stats()["size"])
.qd(1)
.bs(S.from_KiB(64))
.run([core.cache.get_default_queue()])
)
cache.add_core(core_1)
cache.add_core(core_2)

View File

@ -25,6 +25,7 @@ from pyocf.types.shared import (
from pyocf.types.volume import RamVolume
from pyocf.types.volume_core import CoreVolume
from pyocf.utils import Size
from pyocf.rio import Rio, ReadWrite
logger = logging.getLogger(__name__)
@ -96,17 +97,15 @@ def test_d2c_io(pyocf_ctx):
cache.detach_device()
vol = CoreVolume(core_1)
queue = core_1.cache.get_default_queue()
data = Data(4096)
vol.open()
io = vol.new_io(queue, 0, data.size, IoDir.WRITE, 0, 0)
io.set_data(data)
completion = Sync(io).submit()
vol.close()
assert completion.results["err"] == 0
r = (
Rio()
.target(CoreVolume(core_1))
.readwrite(ReadWrite.WRITE)
.size(core_1.get_stats()["size"])
.qd(1)
.bs(Size.from_KiB(64))
.run([core_1.cache.get_default_queue()])
)
def test_detach_cache_zero_superblock(pyocf_ctx):