cleanup framework - eviction policy

Signed-off-by: Karolina Rogowska <karolina.rogowska@intel.com>
This commit is contained in:
Karolina Rogowska 2021-07-28 14:08:10 +02:00
parent cb69102f9f
commit beb36f045c
5 changed files with 9 additions and 41 deletions

View File

@ -40,11 +40,6 @@ class Cache:
cp = stats.config_stats.cleaning_policy
return CleaningPolicy[cp]
def get_eviction_policy(self):
stats = self.get_statistics()
ep = stats.config_stats.eviction_policy
return EvictionPolicy[ep]
def get_metadata_mode(self):
if self.__metadata_mode is None:
stats = self.get_statistics()
@ -183,5 +178,4 @@ class Cache:
return CacheConfig(self.get_cache_line_size(),
self.get_cache_mode(),
self.get_cleaning_policy(),
self.get_eviction_policy(),
self.get_metadata_mode())

View File

@ -82,14 +82,6 @@ class SeqCutOffPolicy(Enum):
raise ValueError(f"{name} is not a valid sequential cut off name")
class EvictionPolicy(Enum):
lru = "LRU"
DEFAULT = lru
def __str__(self):
return self.value
class MetadataMode(Enum):
normal = "normal"
atomic = "atomic"
@ -378,14 +370,12 @@ class CacheConfig:
cache_line_size=CacheLineSize.DEFAULT,
cache_mode=CacheMode.DEFAULT,
cleaning_policy=CleaningPolicy.DEFAULT,
eviction_policy=EvictionPolicy.DEFAULT,
metadata_mode=MetadataMode.normal,
kernel_parameters=None
):
self.cache_line_size = cache_line_size
self.cache_mode = cache_mode
self.cleaning_policy = cleaning_policy
self.eviction_policy = eviction_policy
self.metadata_mode = metadata_mode
self.kernel_parameters = kernel_parameters
@ -394,7 +384,6 @@ class CacheConfig:
self.cache_line_size == other.cache_line_size
and self.cache_mode == other.cache_mode
and self.cleaning_policy == other.cleaning_policy
and self.eviction_policy == other.eviction_policy
and self.metadata_mode == other.metadata_mode
and equal_or_default(
self.kernel_parameters, other.kernel_parameters, KernelParameters.DEFAULT

View File

@ -6,7 +6,7 @@
# Order in arrays is important!
config_stats_cache = [
"cache id", "cache size", "cache device", "core devices", "inactive core devices",
"write policy", "eviction policy", "cleaning policy", "promotion policy", "cache line size",
"write policy", "cleaning policy", "promotion policy", "cache line size",
"metadata memory footprint", "dirty for", "metadata mode", "status"
]
config_stats_core = [
@ -230,7 +230,6 @@ class CacheConfigStats:
core_dev,
inactive_core_dev,
write_policy,
eviction_policy,
cleaning_policy,
promotion_policy,
cache_line_size,
@ -245,7 +244,6 @@ class CacheConfigStats:
self.core_dev = core_dev
self.inactive_core_dev = inactive_core_dev
self.write_policy = write_policy
self.eviction_policy = eviction_policy
self.cleaning_policy = cleaning_policy
self.promotion_policy = promotion_policy
self.cache_line_size = cache_line_size
@ -263,7 +261,6 @@ class CacheConfigStats:
f"Core devices: {self.core_dev}\n"
f"Inactive core devices: {self.inactive_core_dev}\n"
f"Write policy: {self.write_policy}\n"
f"Eviction policy: {self.eviction_policy}\n"
f"Cleaning policy: {self.cleaning_policy}\n"
f"Promotion policy: {self.promotion_policy}\n"
f"Cache line size: {self.cache_line_size}\n"
@ -283,7 +280,6 @@ class CacheConfigStats:
and self.core_dev == other.core_dev
and self.inactive_core_dev == other.inactive_core_dev
and self.write_policy == other.write_policy
and self.eviction_policy == other.eviction_policy
and self.cleaning_policy == other.cleaning_policy
and self.promotion_policy == other.promotion_policy
and self.cache_line_size == other.cache_line_size

View File

@ -5,18 +5,18 @@
import time
from datetime import timedelta
import pytest
from datetime import timedelta
from api.cas import casadm
from api.cas.cache_config import CacheMode
from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan
from core.test_run import TestRun
from test_utils.size import Size, Unit
from test_utils.os_utils import Udev, sync
from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan
from test_tools.fio.fio import Fio
from test_tools.fio.fio_param import ReadWrite, IoEngine, VerifyMethod
from test_utils.os_utils import Udev, sync
from test_utils.size import Size, Unit
io_size = Size(10000, Unit.Blocks4096)
@ -88,11 +88,6 @@ def test_cache_stop_and_load(cache_mode):
f"Cleaning policy is: {check_cache_config.cleaning_policy}, "
f"should be: {cache.get_cleaning_policy()}\n"
)
if check_cache_config.eviction_policy != cache.get_eviction_policy():
failed_params += (
f"Eviction policy is: {check_cache_config.eviction_policy}, "
f"should be: {cache.get_eviction_policy()}\n"
)
if check_cache_config.cache_line_size != cache.get_cache_line_size():
failed_params += (
f"Cache line size is: {check_cache_config.cache_line_size}, "

View File

@ -4,8 +4,10 @@
#
import pytest
import time
from datetime import timedelta
import pytest
from api.cas import casadm
from api.cas.cache_config import (
@ -14,7 +16,6 @@ from api.cas.cache_config import (
CacheModeTrait,
CacheStatus,
CleaningPolicy,
EvictionPolicy,
MetadataMode,
PromotionPolicy,
)
@ -24,13 +25,11 @@ from api.cas.statistics import (
usage_stats, request_stats, block_stats_core, block_stats_cache, error_stats
)
from core.test_run import TestRun
from datetime import timedelta
from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan
from test_tools.fio.fio import Fio
from test_tools.fio.fio_param import ReadWrite, IoEngine
from test_utils.size import Size, Unit
# One cache instance per every cache mode:
caches_count = len(CacheMode)
cores_per_cache = 4
@ -275,11 +274,6 @@ def validate_cache_config_statistics(caches, after_io: bool = False):
failed_stats += (
f"For cache number {caches[i].cache_id} number of inactive core devices is "
f"{caches_stats[i].config_stats.inactive_core_dev}, should be 0\n")
if caches_stats[i].config_stats.eviction_policy.upper() != EvictionPolicy.DEFAULT.value:
failed_stats += (
f"For cache number {caches[i].cache_id} eviction policy is "
f"{caches_stats[i].config_stats.eviction_policy.upper()}, "
f"should be {EvictionPolicy.DEFAULT}\n")
if caches_stats[i].config_stats.cleaning_policy.upper() != CleaningPolicy.DEFAULT.value:
failed_stats += (
f"For cache number {caches[i].cache_id} cleaning policy is "