From: Anton Vorontsov <anton.vorontsov@linaro.org>
To: Glauber Costa <glommer@parallels.com>
Cc: David Rientjes <rientjes@google.com>,
"Kirill A. Shutemov" <kirill@shutemov.name>,
Pekka Enberg <penberg@kernel.org>, Mel Gorman <mgorman@suse.de>,
Leonid Moiseichuk <leonid.moiseichuk@nokia.com>,
KOSAKI Motohiro <kosaki.motohiro@gmail.com>,
Minchan Kim <minchan@kernel.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.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, linux-man@vger.kernel.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Michal Hocko <mhocko@suse.cz>,
Johannes Weiner <hannes@cmpxchg.org>, Tejun Heo <tj@kernel.org>
Subject: Re: [RFC v3 0/3] vmpressure_fd: Linux VM pressure notifications
Date: Wed, 21 Nov 2012 00:46:03 -0800 [thread overview]
Message-ID: <20121121084603.GA18159@lizard> (raw)
In-Reply-To: <50AC9070.2030009@parallels.com>
On Wed, Nov 21, 2012 at 12:27:28PM +0400, Glauber Costa wrote:
> On 11/20/2012 10:23 PM, David Rientjes wrote:
> > Anton can correct me if I'm wrong, but I certainly don't think this is
> > where mempressure is headed: I don't think any accounting needs to be done
Yup, I'd rather not do any accounting, at least not in bytes.
> > and, if it is, it's a design issue that should be addressed now rather
> > than later. I believe notifications should occur on current's mempressure
> > cgroup depending on its level of reclaim: nobody cares if your memcg has a
> > limit of 64GB when you only have 32GB of RAM, we'll want the notification.
>
> My main concern is that to trigger those notifications, one would have
> to first determine whether or not the particular group of tasks is under
> pressure.
As far as I understand, the notifications will be triggered by a process
that tries to allocate memory. So, effectively that would be a per-process
pressure.
So, if one process in a group is suffering, we notify that "a process in a
group is under pressure", and the notification goes to a cgroup listener
> And to do that, we need to somehow know how much memory we are
> using, and how much we are reclaiming, etc. On a system-wide level, we
> have this information. On a grouplevel, this is already accounted by memcg.
>
> In fact, the current code already seems to rely on memcg:
>
> + vmpressure(sc->target_mem_cgroup,
> + sc->nr_scanned - nr_scanned, nr_reclaimed);
Well, I'm yet unsure about the details, but I guess in "mempressure"
cgroup approach, this will be derived from the current->, i.e. a task.
But note that we won't report pressure to a memcg cgroup, we will notify
only mempressure cgroup. But a process can be in both of them
simultaneously. In the code, the mempressure and memcg will not depend on
each other.
> Now, let's start simple: Assume we will have a different cgroup.
> We want per-group pressure notifications for that group. How would you
> determine that the specific group is under pressure?
If a process that tries to allocate memory & causes reclaim is a part of
the cgroup, then cgroup has a pressure.
At least that's very brief understanding of the idea, details to be
investigated... But I welcome David to comment whether I got everything
correctly. :)
Thanks,
Anton.
--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Anton Vorontsov <anton.vorontsov@linaro.org>
To: Glauber Costa <glommer@parallels.com>
Cc: David Rientjes <rientjes@google.com>,
"Kirill A. Shutemov" <kirill@shutemov.name>,
Pekka Enberg <penberg@kernel.org>, Mel Gorman <mgorman@suse.de>,
Leonid Moiseichuk <leonid.moiseichuk@nokia.com>,
KOSAKI Motohiro <kosaki.motohiro@gmail.com>,
Minchan Kim <minchan@kernel.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.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, linux-man@vger.kernel.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Michal Hocko <mhocko@suse.cz>,
Johannes Weiner <hannes@cmpxchg.org>, Tejun Heo <tj@kernel.org>
Subject: Re: [RFC v3 0/3] vmpressure_fd: Linux VM pressure notifications
Date: Wed, 21 Nov 2012 00:46:03 -0800 [thread overview]
Message-ID: <20121121084603.GA18159@lizard> (raw)
In-Reply-To: <50AC9070.2030009@parallels.com>
On Wed, Nov 21, 2012 at 12:27:28PM +0400, Glauber Costa wrote:
> On 11/20/2012 10:23 PM, David Rientjes wrote:
> > Anton can correct me if I'm wrong, but I certainly don't think this is
> > where mempressure is headed: I don't think any accounting needs to be done
Yup, I'd rather not do any accounting, at least not in bytes.
> > and, if it is, it's a design issue that should be addressed now rather
> > than later. I believe notifications should occur on current's mempressure
> > cgroup depending on its level of reclaim: nobody cares if your memcg has a
> > limit of 64GB when you only have 32GB of RAM, we'll want the notification.
>
> My main concern is that to trigger those notifications, one would have
> to first determine whether or not the particular group of tasks is under
> pressure.
As far as I understand, the notifications will be triggered by a process
that tries to allocate memory. So, effectively that would be a per-process
pressure.
So, if one process in a group is suffering, we notify that "a process in a
group is under pressure", and the notification goes to a cgroup listener
> And to do that, we need to somehow know how much memory we are
> using, and how much we are reclaiming, etc. On a system-wide level, we
> have this information. On a grouplevel, this is already accounted by memcg.
>
> In fact, the current code already seems to rely on memcg:
>
> + vmpressure(sc->target_mem_cgroup,
> + sc->nr_scanned - nr_scanned, nr_reclaimed);
Well, I'm yet unsure about the details, but I guess in "mempressure"
cgroup approach, this will be derived from the current->, i.e. a task.
But note that we won't report pressure to a memcg cgroup, we will notify
only mempressure cgroup. But a process can be in both of them
simultaneously. In the code, the mempressure and memcg will not depend on
each other.
> Now, let's start simple: Assume we will have a different cgroup.
> We want per-group pressure notifications for that group. How would you
> determine that the specific group is under pressure?
If a process that tries to allocate memory & causes reclaim is a part of
the cgroup, then cgroup has a pressure.
At least that's very brief understanding of the idea, details to be
investigated... But I welcome David to comment whether I got everything
correctly. :)
Thanks,
Anton.
next prev parent reply other threads:[~2012-11-21 8:46 UTC|newest]
Thread overview: 134+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-07 10:53 [RFC v3 0/3] vmpressure_fd: Linux VM pressure notifications Anton Vorontsov
2012-11-07 10:53 ` Anton Vorontsov
2012-11-07 10:53 ` Anton Vorontsov
2012-11-07 11:01 ` [RFC 1/3] mm: Add " Anton Vorontsov
2012-11-07 11:01 ` Anton Vorontsov
2012-11-08 17:01 ` Mel Gorman
2012-11-08 17:01 ` Mel Gorman
2012-11-08 17:01 ` Mel Gorman
[not found] ` <20121108170124.GB8218-l3A5Bk7waGM@public.gmane.org>
2012-11-08 17:14 ` Kirill A. Shutemov
2012-11-08 17:14 ` Kirill A. Shutemov
2012-11-08 17:14 ` Kirill A. Shutemov
2012-11-13 18:38 ` Jonathan Corbet
2012-11-13 18:38 ` Jonathan Corbet
2012-11-07 11:01 ` [RFC 2/3] tools/testing: Add vmpressure-test utility Anton Vorontsov
2012-11-07 11:01 ` Anton Vorontsov
2012-11-07 11:01 ` [RFC 3/3] man-pages: Add man page for vmpressure_fd(2) Anton Vorontsov
2012-11-07 11:01 ` Anton Vorontsov
2012-11-07 11:01 ` Anton Vorontsov
2012-11-07 14:19 ` Rik van Riel
2012-11-07 14:19 ` Rik van Riel
2012-11-20 5:52 ` Andrew Morton
2012-11-20 5:52 ` Andrew Morton
2012-11-20 5:52 ` Andrew Morton
[not found] ` <20121119215211.6370ac3b.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2012-11-20 6:24 ` Anton Vorontsov
2012-11-20 6:24 ` Anton Vorontsov
2012-11-20 6:24 ` Anton Vorontsov
2012-11-20 18:12 ` David Rientjes
2012-11-20 18:12 ` David Rientjes
2012-11-20 18:12 ` David Rientjes
[not found] ` <alpine.DEB.2.00.1211201004390.4200-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2012-11-21 15:01 ` Mel Gorman
2012-11-21 15:01 ` Mel Gorman
2012-11-21 15:01 ` Mel Gorman
2012-11-21 19:39 ` Andrew Morton
2012-11-21 19:39 ` Andrew Morton
2012-11-22 8:52 ` Pekka Enberg
2012-11-22 8:52 ` Pekka Enberg
2012-11-07 11:21 ` [RFC v3 0/3] vmpressure_fd: Linux VM pressure notifications Kirill A. Shutemov
2012-11-07 11:21 ` Kirill A. Shutemov
2012-11-07 11:43 ` Anton Vorontsov
2012-11-07 11:43 ` Anton Vorontsov
2012-11-07 12:11 ` Kirill A. Shutemov
2012-11-07 12:11 ` Kirill A. Shutemov
[not found] ` <20121107121110.GA32402-oKw7cIdHH8eLwutG50LtGA@public.gmane.org>
2012-11-07 12:28 ` Anton Vorontsov
2012-11-07 12:28 ` Anton Vorontsov
2012-11-07 12:28 ` Anton Vorontsov
[not found] ` <20121107112136.GA31715-oKw7cIdHH8eLwutG50LtGA@public.gmane.org>
2012-11-07 11:28 ` Pekka Enberg
2012-11-07 11:28 ` Pekka Enberg
2012-11-07 11:28 ` Pekka Enberg
[not found] ` <CAOJsxLHY+3ZzGuGX=4o1pLfhRqjkKaEMyhX0ejB5nVrDvOWXNA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-07 11:43 ` Kirill A. Shutemov
2012-11-07 11:43 ` Kirill A. Shutemov
2012-11-07 11:43 ` Kirill A. Shutemov
[not found] ` <20121107114321.GA32265-oKw7cIdHH8eLwutG50LtGA@public.gmane.org>
2012-11-15 3:21 ` David Rientjes
2012-11-15 3:21 ` David Rientjes
2012-11-15 3:21 ` David Rientjes
[not found] ` <alpine.DEB.2.00.1211141910050.14414-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2012-11-15 3:39 ` Anton Vorontsov
2012-11-15 3:39 ` Anton Vorontsov
2012-11-15 3:39 ` Anton Vorontsov
2012-11-15 3:59 ` David Rientjes
2012-11-15 3:59 ` David Rientjes
[not found] ` <alpine.DEB.2.00.1211141946370.14414-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2012-11-15 7:34 ` Anton Vorontsov
2012-11-15 7:34 ` Anton Vorontsov
2012-11-15 7:34 ` Anton Vorontsov
[not found] ` <20121115073420.GA19036-SAfYLu58TvsAzdhXFe8piDcLetGT9WKNKwcig+XE9tjR7s880joybQ@public.gmane.org>
2012-11-15 8:11 ` David Rientjes
2012-11-15 8:11 ` David Rientjes
2012-11-15 8:11 ` David Rientjes
2012-11-15 8:52 ` Anton Vorontsov
2012-11-15 8:52 ` Anton Vorontsov
2012-11-15 21:25 ` David Rientjes
2012-11-15 21:25 ` David Rientjes
[not found] ` <alpine.DEB.2.00.1211151303510.27188-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2012-11-16 9:33 ` Glauber Costa
2012-11-16 9:33 ` Glauber Costa
2012-11-16 9:33 ` Glauber Costa
[not found] ` <50A60873.3000607-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-11-16 20:04 ` David Rientjes
2012-11-16 20:04 ` David Rientjes
2012-11-16 20:04 ` David Rientjes
2012-11-16 21:12 ` Glauber Costa
2012-11-16 21:12 ` Glauber Costa
2012-11-16 21:57 ` David Rientjes
2012-11-16 21:57 ` David Rientjes
2012-11-17 1:21 ` Anton Vorontsov
2012-11-17 1:21 ` Anton Vorontsov
2012-11-18 22:53 ` David Rientjes
2012-11-18 22:53 ` David Rientjes
[not found] ` <20121117012114.GA22910-SAfYLu58TvubUOgZnPAKMoC2/QZ1MJnMKwcig+XE9tjR7s880joybQ@public.gmane.org>
2012-11-19 14:00 ` Glauber Costa
2012-11-19 14:00 ` Glauber Costa
2012-11-19 14:00 ` Glauber Costa
[not found] ` <alpine.DEB.2.00.1211161349420.17853-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2012-11-19 13:57 ` Glauber Costa
2012-11-19 13:57 ` Glauber Costa
2012-11-19 13:57 ` Glauber Costa
2012-11-20 18:02 ` David Rientjes
2012-11-20 18:02 ` David Rientjes
[not found] ` <alpine.DEB.2.00.1211200950120.4200-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2012-11-21 9:30 ` Kirill A. Shutemov
2012-11-21 9:30 ` Kirill A. Shutemov
2012-11-21 9:30 ` Kirill A. Shutemov
2012-11-21 11:32 ` leonid.moiseichuk
2012-11-21 11:32 ` leonid.moiseichuk
2012-11-21 11:54 ` Glauber Costa
2012-11-21 11:54 ` Glauber Costa
2012-11-21 13:48 ` leonid.moiseichuk
2012-11-21 13:48 ` leonid.moiseichuk
2012-11-26 21:35 ` Michal Hocko
2012-11-26 21:35 ` Michal Hocko
2012-11-19 14:19 ` Glauber Costa
2012-11-19 14:19 ` Glauber Costa
2012-11-19 14:19 ` Glauber Costa
[not found] ` <50AA3FEF.2070100-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-11-20 18:23 ` David Rientjes
2012-11-20 18:23 ` David Rientjes
2012-11-20 18:23 ` David Rientjes
[not found] ` <alpine.DEB.2.00.1211201013460.4200-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2012-11-21 8:27 ` Glauber Costa
2012-11-21 8:27 ` Glauber Costa
2012-11-21 8:27 ` Glauber Costa
2012-11-21 8:46 ` Anton Vorontsov [this message]
2012-11-21 8:46 ` Anton Vorontsov
2012-11-21 9:25 ` Glauber Costa
2012-11-21 9:25 ` Glauber Costa
2012-11-07 17:20 ` Greg Thelen
2012-11-07 17:20 ` Greg Thelen
2012-11-07 17:20 ` Greg Thelen
[not found] ` <xr93liedfhy4.fsf-aSPv4SP+Du0KgorLzL7FmE7CuiCeIGUxQQ4Iyu8u01E@public.gmane.org>
2012-11-07 20:52 ` Pekka Enberg
2012-11-07 20:52 ` Pekka Enberg
2012-11-07 20:52 ` Pekka Enberg
2012-11-07 11:30 ` Pekka Enberg
2012-11-07 11:30 ` Pekka Enberg
2012-11-07 11:30 ` Pekka Enberg
[not found] ` <CAOJsxLFz+Zi=A0uyuNMj411ngjwpstakNY3fEWy6tW_h4whr7w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-07 11:31 ` Pekka Enberg
2012-11-07 11:31 ` Pekka Enberg
2012-11-07 11:31 ` Pekka Enberg
2012-11-07 12:06 ` Anton Vorontsov
2012-11-07 12:06 ` Anton Vorontsov
2012-11-07 12:06 ` Anton Vorontsov
2012-11-09 8:32 ` Luiz Capitulino
2012-11-09 8:32 ` Luiz Capitulino
2012-11-09 9:04 ` Anton Vorontsov
2012-11-09 9:04 ` Anton Vorontsov
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=20121121084603.GA18159@lizard \
--to=anton.vorontsov@linaro.org \
--cc=b.zolnierkie@samsung.com \
--cc=glommer@parallels.com \
--cc=hannes@cmpxchg.org \
--cc=john.stultz@linaro.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kernel-team@android.com \
--cc=kirill@shutemov.name \
--cc=kosaki.motohiro@gmail.com \
--cc=leonid.moiseichuk@nokia.com \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-man@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=mhocko@suse.cz \
--cc=minchan@kernel.org \
--cc=patches@linaro.org \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=tj@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 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.