public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Paul Jackson <pj@sgi.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: rientjes@google.com, akpm@linux-foundation.org, ak@suse.de,
	Lee.Schermerhorn@hp.com, linux-kernel@vger.kernel.org
Subject: Re: [patch 2/2] cpusets: add interleave_over_allowed option
Date: Thu, 25 Oct 2007 18:55:06 -0700	[thread overview]
Message-ID: <20071025185506.8c373aa8.pj@sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0710251725440.10197@schroedinger.engr.sgi.com>

Christoph wrote:
> With that MPOL_INTERLEAVE would be context dependent and no longer 
> needs translation. Lee had similar ideas. Lee: Could we make 
> MPOL_INTERLEAVE generally cpuset context dependent?

Well ... MPOL_INTERLEAVE already is essentially cpuset relative.

So long as the cpuset size (number of allowed memory nodes) doesn't
change, whatever MPOL_INTERLEAVE you set is remapped whenever the
cpusets 'mems' changes, preserving the cpuset relative interleaving.

The problem, as David explains, comes when cpusets change sizes.
When the cpuset gets smaller, one can still do a pretty good job,
scrunching down the interleave nodes in proportion.  But when the
cpuset gets larger, it's not clear how to convert a subset of a
smaller set, to an equivalent subset of a larger set.

The existing code handled this last case by saying screw it -- don't
expand the set of interleave nodes when the cpuset 'mems' grows.

David's new code handles this last case by adding a new per-cpuset
Boolean that adds a new alternative, forcing all the tasks using
MPOL_INTERLEAVE in that cpuset, anytime thereafter that the cpusets
'mems' changes, to get interleaved over the entire cpuset.

Now that I spell it out that way, I am having second thoughts about
this one.  It's another special case palliative, given that we can't
give the user what they really want.

David - could you describe the real world situation in which you
are finding that this new 'interleave_over_allowed' option, aka
'memory_spread_user', is useful?  I'm not always opposed to special
case solutions; but they do usually require special case needs to
justify them ;).

I suspect that the general case solution would require having the user
pass in two nodemasks, call them ALL and SUBSET, requesting that
relative to the ALL nodes, interleave be done on the SUBSET nodes.
That way, even if say the task happened to be running in a cpuset with
a -single- allowed memory node at the moment, it could express its user
memory interleave memory needs for the general case of any number of
nodes.  Then for whatever nodes were currently allowed by the cpuset
to that task at any point, the nodes_remap() logic could be done to
derive from the ALL and SUBSET masks, and the current allowed mask,
what nodes to interleave that tasks user allocations over.

This would require a new set_mempolicy API, and might not be worth it.

If David has a compelling use case, it is simple enough that it
might well be worth doing, even though it's not the general case
solution.

-- 
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <pj@sgi.com> 1.925.600.0401

  reply	other threads:[~2007-10-26  1:55 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-25 22:54 [patch 1/2] cpusets: extract mmarray loading from update_nodemask David Rientjes
2007-10-25 22:54 ` [patch 2/2] cpusets: add interleave_over_allowed option David Rientjes
2007-10-25 23:37   ` Christoph Lameter
2007-10-25 23:56     ` David Rientjes
2007-10-26  0:28       ` Christoph Lameter
2007-10-26  1:55         ` Paul Jackson [this message]
2007-10-26  2:11           ` David Rientjes
2007-10-26  2:29             ` Paul Jackson
2007-10-26  2:45               ` David Rientjes
2007-10-26  3:14                 ` Paul Jackson
2007-10-26  3:58                   ` David Rientjes
2007-10-26  4:34                     ` Paul Jackson
2007-10-26 15:37                     ` Lee Schermerhorn
2007-10-26 17:04                       ` Paul Jackson
2007-10-26 17:28                         ` Lee Schermerhorn
2007-10-26 20:21                         ` Michael Kerrisk
2007-10-26 20:25                           ` Paul Jackson
2007-10-26 20:33                             ` Michael Kerrisk
2007-10-26 15:30             ` Lee Schermerhorn
2007-10-26 18:46               ` David Rientjes
2007-10-26 19:00                 ` Paul Jackson
2007-10-26 20:45                   ` David Rientjes
2007-10-26 21:05                     ` Christoph Lameter
2007-10-26 21:08                       ` David Rientjes
2007-10-26 21:12                         ` Christoph Lameter
2007-10-26 21:15                           ` David Rientjes
2007-10-26 21:13                     ` Lee Schermerhorn
2007-10-26 21:17                       ` Christoph Lameter
2007-10-26 21:26                         ` Lee Schermerhorn
2007-10-26 21:37                           ` Christoph Lameter
2007-10-29 15:00                             ` Lee Schermerhorn
2007-10-29 17:33                               ` Paul Jackson
2007-10-29 17:46                                 ` Lee Schermerhorn
2007-10-29 20:35                               ` Christoph Lameter
2007-10-26 21:18                       ` David Rientjes
2007-10-26 21:31                         ` Lee Schermerhorn
2007-10-26 21:39                           ` David Rientjes
2007-10-27  1:07                             ` Paul Jackson
2007-10-27  1:26                               ` Christoph Lameter
2007-10-27  2:41                                 ` Paul Jackson
2007-10-27  2:50                                   ` Christoph Lameter
2007-10-27  5:16                                     ` Paul Jackson
2007-10-27  6:07                                       ` Christoph Lameter
2007-10-27  8:36                                         ` Paul Jackson
2007-10-27 17:47                                           ` Christoph Lameter
2007-10-27 20:59                                             ` Paul Jackson
2007-10-27 17:50                                   ` David Rientjes
2007-10-27 23:19                                     ` Paul Jackson
2007-10-28 18:19                                       ` David Rientjes
2007-10-28 23:46                                         ` Paul Jackson
2007-10-29  1:04                                           ` David Rientjes
2007-10-29  4:27                                             ` Paul Jackson
2007-10-29  4:47                                               ` David Rientjes
2007-10-29  5:45                                                 ` Paul Jackson
2007-10-29  7:00                                                   ` David Rientjes
2007-10-29  7:26                                                     ` Paul Jackson
2007-10-30 22:53                                                       ` David Rientjes
2007-10-30 23:17                                                         ` Paul Jackson
2007-10-30 23:25                                                           ` David Rientjes
2007-10-31  0:03                                                             ` Paul Jackson
2007-10-31  0:05                                                             ` Paul Jackson
2007-10-29  7:15                                                 ` Paul Jackson
2007-10-30 23:12                                                   ` David Rientjes
2007-10-30 23:44                                                     ` Paul Jackson
2007-10-30 23:53                                                       ` David Rientjes
2007-10-31  0:29                                                         ` Paul Jackson
2007-10-29 16:54                                       ` Lee Schermerhorn
2007-10-29 19:40                                         ` Paul Jackson
2007-10-29 19:45                                         ` Paul Jackson
2007-10-29 19:57                                         ` Paul Jackson
2007-10-29 20:02                                         ` Paul Jackson
2007-10-27 17:45                               ` David Rientjes
2007-10-27 21:22                                 ` Paul Jackson
2007-10-29 15:10                             ` Lee Schermerhorn
2007-10-29 18:41                               ` Paul Jackson
2007-10-29 19:01                                 ` Lee Schermerhorn
2007-10-30 23:17                                 ` David Rientjes
2007-10-31  0:03                                   ` Paul Jackson
2007-10-30 22:57                               ` David Rientjes
2007-10-30 23:46                                 ` Paul Jackson
2007-10-26 20:43                 ` Lee Schermerhorn
2007-10-26 15:18         ` Lee Schermerhorn
2007-10-26 17:36           ` Christoph Lameter
2007-10-26 18:45           ` David Rientjes
2007-10-26 19:02             ` Paul Jackson
2007-10-27 19:16             ` David Rientjes
2007-10-29 16:23               ` Lee Schermerhorn
2007-10-29 17:35                 ` Andi Kleen
2007-10-29 19:35                 ` Paul Jackson
2007-10-29 20:36                   ` Christoph Lameter
2007-10-29 21:08                   ` Andi Kleen
2007-10-29 22:48                     ` Paul Jackson
2007-10-30 19:47                     ` Paul Jackson
2007-10-30 20:20                       ` Lee Schermerhorn
2007-10-30 20:26                         ` Paul Jackson
2007-10-30 20:27                       ` Andi Kleen
2007-10-26  1:13   ` Paul Jackson
2007-10-26  1:30     ` David Rientjes

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=20071025185506.8c373aa8.pj@sgi.com \
    --to=pj@sgi.com \
    --cc=Lee.Schermerhorn@hp.com \
    --cc=ak@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rientjes@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox