xref: /openbmc/qemu/include/sysemu/dirtylimit.h (revision 15699cf5)
1cc2b33eaSHyman Huang(黄勇) /*
2cc2b33eaSHyman Huang(黄勇)  * Dirty page rate limit common functions
3cc2b33eaSHyman Huang(黄勇)  *
4cc2b33eaSHyman Huang(黄勇)  * Copyright (c) 2022 CHINA TELECOM CO.,LTD.
5cc2b33eaSHyman Huang(黄勇)  *
6cc2b33eaSHyman Huang(黄勇)  * Authors:
7cc2b33eaSHyman Huang(黄勇)  *  Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
8cc2b33eaSHyman Huang(黄勇)  *
9cc2b33eaSHyman Huang(黄勇)  * This work is licensed under the terms of the GNU GPL, version 2 or later.
10cc2b33eaSHyman Huang(黄勇)  * See the COPYING file in the top-level directory.
11cc2b33eaSHyman Huang(黄勇)  */
12cc2b33eaSHyman Huang(黄勇) #ifndef QEMU_DIRTYRLIMIT_H
13cc2b33eaSHyman Huang(黄勇) #define QEMU_DIRTYRLIMIT_H
14cc2b33eaSHyman Huang(黄勇) 
15cc2b33eaSHyman Huang(黄勇) #define DIRTYLIMIT_CALC_TIME_MS         1000    /* 1000ms */
16cc2b33eaSHyman Huang(黄勇) 
17cc2b33eaSHyman Huang(黄勇) int64_t vcpu_dirty_rate_get(int cpu_index);
18cc2b33eaSHyman Huang(黄勇) void vcpu_dirty_rate_stat_start(void);
19cc2b33eaSHyman Huang(黄勇) void vcpu_dirty_rate_stat_stop(void);
20cc2b33eaSHyman Huang(黄勇) void vcpu_dirty_rate_stat_initialize(void);
21cc2b33eaSHyman Huang(黄勇) void vcpu_dirty_rate_stat_finalize(void);
22baa60983SHyman Huang(黄勇) 
23baa60983SHyman Huang(黄勇) void dirtylimit_state_lock(void);
24baa60983SHyman Huang(黄勇) void dirtylimit_state_unlock(void);
25baa60983SHyman Huang(黄勇) void dirtylimit_state_initialize(void);
26baa60983SHyman Huang(黄勇) void dirtylimit_state_finalize(void);
27baa60983SHyman Huang(黄勇) bool dirtylimit_in_service(void);
28baa60983SHyman Huang(黄勇) bool dirtylimit_vcpu_index_valid(int cpu_index);
29baa60983SHyman Huang(黄勇) void dirtylimit_process(void);
30baa60983SHyman Huang(黄勇) void dirtylimit_change(bool start);
31baa60983SHyman Huang(黄勇) void dirtylimit_set_vcpu(int cpu_index,
32baa60983SHyman Huang(黄勇)                          uint64_t quota,
33baa60983SHyman Huang(黄勇)                          bool enable);
34baa60983SHyman Huang(黄勇) void dirtylimit_set_all(uint64_t quota,
35baa60983SHyman Huang(黄勇)                         bool enable);
36baa60983SHyman Huang(黄勇) void dirtylimit_vcpu_execute(CPUState *cpu);
37*15699cf5SHyman Huang(黄勇) uint64_t dirtylimit_throttle_time_per_round(void);
38*15699cf5SHyman Huang(黄勇) uint64_t dirtylimit_ring_full_time(void);
39cc2b33eaSHyman Huang(黄勇) #endif
40