目录1. reserved-memory缩减内存2. 为什么要通过2段512MB预留内存实现该缩减呢?3. reserved-momery中的no-map属性4. 预留的的内存是否会被统计到系统MemTotal中?本文是解决具体的一些思考总结,和Linux内核的reserved-memory机制相关。参考代码:Linux-6.101. reserved-memory缩减内存 实际开发过程有需求验小内存产品时系统性能情况,为节省成本直接将大内存产品的内存进行软件缩减成小内然后进行性能验证。 例如有8GB内存产品需要缩减为7GB内存,通过Linux内核的reserved-memory机制实现该缩减需求,具体修改如下。通过预留2段512MB内存的reserved-memory内存,来达到缩减1GB内存的目的。对于此预留机制实现的缩减方案会有一些疑问,随后就相关疑问进行调查解答。reserved-memory { #address-cells = 2; #size-cells = 2; ranges; removed-memory1:removed_memory_region1 { alloc-renges=0x0 0x00000000 0xffffffff 0xffffffff; size= 0x0 0x20000000; //512MBytes no-map; }; removed-memory2:removed_memory_region2 { alloc-renges=0x0 0x00000000 0xffffffff 0xffffffff; size= 0x0 0x20000000; //512MBytes no-map; }; }