All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Jackson <pj@sgi.com>
To: dino@in.ibm.com
Cc: linux-kernel@vger.kernel.org, lse-tech@lists.sourceforge.net
Subject: Re: [Lse-tech] [PATCH] new bitmap list format (for cpusets)
Date: Wed, 11 Aug 2004 13:40:18 -0700	[thread overview]
Message-ID: <20040811134018.1551e03b.pj@sgi.com> (raw)
In-Reply-To: <20040811180558.GA4066@in.ibm.com>

Paul wrote:
> Another approach that might work, in order to ensure that the top_cpuset
> has its cpus_allowed set to the proper value of cpu_possible_map, would
> be to add a routine, say cpuset_init_smp(),

Dinakar replied:
> Yes that would be fine too.

Since I've gotten this far without having the definition of 'struct cpuset'
exposed in a header file, I'd like to see if I can continue that.  I'll
give this other approach a try - though it will be a day or so before I
can get to it - prior commitments.  Unless of course, someone sends me such
a patch first ;).

Paul wrote:
> If you take your approach, should we remove the __init qualifier from
> kernel/cpuset.c cpuset_init()?

Dinakar replied:
> The qualifier would still be valid I think, no ?

What led me to ask that question was the following bit of code at the
bottom of start_kernel(), in init/main.c:

=========================================================
        /* rootfs populating might need page-writeback */
        page_writeback_init();
#ifdef CONFIG_PROC_FS
        proc_root_init();
#endif
        cpuset_init();

        check_bugs();

        /* Do the rest non-__init'ed, we're now alive */
        rest_init();
}
=========================================================

Since this is where your patch was moving the cpuset_init() call _away_
from, in order to put the call later, I took the comment about
"non-__init'ed" to mean that your patch was moving the cpuset_init()
call past the place where an __init qualifier was valid.

But I haven't studied the code to know this for sure, and if my other
scheme pans out to address the problem you found (that cpu_possible_map,
upon which cpuset initialization depends, does not get fully initialized
until smp_prepare_cpus gets called by init(),) then this detail won't
matter anyway.

However an equivalent detail would matter.  Can I mark cpuset_init_smp()
as "__init" ?  Hmmm ... likely I can, since two routines called at the
same time, sched_init_smp() and smp_init(), are marked __init.  This
suggests that my interpretation of that comment was wrong, and that
you're entirely right -- calls made in either place can be marked
__init.  Is that comment above misleading?


> A related Q, I was wondering why the nodemask_t needed to be part 
> of the task_struct, since cpuset would anyway have a reference to it.

Good question.

The nodemasks current->mems_allowed and current->cpuset->mems_allowed,
can be out of sync, by design.  Changes made via the cpuset file system
affect the second of these.  But not until the affected task goes
through the numa code in an mbind or set_mempolicy system call does that
task pick up the new value of mems_allowed and put it in its task struct
as current->mems_allowed to control memory placement.

This seems necessary, because there is no way for one task to affect
anothers mm, vma and zonelist structures.  So all of these structures
must be managed directly by a task on itself.  So a tasks mems_allowed,
which must be consistent with its zonelists, must also be managed
directly by itself.

If one task directly manipulated anothers current->mems_allowed, we
could end up in the situation that a task had done say an MPOL_BIND
setting up some zonelists for one set of nodes, then had its
current->mems_allowed changed to some non-overlapping set, leaving the
task completely unable to allocate memory on its own behalf, which would
likely send us into portions of the allocator code we should only arrive
in if very short on memory and desperate, which risks causing further
grief to the rest of the system ... not good (tm).

Hmmm ... as I write this, I am suspecting that there is a bit of code
that is missing in this solution.  Any given task may have multiple
memory policies, a default one (set_mempolicy) and zero or more ones
specific to some range of memory (mbind).  We must deal with the case
that any change in a tasks current->mems_allowed could break any of the
memory policies affecting it (leave the policy non-overlapping with the
mems_allowed).  My crystal ball sees some more nodemasks, perhaps one
per numa struct mempolicy, and a little bit more code, in my future ;).
I'll have to think about this.  Suggestions welcome.

As I said -- good question.

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

  reply	other threads:[~2004-08-11 20:41 UTC|newest]

Thread overview: 233+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-05 10:08 [PATCH] new bitmap list format (for cpusets) Paul Jackson
2004-08-05 10:10 ` [PATCH] cpusets - big numa cpu and memory placement Paul Jackson
2004-08-05 20:55   ` [Lse-tech] " Martin J. Bligh
2004-08-06  2:05     ` Paul Jackson
2004-08-06  3:24       ` Martin J. Bligh
2004-08-06  8:31         ` Paul Jackson
2004-08-06 15:30         ` Erich Focht
2004-08-06 15:35           ` Martin J. Bligh
2004-08-06 15:48             ` Hubertus Franke
2004-08-07  6:30               ` Paul Jackson
2004-08-07  6:45               ` Paul Jackson
2004-08-06 15:49             ` Hubertus Franke
2004-08-06 15:52             ` Hubertus Franke
2004-08-06 15:55             ` Erich Focht
2004-08-07  6:10           ` Paul Jackson
2004-08-07 15:22             ` Erich Focht
2004-08-07 18:59               ` Paul Jackson
2004-08-08  3:17               ` Paul Jackson
2004-08-08 14:50               ` Martin J. Bligh
2004-08-11  0:43                 ` Paul Jackson
2004-08-11  9:40                 ` Erich Focht
2004-08-11 14:49                   ` Martin J. Bligh
2004-08-11 17:50                     ` Paul Jackson
2004-08-11 21:12                       ` Shailabh Nagar
2004-08-12  7:15                         ` Paul Jackson
2004-08-12 12:58                           ` Jack Steiner
2004-08-12 14:50                           ` Martin J. Bligh
2004-08-11 15:12                   ` Shailabh Nagar
2004-08-08 20:22               ` Shailabh Nagar
2004-08-09 15:57                 ` Hubertus Franke
2004-08-10 11:31                   ` [ckrm-tech] " Paul Jackson
2004-08-10 22:38                     ` Shailabh Nagar
2004-08-11 10:42                       ` Erich Focht
2004-08-11 14:56                         ` Shailabh Nagar
2004-08-14  8:51                       ` Paul Jackson
2004-08-08 19:58             ` Shailabh Nagar
2004-10-01 23:41               ` Andrew Morton
2004-10-02  6:06                 ` Paul Jackson
2004-10-02 14:55                   ` Dipankar Sarma
2004-10-02 16:14                     ` Hubertus Franke
2004-10-02 18:04                       ` Paul Jackson
2004-10-02 23:21                       ` Peter Williams
2004-10-02 23:44                         ` Hubertus Franke
2004-10-03  0:00                           ` Peter Williams
2004-10-03  3:44                           ` Paul Jackson
2004-10-05  3:13                           ` [ckrm-tech] " Matthew Helsley
2004-10-05  8:30                             ` Hubertus Franke
2004-10-05 14:20                               ` Paul Jackson
2004-10-03  2:59                         ` Paul Jackson
2004-10-03  3:19                         ` Paul Jackson
2004-10-03  3:53                           ` Peter Williams
2004-10-03  4:47                             ` Paul Jackson
2004-10-03  5:12                               ` Peter Williams
2004-10-03  5:39                                 ` Paul Jackson
2004-10-03  4:02                           ` Paul Jackson
2004-10-03  3:39                         ` Paul Jackson
2004-10-03 14:36                         ` Martin J. Bligh
2004-10-03 15:39                           ` Paul Jackson
2004-10-03 23:53                             ` Martin J. Bligh
2004-10-04  0:02                               ` Martin J. Bligh
2004-10-04  0:53                                 ` Paul Jackson
2004-10-04  3:56                                   ` Martin J. Bligh
2004-10-04  4:24                                     ` Paul Jackson
2004-10-04 15:03                                       ` Martin J. Bligh
2004-10-04 15:53                                         ` [ckrm-tech] " Paul Jackson
2004-10-04 18:17                                           ` Martin J. Bligh
2004-10-04 20:25                                             ` Paul Jackson
2004-10-04 22:15                                               ` Martin J. Bligh
2004-10-05  9:17                                                 ` Paul Jackson
2004-10-05 10:01                                                   ` Paul Jackson
2004-10-05 22:24                                                   ` Matthew Dobson
2004-10-05  9:26                                         ` Simon Derr
2004-10-05  9:58                                           ` Paul Jackson
2004-10-05 19:34                                           ` Martin J. Bligh
2004-10-06  0:28                                             ` Paul Jackson
2004-10-06  1:16                                               ` Martin J. Bligh
2004-10-06  2:08                                                 ` Paul Jackson
2004-10-06 22:59                                                   ` Matthew Dobson
2004-10-06 23:23                                                     ` Peter Williams
2004-10-07  0:16                                                       ` Rick Lindsley
2004-10-07 18:27                                                         ` Paul Jackson
2004-10-07  8:51                                                     ` Paul Jackson
2004-10-07 10:53                                                       ` Rick Lindsley
2004-10-07 14:41                                                         ` Martin J. Bligh
     [not found]                                                         ` <20041007072842.2bafc320.pj@sgi.com>
2004-10-07 19:05                                                           ` Rick Lindsley
2004-10-10  2:15                                                             ` [ckrm-tech] " Paul Jackson
2004-10-11 22:06                                                               ` Matthew Dobson
2004-10-11 22:58                                                                 ` Paul Jackson
2004-10-12 21:22                                                                   ` Matthew Dobson
2004-10-12  8:50                                                                 ` Simon Derr
2004-10-12 21:25                                                                   ` Matthew Dobson
2004-10-10  2:28                                                             ` Paul Jackson
     [not found]                                                           ` <4165A31E.4070905@watson.ibm.com>
2004-10-08 13:14                                                             ` Paul Jackson
2004-10-08 15:42                                                               ` Hubertus Franke
2004-10-08 18:23                                                                 ` Paul Jackson
2004-10-09  1:00                                                                   ` Matthew Dobson
2004-10-09 20:08                                                                     ` [Lse-tech] " Paul Jackson
2004-10-11 22:16                                                                       ` Matthew Dobson
2004-10-11 22:42                                                                         ` Paul Jackson
2004-10-10  0:05                                                                     ` Paul Jackson
2004-10-11 22:18                                                                       ` Matthew Dobson
2004-10-11 22:39                                                                         ` Paul Jackson
2004-10-09  0:51                                                               ` Matthew Dobson
2004-10-10  0:50                                                                 ` [Lse-tech] " Paul Jackson
2004-10-10  0:59                                                                 ` Paul Jackson
2004-10-09  0:22                                                             ` Matthew Dobson
2004-10-12 22:24                                                               ` [Lse-tech] " Hanna Linder
2004-10-13 20:56                                                                 ` Matthew Dobson
2004-10-09  0:06                                                           ` [Lse-tech] " Matthew Dobson
2004-10-07 12:47                                                       ` Simon Derr
2004-10-07 14:49                                                         ` Martin J. Bligh
2004-10-07 17:54                                                           ` Paul Jackson
2004-10-07 18:13                                                             ` Martin J. Bligh
2004-10-08  9:23                                                               ` Erich Focht
2004-10-08  9:50                                                                 ` Andrew Morton
2004-10-08 10:40                                                                   ` Erich Focht
2004-10-08 14:26                                                                     ` Martin J. Bligh
2004-10-08  9:53                                                                 ` Nick Piggin
2004-10-08 11:40                                                                   ` Erich Focht
2004-10-08 14:24                                                                 ` Martin J. Bligh
2004-10-08 22:37                                                                   ` Erich Focht
2004-10-14 10:35                                                               ` Eric W. Biederman
2004-10-14 11:22                                                                 ` Erich Focht
2004-10-14 11:23                                                                 ` Paul Jackson
2004-10-14 19:39                                                                 ` Paul Jackson
2004-10-14 22:38                                                                   ` Hubertus Franke
2004-10-15  1:26                                                                     ` Paul Jackson
2004-10-07 18:25                                                             ` Andrew Morton
2004-10-07 19:52                                                               ` Paul Jackson
2004-10-07 21:04                                                                 ` [ckrm-tech] " Matthew Helsley
2004-10-10  3:22                                                               ` Paul Jackson
2004-10-07 19:16                                                             ` Rick Lindsley
2004-10-10  2:35                                                               ` Paul Jackson
2004-10-10  5:12                                                           ` [ckrm-tech] " Paul Jackson
2004-10-08 23:48                                                       ` Matthew Dobson
2004-10-09  0:18                                                         ` Nick Piggin
2004-10-11 23:00                                                           ` Matthew Dobson
2004-10-11 23:09                                                             ` Nick Piggin
2004-10-05 22:33                                           ` Matthew Dobson
2004-10-06  3:01                                             ` Paul Jackson
2004-10-06 23:12                                               ` Matthew Dobson
2004-10-07  8:59                                                 ` [ckrm-tech] " Paul Jackson
2004-10-04  0:45                               ` Paul Jackson
2004-10-04 11:44                                 ` Rick Lindsley
2004-10-04 22:46                                   ` [ckrm-tech] " Paul Jackson
2004-10-05 22:19                               ` Matthew Dobson
2004-10-06  2:39                                 ` Paul Jackson
2004-10-06 23:21                                   ` Matthew Dobson
2004-10-07  9:41                                     ` [ckrm-tech] " Paul Jackson
2004-10-06  2:47                                 ` Paul Jackson
2004-10-06  9:43                                   ` Simon Derr
2004-10-06 13:27                                     ` Paul Jackson
2004-10-06 21:55                                     ` Peter Williams
2004-10-06 22:49                                       ` Paul Jackson
2004-10-06  8:02                                 ` Simon Derr
2005-02-07 23:59                                 ` Matthew Dobson
2005-02-08  0:20                                   ` Andrew Morton
2005-02-08  0:34                                     ` Paul Jackson
2005-02-08  9:54                                   ` Dinakar Guniguntala
2005-02-08  9:49                                     ` Nick Piggin
2005-02-08 16:13                                       ` Martin J. Bligh
2005-02-08 23:26                                         ` Nick Piggin
2005-02-09  4:23                                           ` Paul Jackson
2005-02-08 19:32                                       ` Matthew Dobson
2005-02-09  2:53                                         ` Nick Piggin
2005-02-08 19:00                                     ` Matthew Dobson
2005-02-08 20:42                                       ` Paul Jackson
2005-02-08 22:14                                         ` Matthew Dobson
2005-02-08 23:58                                           ` Shailabh Nagar
2005-02-09  0:27                                             ` Paul Jackson
2005-02-09  0:24                                           ` Paul Jackson
2005-02-09 17:59                                         ` [ckrm-tech] " Chandra Seetharaman
2005-02-11  2:46                                           ` Chandra Seetharaman
2005-02-11  9:21                                             ` Paul Jackson
2005-02-12  1:37                                               ` Chandra Seetharaman
2005-02-12  6:16                                                 ` Paul Jackson
2005-02-11 16:54                                             ` Jesse Barnes
2005-02-11 18:42                                               ` Chandra Seetharaman
2005-02-11 18:50                                                 ` Jesse Barnes
2005-02-08 16:15                                   ` Martin J. Bligh
2005-02-08 22:17                                     ` Matthew Dobson
2004-10-03 16:02                           ` Paul Jackson
2004-10-03 23:47                             ` Martin J. Bligh
2004-10-04  3:33                               ` Paul Jackson
2004-10-03 20:10                           ` Tim Hockin
2004-10-04  1:56                             ` Paul Jackson
2004-10-03  3:35                     ` Paul Jackson
2004-10-03 20:21                   ` Erich Focht
2004-10-03 20:48                     ` Andrew Morton
2004-10-04 14:05                       ` Erich Focht
2004-10-04 14:57                         ` Martin J. Bligh
2004-10-04 15:30                           ` Paul Jackson
2004-10-04 15:41                             ` Martin J. Bligh
2004-10-04 16:02                               ` Paul Jackson
2004-10-04 18:19                                 ` Martin J. Bligh
2004-10-04 18:29                                   ` Paul Jackson
2004-10-04 15:38                           ` Paul Jackson
2004-10-04 16:46                           ` Paul Jackson
2004-10-04  3:41                     ` Paul Jackson
2004-10-04 13:58                     ` Hubertus Franke
2004-10-04 14:13                       ` Simon Derr
2004-10-04 14:15                       ` Erich Focht
2004-10-04 15:23                         ` Paul Jackson
2004-10-04 14:37                       ` Paul Jackson
2004-10-02 15:46                 ` [ckrm-tech] " Marc E. Fiuczynski
2004-10-02 16:17                   ` Hubertus Franke
2004-10-02 17:53                     ` Paul Jackson
2004-10-02 18:16                       ` Hubertus Franke
2004-10-02 19:14                         ` Paul Jackson
2004-10-02 23:29                         ` Peter Williams
2004-10-02 23:51                           ` Hubertus Franke
2004-10-02 20:40                     ` Andrew Morton
2004-10-02 23:08                       ` Hubertus Franke
2004-10-02 22:26                         ` Alan Cox
2004-10-03  2:49                         ` Paul Jackson
2004-10-03 12:19                           ` Hubertus Franke
2004-10-03  3:25                         ` Paul Jackson
2004-10-03  2:26                       ` Paul Jackson
2004-10-03 14:11                         ` Paul Jackson
2004-10-02 17:47                   ` Paul Jackson
2004-08-05 20:47 ` [Lse-tech] [PATCH] new bitmap list format (for cpusets) Martin J. Bligh
2004-08-05 21:45   ` Paul Jackson
     [not found]     ` <Pine.A41.4.53.0408060930100.20680@isabelle.frec.bull.fr>
2004-08-06 10:14       ` Paul Jackson
2004-08-09  8:01   ` Paul Jackson
2004-08-09 14:49     ` Martin J. Bligh
2004-08-10 23:43       ` Paul Jackson
2004-08-11 13:11 ` Dinakar Guniguntala
2004-08-11 16:17   ` Paul Jackson
2004-08-11 18:05     ` Dinakar Guniguntala
2004-08-11 20:40       ` Paul Jackson [this message]
2004-08-12  9:48         ` Dinakar Guniguntala
2004-08-12 10:11           ` Paul Jackson
2004-08-12 12:34             ` Dinakar Guniguntala

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=20040811134018.1551e03b.pj@sgi.com \
    --to=pj@sgi.com \
    --cc=dino@in.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lse-tech@lists.sourceforge.net \
    /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.