Hello, everyone, I hope this email finds you well. I am a kernel developer and have been very interested in memory management and related data statistics recently. I noticed that there is a property called MemAvailable in /proc/meminfo. It is indeed helpful to estimated the available memory of my machine. Out of curiosity, however, I would like to inquire about some details with you: > Currently, the amount of memory that is available for a new workload, > without pushing the system into swap, can be estimated from MemFree, > Active(file), Inactive(file), and SReclaimable, as well as the "low" > watermarks from /proc/zoneinfo. 1. As described in patch 34e431b0ae398fc54ea69ff85ec700722c9da773, the estimation of MemAvaild takes `without pushing the system into swap` into account. Is this for performance consideration? 2. when I raise the memory watermark through /proc/sys/vm/watermark_scale_factor, the value of MemAvailable sharply decreases. After investigation, this decreasement mainly comes from the adjustment of mem watermark. Why shuoud we take the change of mem watermark into consideration? Is it also for performance consideration? Why the performance loss must be considered even for embedded devices that focus more one available memory ? 3. Assume that the performance loss caused by swap is tolerable on specific embedded devices. Is it more reasonable to use MemAvailable plus the fluctuation value of memory valuation due to watermark adjustment as the true available memory of these devices? Thank you for considering my inquiry. I eagerly anticipate the opportunity to connect with you and gain insights from your wealth of knowledge and experience. Warm regards, Jinhao Chen ZTE Corporation.