All of lore.kernel.org
 help / color / mirror / Atom feed
From: KOSAKI Motohiro <kosaki.motohiro@gmail.com>
To: Anton Vorontsov <anton.vorontsov@linaro.org>
Cc: Rik van Riel <riel@redhat.com>, 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, Glauber Costa <glommer@parallels.com>,
	kamezawa.hiroyu@jp.fujitsu.com,
	Suleiman Souhlal <suleiman@google.com>,
	kosaki.motohiro@gmail.com
Subject: Re: [PATCH v4] vmevent: Implement greater-than attribute state and one-shot mode
Date: Tue, 01 May 2012 21:20:27 -0400	[thread overview]
Message-ID: <4FA08BDB.1070009@gmail.com> (raw)
In-Reply-To: <20120502002026.GA3334@lizard>

(5/1/12 8:20 PM), Anton Vorontsov wrote:
> Hello Rik,
>
> Thanks for looking into this!
>
> On Tue, May 01, 2012 at 05:04:21PM -0400, Rik van Riel wrote:
>> On 05/01/2012 09:18 AM, Anton Vorontsov wrote:
>>> This patch implements a new event type, it will trigger whenever a
>>> value becomes greater than user-specified threshold, it complements
>>> the 'less-then' trigger type.
>>>
>>> Also, let's implement the one-shot mode for the events, when set,
>>> userspace will only receive one notification per crossing the
>>> boundaries.
>>>
>>> Now when both LT and GT are set on the same level, the event type
>>> works as a cross event type: it triggers whenever a value crosses
>>> the threshold from a lesser values side to a greater values side,
>>> and vice versa.
>>>
>>> We use the event types in an userspace low-memory killer: we get a
>>> notification when memory becomes low, so we start freeing memory by
>>> killing unneeded processes, and we get notification when memory hits
>>> the threshold from another side, so we know that we freed enough of
>>> memory.
>>
>> How are these vmevents supposed to work with cgroups?
>
> Currently these are independent subsystems, if you have memcg enabled,
> you can do almost anything* with the memory, as memg has all the needed
> hooks in the mm/ subsystem (it is more like "memory management tracer"
> nowadays :-).
>
> But cgroups have its cost, both performance penalty and memory wastage.
> For example, in the best case, memcg constantly consumes 0.5% of RAM to
> track memory usage, this is 5 MB on a 1 GB "embedded" machine.  To some
> people it feels just wrong to waste that memory for mere notifications.
>
> Of course, this alone can be considered as a lame argument for making
> another subsystem (instead of "fixing" the current one). But see below,
> vmevent is just a convenient ABI.
>
>> What do we do when a cgroup nears its limit, and there
>> is no more swap space available?
>>
>> What do we do when a cgroup nears its limit, and there
>> is swap space available?
>
> As of now, this is all orthogonal to vmevent. Vmevent doesn't know
> about cgroups. If kernel has the memcg enabled, one should probably*
> go with it (or better, with its ABI). At least for now.
>
>> It would be nice to be able to share the same code for
>> embedded, desktop and server workloads...
>
> It would be great indeed, but so far I don't see much that
> vmevent could share. Plus, sharing the code at this point is not
> that interesting; it's mere 500 lines of code (comparing to
> more than 10K lines for cgroups, and it's not including memcg_
> hooks and logic that is spread all over mm/).
>
> Today vmevent code is mostly an ABI implementation, there is
> very little memory management logic (in contrast to the memcg).

But, if it doesn't work desktop/server area, it shouldn't be merged.
We have to consider the best design before kernel inclusion. They cann't
be separeted to discuss.



--
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: KOSAKI Motohiro <kosaki.motohiro@gmail.com>
To: Anton Vorontsov <anton.vorontsov@linaro.org>
Cc: Rik van Riel <riel@redhat.com>, 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, Glauber Costa <glommer@parallels.com>,
	kamezawa.hiroyu@jp.fujitsu.com,
	Suleiman Souhlal <suleiman@google.com>,
	kosaki.motohiro@gmail.com
Subject: Re: [PATCH v4] vmevent: Implement greater-than attribute state and one-shot mode
Date: Tue, 01 May 2012 21:20:27 -0400	[thread overview]
Message-ID: <4FA08BDB.1070009@gmail.com> (raw)
In-Reply-To: <20120502002026.GA3334@lizard>

(5/1/12 8:20 PM), Anton Vorontsov wrote:
> Hello Rik,
>
> Thanks for looking into this!
>
> On Tue, May 01, 2012 at 05:04:21PM -0400, Rik van Riel wrote:
>> On 05/01/2012 09:18 AM, Anton Vorontsov wrote:
>>> This patch implements a new event type, it will trigger whenever a
>>> value becomes greater than user-specified threshold, it complements
>>> the 'less-then' trigger type.
>>>
>>> Also, let's implement the one-shot mode for the events, when set,
>>> userspace will only receive one notification per crossing the
>>> boundaries.
>>>
>>> Now when both LT and GT are set on the same level, the event type
>>> works as a cross event type: it triggers whenever a value crosses
>>> the threshold from a lesser values side to a greater values side,
>>> and vice versa.
>>>
>>> We use the event types in an userspace low-memory killer: we get a
>>> notification when memory becomes low, so we start freeing memory by
>>> killing unneeded processes, and we get notification when memory hits
>>> the threshold from another side, so we know that we freed enough of
>>> memory.
>>
>> How are these vmevents supposed to work with cgroups?
>
> Currently these are independent subsystems, if you have memcg enabled,
> you can do almost anything* with the memory, as memg has all the needed
> hooks in the mm/ subsystem (it is more like "memory management tracer"
> nowadays :-).
>
> But cgroups have its cost, both performance penalty and memory wastage.
> For example, in the best case, memcg constantly consumes 0.5% of RAM to
> track memory usage, this is 5 MB on a 1 GB "embedded" machine.  To some
> people it feels just wrong to waste that memory for mere notifications.
>
> Of course, this alone can be considered as a lame argument for making
> another subsystem (instead of "fixing" the current one). But see below,
> vmevent is just a convenient ABI.
>
>> What do we do when a cgroup nears its limit, and there
>> is no more swap space available?
>>
>> What do we do when a cgroup nears its limit, and there
>> is swap space available?
>
> As of now, this is all orthogonal to vmevent. Vmevent doesn't know
> about cgroups. If kernel has the memcg enabled, one should probably*
> go with it (or better, with its ABI). At least for now.
>
>> It would be nice to be able to share the same code for
>> embedded, desktop and server workloads...
>
> It would be great indeed, but so far I don't see much that
> vmevent could share. Plus, sharing the code at this point is not
> that interesting; it's mere 500 lines of code (comparing to
> more than 10K lines for cgroups, and it's not including memcg_
> hooks and logic that is spread all over mm/).
>
> Today vmevent code is mostly an ABI implementation, there is
> very little memory management logic (in contrast to the memcg).

But, if it doesn't work desktop/server area, it shouldn't be merged.
We have to consider the best design before kernel inclusion. They cann't
be separeted to discuss.




  reply	other threads:[~2012-05-02  1:20 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-18  8:32 [PATCH v2 0/2] vmevent: Greater-than attribute + one-shot mode + a bugfix Anton Vorontsov
2012-04-18  8:32 ` Anton Vorontsov
2012-04-18  8:33 ` [PATCH 1/2] vmevent: Should not grab mutex in the atomic context Anton Vorontsov
2012-04-18  8:33   ` Anton Vorontsov
2012-04-18 20:01   ` Pekka Enberg
2012-04-18 20:01     ` Pekka Enberg
2012-04-18  8:35 ` [PATCH 2/2] vmevent: Implement greater-than attribute and one-shot mode Anton Vorontsov
2012-04-18  8:35   ` Anton Vorontsov
2012-04-18 20:01   ` Pekka Enberg
2012-04-18 20:01     ` Pekka Enberg
2012-04-18 22:46     ` Anton Vorontsov
2012-04-18 22:46       ` Anton Vorontsov
2012-04-19  5:42       ` Pekka Enberg
2012-04-19  5:42         ` Pekka Enberg
2012-04-19 16:29         ` [PATCH v3 " Anton Vorontsov
2012-04-19 16:29           ` Anton Vorontsov
2012-05-01 13:18           ` [PATCH v4] vmevent: Implement greater-than attribute state " Anton Vorontsov
2012-05-01 13:18             ` Anton Vorontsov
2012-05-01 21:04             ` Rik van Riel
2012-05-01 21:04               ` Rik van Riel
2012-05-02  0:20               ` Anton Vorontsov
2012-05-02  0:20                 ` Anton Vorontsov
2012-05-02  1:20                 ` KOSAKI Motohiro [this message]
2012-05-02  1:20                   ` KOSAKI Motohiro
2012-05-02  3:31                   ` Anton Vorontsov
2012-05-02  3:31                     ` Anton Vorontsov
2012-05-02  3:50                     ` Anton Vorontsov
2012-05-02  3:50                       ` Anton Vorontsov
2012-05-02  5:04                     ` Minchan Kim
2012-05-02  5:04                       ` Minchan Kim
2012-05-02  6:46                       ` leonid.moiseichuk
2012-05-02  6:46                         ` leonid.moiseichuk
2012-05-02  6:57                       ` Pekka Enberg
2012-05-02  6:57                         ` Pekka Enberg
2012-05-02  7:41                         ` Minchan Kim
2012-05-02  7:41                           ` Minchan Kim
2012-05-02  6:51                   ` Pekka Enberg
2012-05-02  6:51                     ` Pekka Enberg
2012-05-03 10:52             ` Pekka Enberg
2012-05-03 10:52               ` 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=4FA08BDB.1070009@gmail.com \
    --to=kosaki.motohiro@gmail.com \
    --cc=anton.vorontsov@linaro.org \
    --cc=glommer@parallels.com \
    --cc=john.stultz@linaro.org \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --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=patches@linaro.org \
    --cc=penberg@kernel.org \
    --cc=riel@redhat.com \
    --cc=suleiman@google.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.