All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@cmpxchg.org>
To: Michal Hocko <mhocko@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Greg Thelen <gthelen@google.com>,
	Michel Lespinasse <walken@google.com>, Tejun Heo <tj@kernel.org>,
	Hugh Dickins <hughd@google.com>,
	Roman Gushchin <klamm@yandex-team.ru>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-mm@kvack.org, Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH v2 0/4] memcg: Low-limit reclaim
Date: Thu, 5 Jun 2014 12:46:57 -0400	[thread overview]
Message-ID: <20140605164657.GZ2878@cmpxchg.org> (raw)
In-Reply-To: <20140605160904.GC15939@dhcp22.suse.cz>

On Thu, Jun 05, 2014 at 06:09:04PM +0200, Michal Hocko wrote:
> On Thu 05-06-14 11:43:28, Johannes Weiner wrote:
> > On Thu, Jun 05, 2014 at 04:32:35PM +0200, Michal Hocko wrote:
> > > On Wed 04-06-14 11:44:08, Johannes Weiner wrote:
> > > > On Wed, Jun 04, 2014 at 04:46:58PM +0200, Michal Hocko wrote:
> > > > > On Tue 03-06-14 10:22:49, Johannes Weiner wrote:
> > > > > > On Tue, Jun 03, 2014 at 01:07:43PM +0200, Michal Hocko wrote:
> > > > > [...]
> > > > > > > If we consider that memcg and its limits are not zone aware while the
> > > > > > > page allocator and reclaim are zone oriented then I can see a problem
> > > > > > > of unexpected reclaim failure although there is no over commit on the
> > > > > > > low_limit globally. And we do not have in-kernel effective measures to
> > > > > > > mitigate this inherent problem. At least not now and I am afraid it is
> > > > > > > a long route to have something that would work reasonably well in such
> > > > > > > cases.
> > > > > > 
> > > > > > Which "inherent problem"?
> > > > > 
> > > > > zone unawareness of the limit vs. allocation/reclaim which are zone
> > > > > oriented.
> > > > 
> > > > This is a quote from another subthread where you haven't responded:
> > > > 
> > > > ---
> > > > 
> > > > > > > > But who actually cares if an individual zone can be reclaimed?
> > > > > > > > 
> > > > > > > > Userspace allocations can fall back to any other zone.  Unless there
> > > > > > > > are hard bindings, but hopefully nobody binds a memcg to a node that
> > > > > > > > is smaller than that memcg's guarantee. 
> > > > > > > 
> > > > > > > The protected group might spill over to another group and eat it when
> > > > > > > another group would be simply pushed out from the node it is bound to.
> > > > > > 
> > > > > > I don't really understand the point you're trying to make.
> > > > > 
> > > > > I was just trying to show a case where individual zone matters. To make
> > > > > it more specific consider 2 groups A (with low-limit 60% RAM) and B
> > > > > (say with low-limit 10% RAM) and bound to a node X (25% of RAM). Now
> > > > > having 70% of RAM reserved for guarantee makes some sense, right? B is
> > > > > not over-committing the node it is bound to. Yet the A's allocations
> > > > > might make pressure on X regardless that the whole system is still doing
> > > > > good. This can lead to a situation where X gets depleted and nothing
> > > > > would be reclaimable leading to an OOM condition.
> > > > 
> > > > Once you assume control of memory *placement* in the system like this,
> > > > you can not also pretend to be clueless and have unreclaimable memory
> > > > of this magnitude spread around into nodes used by other bound tasks.
> > > 
> > > You are still assuming that the administrator controls the placement.
> > > The load running in your memcg might be a black box for admin. E.g. a
> > > container which pays $$ to get a priority and not get reclaimed if that
> > > is possible. Admin can make sure that the cumulative low_limits for
> > > containers are sane but he doesn't have any control over what the loads
> > > inside are doing and potential OOM when one tries to DOS the other is
> > > definitely not welcome.
> > 
> > This is completely backwards, though: if you pay for guaranteed
> 
> I didn't say anything about guarantee, though. You even do not need
> anything as strong as guarantee. You are paying for prioritization.
>
> > memory, you don't want to get reclaimed just because some other task
> > that might not even have guarantees starts allocating with a
> > restricted node mask.  This breaks isolation.
> 
> If the other task doesn't have any limit set then its pages would get
> reclaimed. This wouldn't be everybody within low limit situation.

Ah, I messed up the consequences of the "all within low limit" clause.
The fallback implications on NUMA boggle my mind.

You can still break isolation when both have the same prioritization:
bind to a node that contains primarily guaranteed memory of another
group, then allocate a chunk that is within your limit to force equal
reclaim of all memory on that node, including the guaranteed memory.

As that other group refaults its pages on another node, you can just
follow it and do it again.

> > For one, this can be used maliciously by intentionally binding a
> > low-priority task to a node with guaranteed memory and starting to
> > allocate.  Even with a small hard limit, you can just plow through
> > files to push guaranteed cache of the other group out of memory.
> >
> > But even if it's not malicious, in such a scenario I'd still prefer
> > OOMing the task with the more restrictive node mask over reclaiming
> > guaranteed memory.
> 
> Why?

I think the locality preference of one group should not harm the
workingset size requirements that another group has to avoid IO.

> > Then, on top of that, we can use direct migration to mitigate OOMs in
> > these scenarios (should we sufficiently care about them), but I'd much
> > prefer OOMs over breaking isolation and the possible priority
> > inversion that is inherent in the fallback on NUMA setups.
> 
> Could you be more specific about what you mean by priority inversion?

As per above, it's not an inversion because of the "all within
guarantee" clause, but I think you can still DOS peers.

WARNING: multiple messages have this Message-ID (diff)
From: Johannes Weiner <hannes@cmpxchg.org>
To: Michal Hocko <mhocko@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Greg Thelen <gthelen@google.com>,
	Michel Lespinasse <walken@google.com>, Tejun Heo <tj@kernel.org>,
	Hugh Dickins <hughd@google.com>,
	Roman Gushchin <klamm@yandex-team.ru>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-mm@kvack.org, Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH v2 0/4] memcg: Low-limit reclaim
Date: Thu, 5 Jun 2014 12:46:57 -0400	[thread overview]
Message-ID: <20140605164657.GZ2878@cmpxchg.org> (raw)
In-Reply-To: <20140605160904.GC15939@dhcp22.suse.cz>

On Thu, Jun 05, 2014 at 06:09:04PM +0200, Michal Hocko wrote:
> On Thu 05-06-14 11:43:28, Johannes Weiner wrote:
> > On Thu, Jun 05, 2014 at 04:32:35PM +0200, Michal Hocko wrote:
> > > On Wed 04-06-14 11:44:08, Johannes Weiner wrote:
> > > > On Wed, Jun 04, 2014 at 04:46:58PM +0200, Michal Hocko wrote:
> > > > > On Tue 03-06-14 10:22:49, Johannes Weiner wrote:
> > > > > > On Tue, Jun 03, 2014 at 01:07:43PM +0200, Michal Hocko wrote:
> > > > > [...]
> > > > > > > If we consider that memcg and its limits are not zone aware while the
> > > > > > > page allocator and reclaim are zone oriented then I can see a problem
> > > > > > > of unexpected reclaim failure although there is no over commit on the
> > > > > > > low_limit globally. And we do not have in-kernel effective measures to
> > > > > > > mitigate this inherent problem. At least not now and I am afraid it is
> > > > > > > a long route to have something that would work reasonably well in such
> > > > > > > cases.
> > > > > > 
> > > > > > Which "inherent problem"?
> > > > > 
> > > > > zone unawareness of the limit vs. allocation/reclaim which are zone
> > > > > oriented.
> > > > 
> > > > This is a quote from another subthread where you haven't responded:
> > > > 
> > > > ---
> > > > 
> > > > > > > > But who actually cares if an individual zone can be reclaimed?
> > > > > > > > 
> > > > > > > > Userspace allocations can fall back to any other zone.  Unless there
> > > > > > > > are hard bindings, but hopefully nobody binds a memcg to a node that
> > > > > > > > is smaller than that memcg's guarantee. 
> > > > > > > 
> > > > > > > The protected group might spill over to another group and eat it when
> > > > > > > another group would be simply pushed out from the node it is bound to.
> > > > > > 
> > > > > > I don't really understand the point you're trying to make.
> > > > > 
> > > > > I was just trying to show a case where individual zone matters. To make
> > > > > it more specific consider 2 groups A (with low-limit 60% RAM) and B
> > > > > (say with low-limit 10% RAM) and bound to a node X (25% of RAM). Now
> > > > > having 70% of RAM reserved for guarantee makes some sense, right? B is
> > > > > not over-committing the node it is bound to. Yet the A's allocations
> > > > > might make pressure on X regardless that the whole system is still doing
> > > > > good. This can lead to a situation where X gets depleted and nothing
> > > > > would be reclaimable leading to an OOM condition.
> > > > 
> > > > Once you assume control of memory *placement* in the system like this,
> > > > you can not also pretend to be clueless and have unreclaimable memory
> > > > of this magnitude spread around into nodes used by other bound tasks.
> > > 
> > > You are still assuming that the administrator controls the placement.
> > > The load running in your memcg might be a black box for admin. E.g. a
> > > container which pays $$ to get a priority and not get reclaimed if that
> > > is possible. Admin can make sure that the cumulative low_limits for
> > > containers are sane but he doesn't have any control over what the loads
> > > inside are doing and potential OOM when one tries to DOS the other is
> > > definitely not welcome.
> > 
> > This is completely backwards, though: if you pay for guaranteed
> 
> I didn't say anything about guarantee, though. You even do not need
> anything as strong as guarantee. You are paying for prioritization.
>
> > memory, you don't want to get reclaimed just because some other task
> > that might not even have guarantees starts allocating with a
> > restricted node mask.  This breaks isolation.
> 
> If the other task doesn't have any limit set then its pages would get
> reclaimed. This wouldn't be everybody within low limit situation.

Ah, I messed up the consequences of the "all within low limit" clause.
The fallback implications on NUMA boggle my mind.

You can still break isolation when both have the same prioritization:
bind to a node that contains primarily guaranteed memory of another
group, then allocate a chunk that is within your limit to force equal
reclaim of all memory on that node, including the guaranteed memory.

As that other group refaults its pages on another node, you can just
follow it and do it again.

> > For one, this can be used maliciously by intentionally binding a
> > low-priority task to a node with guaranteed memory and starting to
> > allocate.  Even with a small hard limit, you can just plow through
> > files to push guaranteed cache of the other group out of memory.
> >
> > But even if it's not malicious, in such a scenario I'd still prefer
> > OOMing the task with the more restrictive node mask over reclaiming
> > guaranteed memory.
> 
> Why?

I think the locality preference of one group should not harm the
workingset size requirements that another group has to avoid IO.

> > Then, on top of that, we can use direct migration to mitigate OOMs in
> > these scenarios (should we sufficiently care about them), but I'd much
> > prefer OOMs over breaking isolation and the possible priority
> > inversion that is inherent in the fallback on NUMA setups.
> 
> Could you be more specific about what you mean by priority inversion?

As per above, it's not an inversion because of the "all within
guarantee" clause, but I think you can still DOS peers.

--
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>

  reply	other threads:[~2014-06-05 16:47 UTC|newest]

Thread overview: 196+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-28 12:26 [PATCH v2 0/4] memcg: Low-limit reclaim Michal Hocko
2014-04-28 12:26 ` Michal Hocko
2014-04-28 12:26 ` [PATCH 1/4] memcg, mm: introduce lowlimit reclaim Michal Hocko
2014-04-28 12:26   ` Michal Hocko
2014-04-30 22:55   ` Johannes Weiner
2014-04-30 22:55     ` Johannes Weiner
2014-05-02  9:36     ` Michal Hocko
2014-05-02  9:36       ` Michal Hocko
2014-05-02 12:07       ` Michal Hocko
2014-05-02 12:07         ` Michal Hocko
2014-05-02 13:01         ` Johannes Weiner
2014-05-02 13:01           ` Johannes Weiner
2014-05-02 14:15           ` Michal Hocko
2014-05-02 14:15             ` Michal Hocko
2014-05-02 15:04             ` Johannes Weiner
2014-05-02 15:04               ` Johannes Weiner
2014-05-02 15:11               ` Michal Hocko
2014-05-02 15:11                 ` Michal Hocko
2014-05-02 15:34                 ` Johannes Weiner
2014-05-02 15:34                   ` Johannes Weiner
2014-05-02 15:48                   ` Michal Hocko
2014-05-02 15:48                     ` Michal Hocko
2014-05-06 19:58                     ` Michal Hocko
2014-05-06 19:58                       ` Michal Hocko
2014-05-02 15:58       ` Johannes Weiner
2014-05-02 15:58         ` Johannes Weiner
2014-05-02 16:49         ` Michal Hocko
2014-05-02 16:49           ` Michal Hocko
2014-05-02 22:00           ` Johannes Weiner
2014-05-02 22:00             ` Johannes Weiner
2014-05-05 14:21             ` Michal Hocko
2014-05-05 14:21               ` Michal Hocko
2014-05-19 16:18               ` Michal Hocko
2014-05-19 16:18                 ` Michal Hocko
2014-06-11 15:15               ` Johannes Weiner
2014-06-11 15:15                 ` Johannes Weiner
2014-06-11 16:08                 ` Michal Hocko
2014-06-11 16:08                   ` Michal Hocko
2014-05-06 13:29             ` Johannes Weiner
2014-05-06 14:32               ` Michal Hocko
2014-05-06 14:32                 ` Michal Hocko
2014-05-06 15:21                 ` Johannes Weiner
2014-05-06 15:21                   ` Johannes Weiner
2014-05-06 16:12                   ` Michal Hocko
2014-05-06 16:12                     ` Michal Hocko
2014-05-06 16:51                     ` Johannes Weiner
2014-05-06 16:51                       ` Johannes Weiner
2014-05-06 18:30                       ` Michal Hocko
2014-05-06 18:30                         ` Michal Hocko
2014-05-06 19:55                         ` Johannes Weiner
2014-05-06 19:55                           ` Johannes Weiner
2014-04-28 12:26 ` [PATCH 2/4] memcg: Allow setting low_limit Michal Hocko
2014-04-28 12:26   ` Michal Hocko
2014-04-28 12:26 ` [PATCH 3/4] memcg, doc: clarify global vs. limit reclaims Michal Hocko
2014-04-28 12:26   ` Michal Hocko
2014-04-30 23:03   ` Johannes Weiner
2014-04-30 23:03     ` Johannes Weiner
2014-05-02  9:43     ` Michal Hocko
2014-05-02  9:43       ` Michal Hocko
2014-05-06 19:56       ` Michal Hocko
2014-05-06 19:56         ` Michal Hocko
2014-04-28 12:26 ` [PATCH 4/4] memcg: Document memory.low_limit_in_bytes Michal Hocko
2014-04-28 12:26   ` Michal Hocko
2014-04-30 22:57   ` Johannes Weiner
2014-04-30 22:57     ` Johannes Weiner
2014-05-02  9:46     ` Michal Hocko
2014-05-02  9:46       ` Michal Hocko
2014-04-28 15:46 ` [PATCH v2 0/4] memcg: Low-limit reclaim Roman Gushchin
2014-04-28 15:46   ` Roman Gushchin
2014-04-29  7:42   ` Greg Thelen
2014-04-29  7:42     ` Greg Thelen
2014-04-29 10:50     ` Roman Gushchin
2014-04-29 10:50       ` Roman Gushchin
2014-04-29 12:54       ` Michal Hocko
2014-04-29 12:54         ` Michal Hocko
2014-04-30 21:52 ` Andrew Morton
2014-04-30 21:52   ` Andrew Morton
2014-04-30 22:49   ` Johannes Weiner
2014-04-30 22:49     ` Johannes Weiner
2014-05-02 12:03   ` Michal Hocko
2014-05-02 12:03     ` Michal Hocko
2014-04-30 21:59 ` Andrew Morton
2014-04-30 21:59   ` Andrew Morton
2014-05-02 11:22   ` Michal Hocko
2014-05-02 11:22     ` Michal Hocko
2014-05-28 12:10 ` Michal Hocko
2014-05-28 12:10   ` Michal Hocko
2014-05-28 13:49   ` Johannes Weiner
2014-05-28 13:49     ` Johannes Weiner
2014-05-28 14:21     ` Michal Hocko
2014-05-28 14:21       ` Michal Hocko
2014-05-28 15:28       ` Johannes Weiner
2014-05-28 15:28         ` Johannes Weiner
2014-05-28 15:54         ` Michal Hocko
2014-05-28 15:54           ` Michal Hocko
2014-05-28 16:33           ` Johannes Weiner
2014-05-28 16:33             ` Johannes Weiner
2014-06-03 11:07             ` Michal Hocko
2014-06-03 11:07               ` Michal Hocko
2014-06-03 14:22               ` Johannes Weiner
2014-06-03 14:22                 ` Johannes Weiner
2014-06-04 14:46                 ` Michal Hocko
2014-06-04 14:46                   ` Michal Hocko
2014-06-04 15:44                   ` Johannes Weiner
2014-06-04 15:44                     ` Johannes Weiner
2014-06-04 19:18                     ` Hugh Dickins
2014-06-04 19:18                       ` Hugh Dickins
2014-06-04 21:45                       ` Johannes Weiner
2014-06-04 21:45                         ` Johannes Weiner
2014-06-05 14:51                         ` Michal Hocko
2014-06-05 14:51                           ` Michal Hocko
2014-06-05 16:10                           ` Johannes Weiner
2014-06-05 16:10                             ` Johannes Weiner
2014-06-05 16:43                             ` Michal Hocko
2014-06-05 16:43                               ` Michal Hocko
2014-06-05 18:23                               ` Johannes Weiner
2014-06-05 18:23                                 ` Johannes Weiner
2014-06-06 14:44                                 ` Michal Hocko
2014-06-06 14:44                                   ` Michal Hocko
2014-06-06 14:46                                   ` [PATCH 1/2] mm, memcg: allow OOM if no memcg is eligible during direct reclaim Michal Hocko
2014-06-06 14:46                                     ` Michal Hocko
2014-06-06 14:46                                     ` [PATCH 2/2] memcg: Allow hard guarantee mode for low limit reclaim Michal Hocko
2014-06-06 14:46                                       ` Michal Hocko
2014-06-06 15:29                                       ` Tejun Heo
2014-06-06 15:29                                         ` Tejun Heo
2014-06-06 15:34                                         ` Tejun Heo
2014-06-06 15:34                                           ` Tejun Heo
2014-06-09  8:30                                         ` Michal Hocko
2014-06-09  8:30                                           ` Michal Hocko
2014-06-09 13:54                                           ` Tejun Heo
2014-06-09 13:54                                             ` Tejun Heo
2014-06-09 22:52                                       ` Greg Thelen
2014-06-09 22:52                                         ` Greg Thelen
2014-06-10 16:57                                         ` Johannes Weiner
2014-06-10 16:57                                           ` Johannes Weiner
2014-06-10 22:16                                           ` Greg Thelen
2014-06-10 22:16                                             ` Greg Thelen
2014-06-11  7:57                                           ` Michal Hocko
2014-06-11  7:57                                             ` Michal Hocko
2014-06-11  8:00                                             ` [PATCH 1/2] mm, memcg: allow OOM if no memcg is eligible during direct reclaim Michal Hocko
2014-06-11  8:00                                               ` Michal Hocko
2014-06-11  8:00                                               ` [PATCH 2/2] memcg: Allow guarantee reclaim Michal Hocko
2014-06-11  8:00                                                 ` Michal Hocko
2014-06-11 15:36                                                 ` Johannes Weiner
2014-06-11 15:36                                                   ` Johannes Weiner
2014-06-12 13:22                                                   ` Michal Hocko
2014-06-12 13:22                                                     ` Michal Hocko
2014-06-12 13:56                                                     ` Johannes Weiner
2014-06-12 13:56                                                       ` Johannes Weiner
2014-06-12 14:22                                                       ` Michal Hocko
2014-06-12 14:22                                                         ` Michal Hocko
2014-06-12 16:17                                                         ` Tejun Heo
2014-06-12 16:17                                                           ` Tejun Heo
2014-06-16 12:59                                                           ` Michal Hocko
2014-06-16 12:59                                                             ` Michal Hocko
2014-06-16 13:57                                                             ` Tejun Heo
2014-06-16 13:57                                                               ` Tejun Heo
2014-06-16 14:04                                                               ` Michal Hocko
2014-06-16 14:04                                                                 ` Michal Hocko
2014-06-16 14:12                                                                 ` Tejun Heo
2014-06-16 14:12                                                                   ` Tejun Heo
2014-06-16 14:29                                                                   ` Michal Hocko
2014-06-16 14:29                                                                     ` Michal Hocko
2014-06-16 14:40                                                                     ` Tejun Heo
2014-06-16 14:40                                                                       ` Tejun Heo
2014-06-12 16:51                                                         ` Johannes Weiner
2014-06-12 16:51                                                           ` Johannes Weiner
2014-06-16 13:22                                                           ` Michal Hocko
2014-06-16 13:22                                                             ` Michal Hocko
2014-06-11 15:20                                               ` [PATCH 1/2] mm, memcg: allow OOM if no memcg is eligible during direct reclaim Johannes Weiner
2014-06-11 15:20                                                 ` Johannes Weiner
2014-06-11 16:14                                                 ` Michal Hocko
2014-06-11 16:14                                                   ` Michal Hocko
2014-06-11 12:31                                             ` [PATCH 2/2] memcg: Allow hard guarantee mode for low limit reclaim Tejun Heo
2014-06-11 12:31                                               ` Tejun Heo
2014-06-11 14:11                                               ` Michal Hocko
2014-06-11 14:11                                                 ` Michal Hocko
2014-06-11 15:34                                                 ` Tejun Heo
2014-06-11 15:34                                                   ` Tejun Heo
2014-06-05 19:36                       ` [PATCH v2 0/4] memcg: Low-limit reclaim Tejun Heo
2014-06-05 19:36                         ` Tejun Heo
2014-06-05 14:32                     ` Michal Hocko
2014-06-05 14:32                       ` Michal Hocko
2014-06-05 15:43                       ` Johannes Weiner
2014-06-05 15:43                         ` Johannes Weiner
2014-06-05 16:09                         ` Michal Hocko
2014-06-05 16:09                           ` Michal Hocko
2014-06-05 16:46                           ` Johannes Weiner [this message]
2014-06-05 16:46                             ` Johannes Weiner
2014-05-28 16:17         ` Greg Thelen
2014-05-28 16:17           ` Greg Thelen
2014-06-03 11:09           ` Michal Hocko
2014-06-03 11:09             ` Michal Hocko
2014-06-03 14:01             ` Greg Thelen
2014-06-03 14:44               ` Michal Hocko
2014-06-03 14:44                 ` Michal Hocko

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=20140605164657.GZ2878@cmpxchg.org \
    --to=hannes@cmpxchg.org \
    --cc=akpm@linux-foundation.org \
    --cc=gthelen@google.com \
    --cc=hughd@google.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=klamm@yandex-team.ru \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@suse.cz \
    --cc=riel@redhat.com \
    --cc=tj@kernel.org \
    --cc=walken@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.