From: Greg KH <gregkh@suse.de>
To: Leonid Moiseichuk <leonid.moiseichuk@nokia.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
cesarb@cesarb.net, kamezawa.hiroyu@jp.fujitsu.com,
emunson@mgebm.net, penberg@kernel.org, aarcange@redhat.com,
riel@redhat.com, mel@csn.ul.ie, rientjes@google.com,
dima@android.com, rebecca@android.com, san@google.com,
akpm@linux-foundation.org, vesa.jaaskelainen@nokia.com
Subject: Re: [PATCH 3.2.0-rc1 0/3] Used Memory Meter pseudo-device and related changes in MM
Date: Wed, 4 Jan 2012 11:56:12 -0800 [thread overview]
Message-ID: <20120104195612.GB19181@suse.de> (raw)
In-Reply-To: <cover.1325696593.git.leonid.moiseichuk@nokia.com>
On Wed, Jan 04, 2012 at 07:21:53PM +0200, Leonid Moiseichuk wrote:
> The main idea of Used Memory Meter (UMM) is to provide low-cost interface
> for user-space to notify about memory consumption using similar approach /proc/meminfo
> does but focusing only on "modified" pages which cannot be fogotten.
>
> The calculation formula in terms of meminfo looks the following:
> UsedMemory = (MemTotal - MemFree - Buffers - Cached - SwapCached) +
> (SwapTotal - SwapFree)
> It reflects well amount of system memory used in applications in heaps and shared pages.
>
> Previously (n770..n900) we had lowmem.c [1] which used LSM and did a lot other things,
> n9 implementation based on memcg [2] which has own problems, so the proposed variant
> I hope is the best one for n9:
> - Keeps connections from user space
> - When amount of modified pages reaches crossed pointed value for particular connection
> makes POLLIN and allow user-space app to read it and react
> - Economic as much as possible, so currently its operates if allocation higher than 487
> pages or last check happened 250 ms before
> Of course if no allocation happened then no activities performed, use-time
> must be not affected.
>
> Testing results:
> - Checkpatch produced 0 warning
> - Sparse does not produce warnings
> - One check costs ~20 us or less (could be checked with probe=1 insmod)
> - One connection costs 20 bytes in kernel-space (see observer structure) for 32-bit variant
> - For 10K connections poll update in requested in ~10ms, but for practically device expected
> to will have about 10 connections (like n9 has now).
>
> Known weak points which I do not know how to fix but will if you have a brillian idea:
> - Having hook in MM is nasty but MM/shrinker cannot be used there and LSM even worse idea
> - If I made
> $cat /dev/used_memory
> it is produced lines in non-stop mode. Adding position check in umm_read seems doesn not help,
> so "head -1 /dev/used_memory" should be used if you need to quick check
> - Format of output is USED_PAGES:AVAILABLE_PAGES, primitive but enough for tasks module does
>
> Tested on ARM, x86-32 and x86-64 with and without CONFIG_SWAP. Seems works in all combinations.
> Sorry for wide distributions but list of names were produced by scripts/get_maintainer.pl
How does this compare with the lowmemorykiller.c driver from the android
developers that is currently in the linux-next tree?
thanks,
greg k-h
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Greg KH <gregkh@suse.de>
To: Leonid Moiseichuk <leonid.moiseichuk@nokia.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
cesarb@cesarb.net, kamezawa.hiroyu@jp.fujitsu.com,
emunson@mgebm.net, penberg@kernel.org, aarcange@redhat.com,
riel@redhat.com, mel@csn.ul.ie, rientjes@google.com,
dima@android.com, rebecca@android.com, san@google.com,
akpm@linux-foundation.org, vesa.jaaskelainen@nokia.com
Subject: Re: [PATCH 3.2.0-rc1 0/3] Used Memory Meter pseudo-device and related changes in MM
Date: Wed, 4 Jan 2012 11:56:12 -0800 [thread overview]
Message-ID: <20120104195612.GB19181@suse.de> (raw)
In-Reply-To: <cover.1325696593.git.leonid.moiseichuk@nokia.com>
On Wed, Jan 04, 2012 at 07:21:53PM +0200, Leonid Moiseichuk wrote:
> The main idea of Used Memory Meter (UMM) is to provide low-cost interface
> for user-space to notify about memory consumption using similar approach /proc/meminfo
> does but focusing only on "modified" pages which cannot be fogotten.
>
> The calculation formula in terms of meminfo looks the following:
> UsedMemory = (MemTotal - MemFree - Buffers - Cached - SwapCached) +
> (SwapTotal - SwapFree)
> It reflects well amount of system memory used in applications in heaps and shared pages.
>
> Previously (n770..n900) we had lowmem.c [1] which used LSM and did a lot other things,
> n9 implementation based on memcg [2] which has own problems, so the proposed variant
> I hope is the best one for n9:
> - Keeps connections from user space
> - When amount of modified pages reaches crossed pointed value for particular connection
> makes POLLIN and allow user-space app to read it and react
> - Economic as much as possible, so currently its operates if allocation higher than 487
> pages or last check happened 250 ms before
> Of course if no allocation happened then no activities performed, use-time
> must be not affected.
>
> Testing results:
> - Checkpatch produced 0 warning
> - Sparse does not produce warnings
> - One check costs ~20 us or less (could be checked with probe=1 insmod)
> - One connection costs 20 bytes in kernel-space (see observer structure) for 32-bit variant
> - For 10K connections poll update in requested in ~10ms, but for practically device expected
> to will have about 10 connections (like n9 has now).
>
> Known weak points which I do not know how to fix but will if you have a brillian idea:
> - Having hook in MM is nasty but MM/shrinker cannot be used there and LSM even worse idea
> - If I made
> $cat /dev/used_memory
> it is produced lines in non-stop mode. Adding position check in umm_read seems doesn not help,
> so "head -1 /dev/used_memory" should be used if you need to quick check
> - Format of output is USED_PAGES:AVAILABLE_PAGES, primitive but enough for tasks module does
>
> Tested on ARM, x86-32 and x86-64 with and without CONFIG_SWAP. Seems works in all combinations.
> Sorry for wide distributions but list of names were produced by scripts/get_maintainer.pl
How does this compare with the lowmemorykiller.c driver from the android
developers that is currently in the linux-next tree?
thanks,
greg k-h
next prev parent reply other threads:[~2012-01-04 19:56 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-04 17:21 [PATCH 3.2.0-rc1 0/3] Used Memory Meter pseudo-device and related changes in MM Leonid Moiseichuk
2012-01-04 17:21 ` Leonid Moiseichuk
2012-01-04 17:21 ` [PATCH 3.2.0-rc1 1/3] Making si_swapinfo exportable Leonid Moiseichuk
2012-01-04 17:21 ` Leonid Moiseichuk
2012-01-04 17:21 ` [PATCH 3.2.0-rc1 2/3] MM hook for page allocation and release Leonid Moiseichuk
2012-01-04 17:21 ` Leonid Moiseichuk
2012-01-04 20:40 ` Pekka Enberg
2012-01-04 20:40 ` Pekka Enberg
2012-01-05 6:59 ` KAMEZAWA Hiroyuki
2012-01-05 6:59 ` KAMEZAWA Hiroyuki
2012-01-05 11:26 ` leonid.moiseichuk
2012-01-05 11:26 ` leonid.moiseichuk
2012-01-05 12:49 ` Pekka Enberg
2012-01-05 12:49 ` Pekka Enberg
2012-01-05 15:05 ` Rik van Riel
2012-01-05 15:05 ` Rik van Riel
2012-01-05 15:17 ` leonid.moiseichuk
2012-01-05 15:17 ` leonid.moiseichuk
2012-01-05 15:22 ` Mel Gorman
2012-01-05 15:22 ` Mel Gorman
2012-01-04 17:21 ` [PATCH 3.2.0-rc1 3/3] Used Memory Meter pseudo-device module Leonid Moiseichuk
2012-01-04 17:21 ` Leonid Moiseichuk
2012-01-04 19:55 ` Greg KH
2012-01-04 19:55 ` Greg KH
2012-01-09 9:58 ` leonid.moiseichuk
2012-01-09 9:58 ` leonid.moiseichuk
2012-01-09 10:09 ` David Rientjes
2012-01-09 10:09 ` David Rientjes
2012-01-09 10:19 ` leonid.moiseichuk
2012-01-09 10:19 ` leonid.moiseichuk
2012-01-09 20:55 ` David Rientjes
2012-01-09 20:55 ` David Rientjes
2012-01-11 12:46 ` leonid.moiseichuk
2012-01-11 12:46 ` leonid.moiseichuk
2012-01-11 21:44 ` David Rientjes
2012-01-11 21:44 ` David Rientjes
2012-01-12 8:32 ` leonid.moiseichuk
2012-01-12 8:32 ` leonid.moiseichuk
2012-01-12 20:54 ` David Rientjes
2012-01-12 20:54 ` David Rientjes
2012-01-13 9:34 ` leonid.moiseichuk
2012-01-13 9:34 ` leonid.moiseichuk
2012-01-13 11:06 ` David Rientjes
2012-01-13 11:06 ` David Rientjes
2012-01-13 11:51 ` leonid.moiseichuk
2012-01-13 11:51 ` leonid.moiseichuk
2012-01-13 21:35 ` David Rientjes
2012-01-13 21:35 ` David Rientjes
2012-01-04 19:56 ` Greg KH [this message]
2012-01-04 19:56 ` [PATCH 3.2.0-rc1 0/3] Used Memory Meter pseudo-device and related changes in MM Greg KH
2012-01-04 20:17 ` Rik van Riel
2012-01-04 20:17 ` Rik van Riel
2012-01-04 20:42 ` Pekka Enberg
2012-01-04 20:42 ` Pekka Enberg
2012-01-05 23:01 ` David Rientjes
2012-01-05 23:01 ` David Rientjes
2012-01-05 12:22 ` leonid.moiseichuk
2012-01-05 12:22 ` leonid.moiseichuk
2012-01-05 11:47 ` leonid.moiseichuk
2012-01-05 11:47 ` leonid.moiseichuk
2012-01-05 12:40 ` Pekka Enberg
2012-01-05 12:40 ` Pekka Enberg
2012-01-05 13:02 ` leonid.moiseichuk
2012-01-05 13:02 ` leonid.moiseichuk
2012-01-05 14:57 ` Greg KH
2012-01-05 14:57 ` Greg KH
2012-01-05 16:13 ` leonid.moiseichuk
2012-01-05 16:13 ` leonid.moiseichuk
2012-01-05 23:10 ` David Rientjes
2012-01-05 23:10 ` David Rientjes
2012-01-09 8:27 ` leonid.moiseichuk
2012-01-09 8:27 ` leonid.moiseichuk
2012-01-06 0:26 ` KOSAKI Motohiro
2012-01-06 0:26 ` KOSAKI Motohiro
2012-01-09 8:49 ` leonid.moiseichuk
2012-01-09 8:49 ` leonid.moiseichuk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120104195612.GB19181@suse.de \
--to=gregkh@suse.de \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=cesarb@cesarb.net \
--cc=dima@android.com \
--cc=emunson@mgebm.net \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=leonid.moiseichuk@nokia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=penberg@kernel.org \
--cc=rebecca@android.com \
--cc=riel@redhat.com \
--cc=rientjes@google.com \
--cc=san@google.com \
--cc=vesa.jaaskelainen@nokia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.