Memory-compaction not working on Atmel SAMA5 ARM platform, kernel v4.14 and v4.20

From: Michael Haben
Date: Fri Mar 15 2019 - 06:08:00 EST


Hello all,


Memory-compaction is not working for me on an Atmel SAMA5D2 SoC with 128Mbyte of RAM, on kernel versions 4.14.73. 4.14.88 and 4.20.0

Using "cat /proc/buddyinfo" to observe the state of memory fragmentation, and "echo 1 > /proc/sys/vm/compact_memory" to (try to) trigger compaction.

My kernel's /proc/config.gz includes "CONFIG_COMPACTION=y" and "CONFIG_MIGRATION=y"

I have rebuilt v4.20 several++ times, enabling various "CONFIG_xxx" items trying to enable tracing, but without success (/sys/kernel/debug/tracing is not present), so I haven't been able to observe whether the compaction-trigger is having any effect at all.


Some circumstantial evidence: memory-compaction was working on another ARM platform (Raspberry Pi) with kernel v4.9 (Raspbian Jessie), but stopped working when I dist-upgraded it to v4.14.98 (Raspbian Stretch). The "
/proc/sys/vm/compact_memory" device-node is present, but writing to it has no effect on the output from "cat /proc/buddyinfo".


So my questions are:

1. Are "CONFIG_COMPACTION=y" + "CONFIG_MIGRATION=y" the only settings necessary for memory-compaction to be present and working in a kernel? I have Done My Own Research, but Am Not An Expert on Linux kernel features!

2. Must I persevere with trying to get tracing working, or is there another way I can debug this issue?


Thank you,

Mike Haben

ASH Wireless