1*32cad1ffSPhilippe Mathieu-Daudé /* 2*32cad1ffSPhilippe Mathieu-Daudé * dirty page rate helper functions 3*32cad1ffSPhilippe Mathieu-Daudé * 4*32cad1ffSPhilippe Mathieu-Daudé * Copyright (c) 2022 CHINA TELECOM CO.,LTD. 5*32cad1ffSPhilippe Mathieu-Daudé * 6*32cad1ffSPhilippe Mathieu-Daudé * Authors: 7*32cad1ffSPhilippe Mathieu-Daudé * Hyman Huang(黄勇) <huangy81@chinatelecom.cn> 8*32cad1ffSPhilippe Mathieu-Daudé * 9*32cad1ffSPhilippe Mathieu-Daudé * This work is licensed under the terms of the GNU GPL, version 2 or later. 10*32cad1ffSPhilippe Mathieu-Daudé * See the COPYING file in the top-level directory. 11*32cad1ffSPhilippe Mathieu-Daudé */ 12*32cad1ffSPhilippe Mathieu-Daudé 13*32cad1ffSPhilippe Mathieu-Daudé #ifndef QEMU_DIRTYRATE_H 14*32cad1ffSPhilippe Mathieu-Daudé #define QEMU_DIRTYRATE_H 15*32cad1ffSPhilippe Mathieu-Daudé 16*32cad1ffSPhilippe Mathieu-Daudé #include "qapi/qapi-types-migration.h" 17*32cad1ffSPhilippe Mathieu-Daudé 18*32cad1ffSPhilippe Mathieu-Daudé typedef struct VcpuStat { 19*32cad1ffSPhilippe Mathieu-Daudé int nvcpu; /* number of vcpu */ 20*32cad1ffSPhilippe Mathieu-Daudé DirtyRateVcpu *rates; /* array of dirty rate for each vcpu */ 21*32cad1ffSPhilippe Mathieu-Daudé } VcpuStat; 22*32cad1ffSPhilippe Mathieu-Daudé 23*32cad1ffSPhilippe Mathieu-Daudé int64_t vcpu_calculate_dirtyrate(int64_t calc_time_ms, 24*32cad1ffSPhilippe Mathieu-Daudé VcpuStat *stat, 25*32cad1ffSPhilippe Mathieu-Daudé unsigned int flag, 26*32cad1ffSPhilippe Mathieu-Daudé bool one_shot); 27*32cad1ffSPhilippe Mathieu-Daudé 28*32cad1ffSPhilippe Mathieu-Daudé void global_dirty_log_change(unsigned int flag, 29*32cad1ffSPhilippe Mathieu-Daudé bool start); 30*32cad1ffSPhilippe Mathieu-Daudé #endif 31