MCPcopy Create free account
hub / github.com/1a1a11a/libCacheSim / create_cache

Function create_cache

libCacheSim/bin/cachesim/cache_init.h:15–179  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13#endif
14
15static inline cache_t *create_cache(const char *trace_path, const char *eviction_algo, const uint64_t cache_size,
16 const char *eviction_params, const bool consider_obj_metadata) {
17 common_cache_params_t cc_params = {
18 .cache_size = cache_size,
19 .default_ttl = 86400 * 300,
20 .hashpower = 24,
21 .consider_obj_metadata = consider_obj_metadata,
22};
23 cache_t *cache;
24
25 /* the trace provided is small */
26 if (trace_path != NULL && strstr(trace_path, "data/trace.") != NULL) cc_params.hashpower -= 8;
27
28 if (strcasecmp(eviction_algo, "lru") == 0) {
29 cache = LRU_init(cc_params, eviction_params);
30 } else if (strcasecmp(eviction_algo, "fifo") == 0) {
31 cache = FIFO_init(cc_params, eviction_params);
32 } else if (strcasecmp(eviction_algo, "arc") == 0) {
33 cache = ARC_init(cc_params, eviction_params);
34 } else if (strcasecmp(eviction_algo, "arcv0") == 0) {
35 cache = ARCv0_init(cc_params, eviction_params);
36 } else if (strcasecmp(eviction_algo, "lhd") == 0) {
37 cache = LHD_init(cc_params, eviction_params);
38 } else if (strcasecmp(eviction_algo, "random") == 0) {
39 cache = Random_init(cc_params, eviction_params);
40 } else if (strcasecmp(eviction_algo, "randomTwo") == 0) {
41 cache = RandomTwo_init(cc_params, eviction_params);
42 } else if (strcasecmp(eviction_algo, "lfu") == 0) {
43 cache = LFU_init(cc_params, eviction_params);
44 } else if (strcasecmp(eviction_algo, "gdsf") == 0) {
45 cache = GDSF_init(cc_params, eviction_params);
46 } else if (strcasecmp(eviction_algo, "lfuda") == 0) {
47 cache = LFUDA_init(cc_params, eviction_params);
48 } else if (strcasecmp(eviction_algo, "twoq") == 0 || strcasecmp(eviction_algo, "2q") == 0) {
49 cache = TwoQ_init(cc_params, eviction_params);
50 } else if (strcasecmp(eviction_algo, "slru") == 0) {
51 cache = SLRU_init(cc_params, eviction_params);
52 } else if (strcasecmp(eviction_algo, "slruv0") == 0) {
53 cache = SLRUv0_init(cc_params, eviction_params);
54 } else if (strcasecmp(eviction_algo, "hyperbolic") == 0) {
55 cc_params.hashpower = MAX(cc_params.hashpower - 8, 16);
56 cache = Hyperbolic_init(cc_params, eviction_params);
57 } else if (strcasecmp(eviction_algo, "lecar") == 0) {
58 cache = LeCaR_init(cc_params, eviction_params);
59 } else if (strcasecmp(eviction_algo, "lecarv0") == 0) {
60 cache = LeCaRv0_init(cc_params, eviction_params);
61 } else if (strcasecmp(eviction_algo, "RandomLRU") == 0) {
62 cache = RandomLRU_init(cc_params, eviction_params);
63 } else if (strcasecmp(eviction_algo, "cacheus") == 0) {
64 cache = Cacheus_init(cc_params, eviction_params);
65 } else if (strcasecmp(eviction_algo, "size") == 0) {
66 cache = Size_init(cc_params, eviction_params);
67 } else if (strcasecmp(eviction_algo, "lfucpp") == 0) {
68 cache = LFUCpp_init(cc_params, eviction_params);
69 } else if (strcasecmp(eviction_algo, "tinyLFU") == 0) {
70 if (eviction_params == NULL) {
71 cache = WTinyLFU_init(cc_params, eviction_params);
72 } else {

Callers 2

parse_cmdFunction · 0.70
parse_mini_cmdFunction · 0.50

Calls 15

LRU_initFunction · 0.85
FIFO_initFunction · 0.85
ARC_initFunction · 0.85
ARCv0_initFunction · 0.85
LHD_initFunction · 0.85
Random_initFunction · 0.85
RandomTwo_initFunction · 0.85
LFU_initFunction · 0.85
GDSF_initFunction · 0.85
LFUDA_initFunction · 0.85
TwoQ_initFunction · 0.85
SLRU_initFunction · 0.85

Tested by

no test coverage detected