test fix: test_ioclass_eviction_priority
Using workload path per each io class Signed-off-by: Karolina Rogowska <karolina.rogowska@intel.com>
This commit is contained in:
parent
a70a862c6d
commit
5f59376ea9
@ -3,8 +3,6 @@
|
|||||||
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
# SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||||
#
|
#
|
||||||
|
|
||||||
from datetime import timedelta
|
|
||||||
|
|
||||||
from api.cas import casadm
|
from api.cas import casadm
|
||||||
from api.cas import ioclass_config
|
from api.cas import ioclass_config
|
||||||
from api.cas.cache_config import (
|
from api.cas.cache_config import (
|
||||||
@ -89,13 +87,14 @@ def get_io_class_usage(cache, io_class_id, percent=False):
|
|||||||
).usage_stats
|
).usage_stats
|
||||||
|
|
||||||
|
|
||||||
def run_io_dir(path, size_4k):
|
def run_io_dir(path, size_4k, offset=0):
|
||||||
dd = (
|
dd = (
|
||||||
Dd()
|
Dd()
|
||||||
.input("/dev/zero")
|
.input("/dev/zero")
|
||||||
.output(f"{path}")
|
.output(f"{path}")
|
||||||
.count(size_4k)
|
.count(size_4k)
|
||||||
.block_size(Size(1, Unit.Blocks4096))
|
.block_size(Size(1, Unit.Blocks4096))
|
||||||
|
.seek(offset)
|
||||||
)
|
)
|
||||||
TestRun.LOGGER.info(f"{dd}")
|
TestRun.LOGGER.info(f"{dd}")
|
||||||
output = dd.run()
|
output = dd.run()
|
||||||
|
@ -8,13 +8,13 @@ from math import isclose
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from .io_class_common import *
|
|
||||||
from api.cas.cache_config import CacheMode, CacheLineSize
|
from api.cas.cache_config import CacheMode, CacheLineSize
|
||||||
from api.cas.ioclass_config import IoClass
|
from api.cas.ioclass_config import IoClass
|
||||||
from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan
|
from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan
|
||||||
from test_tools import fs_utils
|
from test_tools import fs_utils
|
||||||
from test_tools.disk_utils import Filesystem
|
from test_tools.disk_utils import Filesystem
|
||||||
from test_utils.os_utils import sync, Udev
|
from test_utils.os_utils import sync, Udev
|
||||||
|
from .io_class_common import *
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand]))
|
@pytest.mark.require_disk("cache", DiskTypeSet([DiskType.optane, DiskType.nand]))
|
||||||
@ -130,11 +130,15 @@ def test_ioclass_eviction_priority(cache_line_size):
|
|||||||
::-1
|
::-1
|
||||||
] # List is ordered by eviction priority
|
] # List is ordered by eviction priority
|
||||||
io_classes_evicted = []
|
io_classes_evicted = []
|
||||||
|
io_offset = 0
|
||||||
for io_class in io_classes_to_evict:
|
for io_class in io_classes_to_evict:
|
||||||
|
io_size = int((io_class.max_occupancy * cache_size) / Unit.Blocks4096)
|
||||||
run_io_dir(
|
run_io_dir(
|
||||||
f"{target_io_class.dir_path}/tmp_file",
|
f"{target_io_class.dir_path}/tmp_file_{io_class.id}",
|
||||||
int((io_class.max_occupancy * cache_size) / Unit.Blocks4096),
|
io_size,
|
||||||
|
io_offset
|
||||||
)
|
)
|
||||||
|
io_offset += io_size
|
||||||
part_to_evict_end_occupancy = get_io_class_occupancy(
|
part_to_evict_end_occupancy = get_io_class_occupancy(
|
||||||
cache, io_class.id, percent=True
|
cache, io_class.id, percent=True
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user