Skip to content

Page Zeroer Subsystem

include/mem/page_zeroer.h View source View on GitHub
struct page_zeroer_demand {
    struct ewma    rate;
    struct ewma    mad;
    atomic_size_t  consumed_epoch;
    atomic_size_t  stockout_epoch;
};
struct page_zeroer_rate {
    size_t     batch_blocks;
    fx32_32_t  safety_factor;
    fx32_32_t  integral;
    fx32_32_t  idle_scale;
};
struct page_zeroer_watermark {
    size_t  min_min_blocks;
    size_t  max_max_blocks;
    size_t  min_blocks;
    size_t  max_blocks;
};
struct page_zeroer_quota {
    struct page_zeroer_watermark  wm;
    struct page_zeroer_rate       rate;
    struct page_zeroer_demand     demand;
    time_t                        zero_block_time_ns;
    atomic_size_t                 num_zero_blocks;
};
struct page_zeroer {
    struct page_zeroer_quota  quotas[BUDDY_MAX_ORDER];
    struct daemon             *daemon;
};