【原创】(九)Linux内存管理 - zoned page frame allocator - 4 (3)

compaction_deferred/compaction_defer_reset/defer_compaction
上述这三个函数与内存碎片推迟compact有关,这三个函数是在try_to_compact_pages中调用。当free pages除去申请页面数高于水位值,且申请或备用的迁移类型至少有一个足够大的空闲页面时,可以认为compact成功。在没有成功时,可能需要推迟几次来处理。
struct zone结构中与之有关的字段如下:

struct zone { ... /* * On compaction failure, 1<<compact_defer_shift compactions * are skipped before trying again. The number attempted since * last failure is tracked with compact_considered. */ unsigned int compact_considered; //记录推迟次数 unsigned int compact_defer_shift; //(1 << compact_defer_shift)=推迟次数,最大为6 int compact_order_failed; //记录碎片整理失败时的申请order值 ... };

【原创】(九)Linux内存管理 - zoned page frame allocator - 4

【原创】(九)Linux内存管理 - zoned page frame allocator - 4

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjgpf.html