Re: [PATCH] kernel: fs: drop_caches: add dds drop_caches_count

From: Vladimir Davydov
Date: Tue Feb 16 2016 - 03:44:25 EST


On Tue, Feb 16, 2016 at 02:58:04AM +0000, Nag Avadhanam (nag) wrote:
> We have a class of platforms that are essentially swap-less embedded
> systems that have limited memory resources (2GB and less).
>
> There is a need to implement early alerts (before the OOM killer kicks in)
> based on the current memory usage so admins can take appropriate steps (do
> not initiate provisioning operations but support existing services,
> de-provision certain services, etc. based on the extent of memory usage in
> the system) .
>
> There is also a general need to let end users know the available memory so
> they can determine if they can enable new services (helps in planning).
>
> These two depend upon knowing approximate (accurate within few 10s of MB)
> memory usage within the system. We want to alert admins before system
> exhibits any thrashing behaviors.

Have you considered using /proc/kpageflags for counting such pages? It
should already export all information about memory pages you might need,
e.g. which pages are mapped, which are anonymous, which are inactive,
basically all page flags and even more. Moreover, you can even determine
the set of pages that are really read/written by processes - see
/sys/kernel/mm/page_idle/bitmap. On such a small machine scanning the
whole pfn range should be pretty cheap, so you might find this API
acceptable.

Thanks,
Vladimir