linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
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>

  parent reply	other threads:[~2012-01-04 19:56 UTC|newest]

Thread overview: 38+ 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 ` [PATCH 3.2.0-rc1 1/3] Making si_swapinfo exportable 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 20:40   ` Pekka Enberg
2012-01-05  6:59   ` KAMEZAWA Hiroyuki
2012-01-05 11:26     ` leonid.moiseichuk
2012-01-05 12:49       ` Pekka Enberg
2012-01-05 15:05         ` Rik van Riel
2012-01-05 15:17           ` leonid.moiseichuk
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 19:55   ` Greg KH
2012-01-09  9:58     ` leonid.moiseichuk
2012-01-09 10:09       ` David Rientjes
2012-01-09 10:19         ` leonid.moiseichuk
2012-01-09 20:55           ` David Rientjes
2012-01-11 12:46             ` leonid.moiseichuk
2012-01-11 21:44               ` David Rientjes
2012-01-12  8:32                 ` leonid.moiseichuk
2012-01-12 20:54                   ` David Rientjes
2012-01-13  9:34                     ` leonid.moiseichuk
2012-01-13 11:06                       ` David Rientjes
2012-01-13 11:51                         ` leonid.moiseichuk
2012-01-13 21:35                           ` David Rientjes
2012-01-04 19:56 ` Greg KH [this message]
2012-01-04 20:17   ` [PATCH 3.2.0-rc1 0/3] Used Memory Meter pseudo-device and related changes in MM Rik van Riel
2012-01-04 20:42     ` Pekka Enberg
2012-01-05 23:01       ` David Rientjes
2012-01-05 12:22     ` leonid.moiseichuk
2012-01-05 11:47   ` leonid.moiseichuk
2012-01-05 12:40     ` Pekka Enberg
2012-01-05 13:02       ` leonid.moiseichuk
2012-01-05 14:57         ` Greg KH
2012-01-05 16:13           ` leonid.moiseichuk
2012-01-05 23:10             ` David Rientjes
2012-01-09  8:27               ` leonid.moiseichuk
2012-01-06  0:26     ` KOSAKI Motohiro
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).