summaryrefslogtreecommitdiffstats
path: root/src/spdk/ocf/inc/cleaning/alru.h
blob: 66548bbecead16e2a132302e429bd53750296732 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
 * Copyright(c) 2012-2018 Intel Corporation
 * SPDX-License-Identifier: BSD-3-Clause-Clear
 */
#ifndef __OCF_CLEANING_ALRU_H__
#define __OCF_CLEANING_ALRU_H__

/**
 * @file
 * @brief ALRU cleaning policy API
 */

enum ocf_cleaning_alru_parameters {
	ocf_alru_wake_up_time,
	ocf_alru_stale_buffer_time,
	ocf_alru_flush_max_buffers,
	ocf_alru_activity_threshold,
};

/**
 * @name ALRU cleaning policy parameters
 * @{
 */

/**
 * ALRU cleaning thread wake up time
 */

/** Wake up time minimum value */
#define OCF_ALRU_MIN_WAKE_UP			0
/** Wake up time maximum value */
#define OCF_ALRU_MAX_WAKE_UP			3600
/** Wake up time default value */
#define OCF_ALRU_DEFAULT_WAKE_UP		20

/**
 * ALRU cleaning thread staleness time
 */

/** Staleness time minimum value */
#define OCF_ALRU_MIN_STALENESS_TIME		1
/** Staleness time maximum value */
#define OCF_ALRU_MAX_STALENESS_TIME		3600
/** Staleness time default value*/
#define OCF_ALRU_DEFAULT_STALENESS_TIME		120

/**
 * ALRU cleaning thread number of dirty cache lines to be flushed in one cycle
 */

/** Dirty cache lines to be flushed in one cycle minimum value */
#define OCF_ALRU_MIN_FLUSH_MAX_BUFFERS		1
/** Dirty cache lines to be flushed in one cycle maximum value */
#define OCF_ALRU_MAX_FLUSH_MAX_BUFFERS		10000
/** Dirty cache lines to be flushed in one cycle default value */
#define OCF_ALRU_DEFAULT_FLUSH_MAX_BUFFERS	100

/**
 * ALRU cleaning thread cache idle time before flushing thread can start
 */

/** Idle time before flushing thread can start minimum value */
#define OCF_ALRU_MIN_ACTIVITY_THRESHOLD		0
/** Idle time before flushing thread can start maximum value */
#define OCF_ALRU_MAX_ACTIVITY_THRESHOLD		1000000
/** Idle time before flushing thread can start default value */
#define OCF_ALRU_DEFAULT_ACTIVITY_THRESHOLD	10000

/**
 * @}
 */


#endif /* __OCF_CLEANING_ALRU_H__ */