From: Anton Vorontsov <anton.vorontsov@linaro.org>
To: Minchan Kim <minchan@kernel.org>
Cc: Pekka Enberg <penberg@kernel.org>,
Leonid Moiseichuk <leonid.moiseichuk@nokia.com>,
John Stultz <john.stultz@linaro.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linaro-kernel@lists.linaro.org, patches@linaro.org,
kernel-team@android.com
Subject: Re: [PATCH 3/3] vmevent: Implement special low-memory attribute
Date: Fri, 4 May 2012 00:38:10 -0700 [thread overview]
Message-ID: <20120504073810.GA25175@lizard> (raw)
In-Reply-To: <4FA35A85.4070804@kernel.org>
On Fri, May 04, 2012 at 01:26:45PM +0900, Minchan Kim wrote:
[...]
> > be useful for different use cases.
>
> Why should we do it in kernel side?
Because currently you can't do this in userland, see below. Today
this would be effectively the same as constantly reading /proc/vmstat,
which is surely not friendly performance/context switches/battery
wise.
> If vmevent will have VMEVENT_ATTR_[FILE|MOCK|DIRTY|WRITEBACK|SHMEM|ANON|SWAP]_PAGES
> and so on which is needed by calculation, we can calculate it in userspace without
> forking /proc/vmstat to see it. So I think there is no problem to do it in userspace.
There are two problems.
1. Originally, the idea behind vmevent was that we should not expose all
these mm details in vmevent, because it ties ABI with Linux internal
memory representation;
2. If you have say a boolean '(A + B + C + ...) > X' attribute (which is
exactly what blended attributes are), you can't just set up independent
thresholds on A, B, C, ... and have the same effect.
(What we can do, though, is... introduce arithmetic operators in
vmevent. :-D But then, at the end, we'll probably implement in-kernel
forth-like stack machine, with vmevent_config array serving as a
sequence of op-codes. ;-)
If we'll give up on "1." (Pekka, ping), then we need to solve "2."
in a sane way: we'll have to add a 'NR_FILE_PAGES - NR_SHMEM -
<todo-locked-file-pages>' attribute, and give it a name.
RECLAIMABLE_CACHE_PAGES maybe?
Thanks!
--
Anton Vorontsov
Email: cbouatmailru@gmail.com
next prev parent reply other threads:[~2012-05-04 7:45 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-01 13:24 [PATCH 0/3] vmevent: Implement 'low memory' attribute Anton Vorontsov
2012-05-01 13:25 ` [PATCH 1/3] vmevent: Implement equal-to attribute state Anton Vorontsov
2012-05-01 13:25 ` [PATCH 2/3] vmevent: Pass attr argument to sampling functions Anton Vorontsov
2012-05-01 13:26 ` [PATCH 3/3] vmevent: Implement special low-memory attribute Anton Vorontsov
2012-05-03 10:33 ` Pekka Enberg
2012-05-04 4:26 ` Minchan Kim
2012-05-04 7:38 ` Anton Vorontsov [this message]
2012-05-07 7:14 ` Pekka Enberg
2012-05-07 8:26 ` KOSAKI Motohiro
2012-05-07 12:15 ` Anton Vorontsov
2012-05-07 19:19 ` KOSAKI Motohiro
2012-05-08 0:31 ` Anton Vorontsov
2012-05-08 5:20 ` Pekka Enberg
2012-05-08 5:42 ` KOSAKI Motohiro
2012-05-08 5:53 ` Pekka Enberg
2012-05-08 7:11 ` KOSAKI Motohiro
2012-05-08 7:36 ` Pekka Enberg
2012-05-08 7:50 ` KOSAKI Motohiro
2012-05-08 8:03 ` Pekka Enberg
2012-05-08 9:15 ` leonid.moiseichuk
2012-05-08 9:19 ` Pekka Enberg
2012-05-08 10:38 ` leonid.moiseichuk
2012-06-01 12:21 ` [PATCH 0/5] Some vmevent fixes Anton Vorontsov
2012-06-01 12:24 ` [PATCH 1/5] vmstat: Implement refresh_vm_stats() Anton Vorontsov
2012-06-05 14:30 ` Christoph Lameter
2012-06-08 3:17 ` KOSAKI Motohiro
2012-06-01 12:24 ` [PATCH 2/5] vmevent: Convert from deferred timer to deferred work Anton Vorontsov
2012-06-08 3:25 ` KOSAKI Motohiro
2012-06-08 6:58 ` Anton Vorontsov
2012-06-08 7:03 ` Pekka Enberg
2012-06-08 8:07 ` Anton Vorontsov
2012-06-08 7:05 ` leonid.moiseichuk
2012-06-08 7:10 ` KOSAKI Motohiro
2012-06-08 7:18 ` leonid.moiseichuk
2012-06-08 7:23 ` KOSAKI Motohiro
2012-06-08 7:28 ` leonid.moiseichuk
2012-06-08 7:33 ` KOSAKI Motohiro
2012-06-08 7:49 ` leonid.moiseichuk
2012-06-08 7:58 ` Anton Vorontsov
2012-06-08 8:16 ` leonid.moiseichuk
2012-06-08 8:41 ` Anton Vorontsov
2012-06-08 8:57 ` leonid.moiseichuk
2012-06-08 10:35 ` Anton Vorontsov
2012-06-08 11:03 ` leonid.moiseichuk
2012-06-08 12:13 ` Anton Vorontsov
2012-06-08 12:25 ` leonid.moiseichuk
2012-06-01 12:24 ` [PATCH 3/5] vmevent: Refresh vmstats before sampling Anton Vorontsov
2012-06-05 14:36 ` Christoph Lameter
2012-06-01 12:24 ` [PATCH 4/5] vmevent: Hide meaningful names from the user-visible header Anton Vorontsov
2012-06-01 12:24 ` [PATCH 5/5] vmevent: Rename one-shot mode to edge trigger mode Anton Vorontsov
2012-06-03 18:26 ` [PATCH 0/5] Some vmevent fixes Pekka Enberg
2012-06-04 8:45 ` Minchan Kim
2012-06-04 9:20 ` Pekka Enberg
2012-06-04 12:23 ` Minchan Kim
2012-06-04 11:38 ` Anton Vorontsov
2012-06-04 12:17 ` Minchan Kim
2012-06-04 13:35 ` Anton Vorontsov
2012-06-05 7:53 ` Pekka Enberg
2012-06-05 8:00 ` Minchan Kim
2012-06-05 8:01 ` Pekka Enberg
2012-06-05 8:16 ` leonid.moiseichuk
2012-06-05 8:27 ` Minchan Kim
2012-06-08 3:35 ` KOSAKI Motohiro
2012-06-04 20:05 ` KOSAKI Motohiro
2012-06-04 22:39 ` Anton Vorontsov
2012-06-08 3:45 ` KOSAKI Motohiro
2012-06-08 6:57 ` Pekka Enberg
2012-06-05 7:47 ` Pekka Enberg
2012-06-05 8:39 ` Anton Vorontsov
2012-06-07 2:41 ` Minchan Kim
2012-06-08 7:49 ` Anton Vorontsov
2012-06-08 8:43 ` Minchan Kim
2012-06-08 8:48 ` Pekka Enberg
2012-06-08 9:12 ` leonid.moiseichuk
2012-06-08 9:45 ` Anton Vorontsov
2012-06-08 10:42 ` Minchan Kim
2012-06-08 11:14 ` Anton Vorontsov
2012-06-11 4:50 ` Minchan Kim
2012-06-05 7:52 ` Pekka Enberg
2012-06-08 3:55 ` KOSAKI Motohiro
2012-06-08 6:54 ` Pekka Enberg
2012-06-08 6:57 ` KOSAKI Motohiro
2012-06-08 6:59 ` Pekka Enberg
2012-06-04 19:50 ` KOSAKI Motohiro
2012-05-08 8:32 ` [PATCH 3/3] vmevent: Implement special low-memory attribute Minchan Kim
2012-05-08 9:27 ` Pekka Enberg
2012-06-05 14:40 ` Christoph Lameter
2012-05-08 6:58 ` Anton Vorontsov
2012-05-08 7:16 ` KOSAKI Motohiro
2012-05-08 8:13 ` Anton Vorontsov
2012-05-08 8:21 ` Anton Vorontsov
2012-05-03 8:10 ` [PATCH 0/3] vmevent: Implement 'low memory' attribute Pekka Enberg
2012-05-03 9:44 ` Anton Vorontsov
2012-05-03 10:54 ` Pekka Enberg
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=20120504073810.GA25175@lizard \
--to=anton.vorontsov@linaro.org \
--cc=john.stultz@linaro.org \
--cc=kernel-team@android.com \
--cc=leonid.moiseichuk@nokia.com \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan@kernel.org \
--cc=patches@linaro.org \
--cc=penberg@kernel.org \
/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).