On Mon, Nov 26, 2018 at 07:58:23AM +0800, Yang Yang wrote: > When si_mem_available() calculates 'available', it takes SWAP > into account. But if CONFIG_SWAP is N or SWAP is off(some embedded system > would like to do that), there is no need to consider it. I don't understand this patch. The pagecache can be written back to storage if it is dirty, regardless of whether there is swap space. > @@ -4724,9 +4726,13 @@ long si_mem_available(void) > * Not all the page cache can be freed, otherwise the system will > * start swapping. Assume at least half of the page cache, or the > * low watermark worth of cache, needs to stay. > + * But if CONFIG_SWAP is N or SWAP is off, do not consider it. > */ > pagecache = pages[LRU_ACTIVE_FILE] + pages[LRU_INACTIVE_FILE]; > - pagecache -= min(pagecache / 2, wmark_low); > +#ifdef CONFIG_SWAP > + if (i.totalswap > 0) > + pagecache -= min(pagecache / 2, wmark_low); > +#endif > available += pagecache; > > /* > -- > 2.15.2 >