Comment by progval

20 hours ago

It's memory that the kernel cannot use to cache other applications' files.

This isn't true for OS like Windows where the kernel is informed that the memory is discardable and it can prioritize discarding that memory as necessary. It's a shame that Linux doesn't have something similar.

  • Linux supports it too through madvise():

           MADV_FREE (since Linux 4.5)
                  The application no longer requires the pages in the range
                  specified by addr and size.  The kernel can thus free these
                  pages, but the freeing could be delayed until memory
                  pressure occurs.
    

    and

           MADV_DONTNEED
                  Do not expect access in the near future.  (For the time
                  being, the application is finished with the given range, so
                  the kernel can free resources associated with it.)
    
                  After a successful MADV_DONTNEED operation, the semantics
                  of memory access in the specified region are changed:
                  subsequent accesses of pages in the range will succeed, but
                  will result in either repopulating the memory contents from
                  the up-to-date contents of the underlying mapped file (for
                  shared file mappings, shared anonymous mappings, and shmem-
                  based techniques such as System V shared memory segments)
                  or zero-fill-on-demand pages for anonymous private
                  mappings.
    

    Does Chrome use it, though?