cleanup framework - eviction policy
Signed-off-by: Karolina Rogowska <karolina.rogowska@intel.com>
This commit is contained in:
parent
cb69102f9f
commit
beb36f045c
@ -40,11 +40,6 @@ class Cache:
|
|||||||
cp = stats.config_stats.cleaning_policy
|
cp = stats.config_stats.cleaning_policy
|
||||||
return CleaningPolicy[cp]
|
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):
|
def get_metadata_mode(self):
|
||||||
if self.__metadata_mode is None:
|
if self.__metadata_mode is None:
|
||||||
stats = self.get_statistics()
|
stats = self.get_statistics()
|
||||||
@ -183,5 +178,4 @@ class Cache:
|
|||||||
return CacheConfig(self.get_cache_line_size(),
|
return CacheConfig(self.get_cache_line_size(),
|
||||||
self.get_cache_mode(),
|
self.get_cache_mode(),
|
||||||
self.get_cleaning_policy(),
|
self.get_cleaning_policy(),
|
||||||
self.get_eviction_policy(),
|
|
||||||
self.get_metadata_mode())
|
self.get_metadata_mode())
|
||||||
|
@ -82,14 +82,6 @@ class SeqCutOffPolicy(Enum):
|
|||||||
raise ValueError(f"{name} is not a valid sequential cut off name")
|
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):
|
class MetadataMode(Enum):
|
||||||
normal = "normal"
|
normal = "normal"
|
||||||
atomic = "atomic"
|
atomic = "atomic"
|
||||||
@ -378,14 +370,12 @@ class CacheConfig:
|
|||||||
cache_line_size=CacheLineSize.DEFAULT,
|
cache_line_size=CacheLineSize.DEFAULT,
|
||||||
cache_mode=CacheMode.DEFAULT,
|
cache_mode=CacheMode.DEFAULT,
|
||||||
cleaning_policy=CleaningPolicy.DEFAULT,
|
cleaning_policy=CleaningPolicy.DEFAULT,
|
||||||
eviction_policy=EvictionPolicy.DEFAULT,
|
|
||||||
metadata_mode=MetadataMode.normal,
|
metadata_mode=MetadataMode.normal,
|
||||||
kernel_parameters=None
|
kernel_parameters=None
|
||||||
):
|
):
|
||||||
self.cache_line_size = cache_line_size
|
self.cache_line_size = cache_line_size
|
||||||
self.cache_mode = cache_mode
|
self.cache_mode = cache_mode
|
||||||
self.cleaning_policy = cleaning_policy
|
self.cleaning_policy = cleaning_policy
|
||||||
self.eviction_policy = eviction_policy
|
|
||||||
self.metadata_mode = metadata_mode
|
self.metadata_mode = metadata_mode
|
||||||
self.kernel_parameters = kernel_parameters
|
self.kernel_parameters = kernel_parameters
|
||||||
|
|
||||||
@ -394,7 +384,6 @@ class CacheConfig:
|
|||||||
self.cache_line_size == other.cache_line_size
|
self.cache_line_size == other.cache_line_size
|
||||||
and self.cache_mode == other.cache_mode
|
and self.cache_mode == other.cache_mode
|
||||||
and self.cleaning_policy == other.cleaning_policy
|
and self.cleaning_policy == other.cleaning_policy
|
||||||
and self.eviction_policy == other.eviction_policy
|
|
||||||
and self.metadata_mode == other.metadata_mode
|
and self.metadata_mode == other.metadata_mode
|
||||||
and equal_or_default(
|
and equal_or_default(
|
||||||
self.kernel_parameters, other.kernel_parameters, KernelParameters.DEFAULT
|
self.kernel_parameters, other.kernel_parameters, KernelParameters.DEFAULT
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# Order in arrays is important!
|
# Order in arrays is important!
|
||||||
config_stats_cache = [
|
config_stats_cache = [
|
||||||
"cache id", "cache size", "cache device", "core devices", "inactive core devices",
|
"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"
|
"metadata memory footprint", "dirty for", "metadata mode", "status"
|
||||||
]
|
]
|
||||||
config_stats_core = [
|
config_stats_core = [
|
||||||
@ -230,7 +230,6 @@ class CacheConfigStats:
|
|||||||
core_dev,
|
core_dev,
|
||||||
inactive_core_dev,
|
inactive_core_dev,
|
||||||
write_policy,
|
write_policy,
|
||||||
eviction_policy,
|
|
||||||
cleaning_policy,
|
cleaning_policy,
|
||||||
promotion_policy,
|
promotion_policy,
|
||||||
cache_line_size,
|
cache_line_size,
|
||||||
@ -245,7 +244,6 @@ class CacheConfigStats:
|
|||||||
self.core_dev = core_dev
|
self.core_dev = core_dev
|
||||||
self.inactive_core_dev = inactive_core_dev
|
self.inactive_core_dev = inactive_core_dev
|
||||||
self.write_policy = write_policy
|
self.write_policy = write_policy
|
||||||
self.eviction_policy = eviction_policy
|
|
||||||
self.cleaning_policy = cleaning_policy
|
self.cleaning_policy = cleaning_policy
|
||||||
self.promotion_policy = promotion_policy
|
self.promotion_policy = promotion_policy
|
||||||
self.cache_line_size = cache_line_size
|
self.cache_line_size = cache_line_size
|
||||||
@ -263,7 +261,6 @@ class CacheConfigStats:
|
|||||||
f"Core devices: {self.core_dev}\n"
|
f"Core devices: {self.core_dev}\n"
|
||||||
f"Inactive core devices: {self.inactive_core_dev}\n"
|
f"Inactive core devices: {self.inactive_core_dev}\n"
|
||||||
f"Write policy: {self.write_policy}\n"
|
f"Write policy: {self.write_policy}\n"
|
||||||
f"Eviction policy: {self.eviction_policy}\n"
|
|
||||||
f"Cleaning policy: {self.cleaning_policy}\n"
|
f"Cleaning policy: {self.cleaning_policy}\n"
|
||||||
f"Promotion policy: {self.promotion_policy}\n"
|
f"Promotion policy: {self.promotion_policy}\n"
|
||||||
f"Cache line size: {self.cache_line_size}\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.core_dev == other.core_dev
|
||||||
and self.inactive_core_dev == other.inactive_core_dev
|
and self.inactive_core_dev == other.inactive_core_dev
|
||||||
and self.write_policy == other.write_policy
|
and self.write_policy == other.write_policy
|
||||||
and self.eviction_policy == other.eviction_policy
|
|
||||||
and self.cleaning_policy == other.cleaning_policy
|
and self.cleaning_policy == other.cleaning_policy
|
||||||
and self.promotion_policy == other.promotion_policy
|
and self.promotion_policy == other.promotion_policy
|
||||||
and self.cache_line_size == other.cache_line_size
|
and self.cache_line_size == other.cache_line_size
|
||||||
|
@ -5,18 +5,18 @@
|
|||||||
|
|
||||||
|
|
||||||
import time
|
import time
|
||||||
|
from datetime import timedelta
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from datetime import timedelta
|
|
||||||
from api.cas import casadm
|
from api.cas import casadm
|
||||||
from api.cas.cache_config import CacheMode
|
from api.cas.cache_config import CacheMode
|
||||||
from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan
|
|
||||||
from core.test_run import TestRun
|
from core.test_run import TestRun
|
||||||
from test_utils.size import Size, Unit
|
from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan
|
||||||
from test_utils.os_utils import Udev, sync
|
|
||||||
from test_tools.fio.fio import Fio
|
from test_tools.fio.fio import Fio
|
||||||
from test_tools.fio.fio_param import ReadWrite, IoEngine, VerifyMethod
|
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)
|
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"Cleaning policy is: {check_cache_config.cleaning_policy}, "
|
||||||
f"should be: {cache.get_cleaning_policy()}\n"
|
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():
|
if check_cache_config.cache_line_size != cache.get_cache_line_size():
|
||||||
failed_params += (
|
failed_params += (
|
||||||
f"Cache line size is: {check_cache_config.cache_line_size}, "
|
f"Cache line size is: {check_cache_config.cache_line_size}, "
|
||||||
|
@ -4,8 +4,10 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
import pytest
|
|
||||||
import time
|
import time
|
||||||
|
from datetime import timedelta
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
from api.cas import casadm
|
from api.cas import casadm
|
||||||
from api.cas.cache_config import (
|
from api.cas.cache_config import (
|
||||||
@ -14,7 +16,6 @@ from api.cas.cache_config import (
|
|||||||
CacheModeTrait,
|
CacheModeTrait,
|
||||||
CacheStatus,
|
CacheStatus,
|
||||||
CleaningPolicy,
|
CleaningPolicy,
|
||||||
EvictionPolicy,
|
|
||||||
MetadataMode,
|
MetadataMode,
|
||||||
PromotionPolicy,
|
PromotionPolicy,
|
||||||
)
|
)
|
||||||
@ -24,13 +25,11 @@ from api.cas.statistics import (
|
|||||||
usage_stats, request_stats, block_stats_core, block_stats_cache, error_stats
|
usage_stats, request_stats, block_stats_core, block_stats_cache, error_stats
|
||||||
)
|
)
|
||||||
from core.test_run import TestRun
|
from core.test_run import TestRun
|
||||||
from datetime import timedelta
|
|
||||||
from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan
|
from storage_devices.disk import DiskType, DiskTypeSet, DiskTypeLowerThan
|
||||||
from test_tools.fio.fio import Fio
|
from test_tools.fio.fio import Fio
|
||||||
from test_tools.fio.fio_param import ReadWrite, IoEngine
|
from test_tools.fio.fio_param import ReadWrite, IoEngine
|
||||||
from test_utils.size import Size, Unit
|
from test_utils.size import Size, Unit
|
||||||
|
|
||||||
|
|
||||||
# One cache instance per every cache mode:
|
# One cache instance per every cache mode:
|
||||||
caches_count = len(CacheMode)
|
caches_count = len(CacheMode)
|
||||||
cores_per_cache = 4
|
cores_per_cache = 4
|
||||||
@ -275,11 +274,6 @@ def validate_cache_config_statistics(caches, after_io: bool = False):
|
|||||||
failed_stats += (
|
failed_stats += (
|
||||||
f"For cache number {caches[i].cache_id} number of inactive core devices is "
|
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")
|
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:
|
if caches_stats[i].config_stats.cleaning_policy.upper() != CleaningPolicy.DEFAULT.value:
|
||||||
failed_stats += (
|
failed_stats += (
|
||||||
f"For cache number {caches[i].cache_id} cleaning policy is "
|
f"For cache number {caches[i].cache_id} cleaning policy is "
|
||||||
|
Loading…
Reference in New Issue
Block a user