All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Jackson <pj@sgi.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: dino@in.ibm.com, paulus@samba.org, akpm@osdl.org,
	linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org,
	torvalds@osdl.org, mingo@elte.hu, hawkes@sgi.com
Subject: Re: [PATCH 2.6.13-rc6] cpu_exclusive sched domains build fix
Date: Wed, 24 Aug 2005 20:31:07 +0000	[thread overview]
Message-ID: <20050824133107.2ca733c3.pj@sgi.com> (raw)
In-Reply-To: <430C617E.8080002@yahoo.com.au>

Nick wrote:
> I get the feeling that exclusive cpusets should just be
> completely disabled for 2.6.13

No no - not disable exclusive cpusets - disable using them to try
to define sched domains.

That is, I hope you mean that Dinakar's patch that uses cpu_exclusive
cpusets to define sched domains should be disabled for 2.6.13.  For
what they were worth (not a whole lot, granted), cpu_exclusive cpusets
have been in the kernel since 2.6.12.  They just didn't have any affect
in the placement of sched domains.  So long as they continue to do not
a whole lot, I see more risk than gain in disabling them for 2.6.13.

So long as the cpuset code stops making any calls to partition_sched_domains()
whatsoever, then we should be back where we were in 2.6.12, so far as the
scheduler is concerned - right?

I hope that the following (untested, unbuilt) patch, that I suggested
in my "Mon, 22 Aug 2005 13:38:23 -0700" message best meets you
suggestion above ... and I quote:

=====

The safest, mind numbingly simple thing to do that would avoid the oops
that Hawkes reported is to simply not have the cpuset code call the
code to setup a dynamic sched domain.  This is choice (2) above, and
could be done at the last hour with relative safety.

Here is an untested patch that does (2):

==
Index: linux-2.6.13-cpuset-mempolicy-migrate/kernel/cpuset.c
=================================--- linux-2.6.13-cpuset-mempolicy-migrate.orig/kernel/cpuset.c
+++ linux-2.6.13-cpuset-mempolicy-migrate/kernel/cpuset.c
@@ -627,6 +627,15 @@ static int validate_change(const struct 
  * Call with cpuset_sem held.  May nest a call to the
  * lock_cpu_hotplug()/unlock_cpu_hotplug() pair.
  */
+
+/*
+ * Hack to avoid 2.6.13 partial node dynamic sched domain bug.
+ * Disable letting 'cpu_exclusive' cpusets define dynamic sched
+ * domains, until the sched domain can handle partial nodes.
+ * Remove this ifdef hackery when sched domains fixed.
+ */
+#define DISABLE_EXCLUSIVE_CPU_DOMAINS 1
+#ifdef DISABLE_EXCLUSIVE_CPU_DOMAINS
 static void update_cpu_domains(struct cpuset *cur)
 {
 	struct cpuset *c, *par = cur->parent;
@@ -667,6 +676,11 @@ static void update_cpu_domains(struct cp
 	partition_sched_domains(&pspan, &cspan);
 	unlock_cpu_hotplug();
 }
+#else
+static void update_cpu_domains(struct cpuset *cur)
+{
+}
+#endif
 
 static int update_cpumask(struct cpuset *cs, char *buf)
 {


==

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

WARNING: multiple messages have this Message-ID (diff)
From: Paul Jackson <pj@sgi.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: dino@in.ibm.com, paulus@samba.org, akpm@osdl.org,
	linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org,
	torvalds@osdl.org, mingo@elte.hu, hawkes@sgi.com
Subject: Re: [PATCH 2.6.13-rc6] cpu_exclusive sched domains build fix
Date: Wed, 24 Aug 2005 13:31:07 -0700	[thread overview]
Message-ID: <20050824133107.2ca733c3.pj@sgi.com> (raw)
In-Reply-To: <430C617E.8080002@yahoo.com.au>

Nick wrote:
> I get the feeling that exclusive cpusets should just be
> completely disabled for 2.6.13

No no - not disable exclusive cpusets - disable using them to try
to define sched domains.

That is, I hope you mean that Dinakar's patch that uses cpu_exclusive
cpusets to define sched domains should be disabled for 2.6.13.  For
what they were worth (not a whole lot, granted), cpu_exclusive cpusets
have been in the kernel since 2.6.12.  They just didn't have any affect
in the placement of sched domains.  So long as they continue to do not
a whole lot, I see more risk than gain in disabling them for 2.6.13.

So long as the cpuset code stops making any calls to partition_sched_domains()
whatsoever, then we should be back where we were in 2.6.12, so far as the
scheduler is concerned - right?

I hope that the following (untested, unbuilt) patch, that I suggested
in my "Mon, 22 Aug 2005 13:38:23 -0700" message best meets you
suggestion above ... and I quote:

==========

The safest, mind numbingly simple thing to do that would avoid the oops
that Hawkes reported is to simply not have the cpuset code call the
code to setup a dynamic sched domain.  This is choice (2) above, and
could be done at the last hour with relative safety.

Here is an untested patch that does (2):

=====

Index: linux-2.6.13-cpuset-mempolicy-migrate/kernel/cpuset.c
===================================================================
--- linux-2.6.13-cpuset-mempolicy-migrate.orig/kernel/cpuset.c
+++ linux-2.6.13-cpuset-mempolicy-migrate/kernel/cpuset.c
@@ -627,6 +627,15 @@ static int validate_change(const struct 
  * Call with cpuset_sem held.  May nest a call to the
  * lock_cpu_hotplug()/unlock_cpu_hotplug() pair.
  */
+
+/*
+ * Hack to avoid 2.6.13 partial node dynamic sched domain bug.
+ * Disable letting 'cpu_exclusive' cpusets define dynamic sched
+ * domains, until the sched domain can handle partial nodes.
+ * Remove this ifdef hackery when sched domains fixed.
+ */
+#define DISABLE_EXCLUSIVE_CPU_DOMAINS 1
+#ifdef DISABLE_EXCLUSIVE_CPU_DOMAINS
 static void update_cpu_domains(struct cpuset *cur)
 {
 	struct cpuset *c, *par = cur->parent;
@@ -667,6 +676,11 @@ static void update_cpu_domains(struct cp
 	partition_sched_domains(&pspan, &cspan);
 	unlock_cpu_hotplug();
 }
+#else
+static void update_cpu_domains(struct cpuset *cur)
+{
+}
+#endif
 
 static int update_cpumask(struct cpuset *cs, char *buf)
 {


=====


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

  reply	other threads:[~2005-08-24 20:31 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-23  8:04 [PATCH 2.6.13-rc6] cpu_exclusive sched domains on partial nodes temp fix Paul Jackson
2005-08-23  8:04 ` Paul Jackson
2005-08-23  8:10 ` Ingo Molnar
2005-08-23  8:10   ` Ingo Molnar
2005-08-23 15:07 ` Dinakar Guniguntala
2005-08-23 15:19   ` Dinakar Guniguntala
2005-08-24  0:19 ` John Hawkes
2005-08-24  0:19   ` John Hawkes
2005-08-24 11:15 ` [PATCH 2.6.13-rc6] cpu_exclusive sched domains build fix Paul Jackson
2005-08-24 11:15   ` Paul Jackson
2005-08-24 11:26   ` Dinakar Guniguntala
2005-08-24 11:38     ` Dinakar Guniguntala
2005-08-24 11:46     ` Paul Jackson
2005-08-24 11:46       ` Paul Jackson
2005-08-24 12:01       ` Nick Piggin
2005-08-24 12:01         ` Nick Piggin
2005-08-24 20:31         ` Paul Jackson [this message]
2005-08-24 20:31           ` Paul Jackson
2005-08-25  0:02           ` Nick Piggin
2005-08-25  0:02             ` Nick Piggin
2005-08-25  0:57             ` Paul Jackson
2005-08-25  0:57               ` Paul Jackson
2005-08-25 14:41           ` Dinakar Guniguntala
2005-08-25 14:53             ` Dinakar Guniguntala
2005-08-25 15:20             ` Paul Jackson
2005-08-25 15:20               ` Paul Jackson
2005-08-24 16:09     ` John Hawkes
2005-08-24 16:09       ` John Hawkes

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=20050824133107.2ca733c3.pj@sgi.com \
    --to=pj@sgi.com \
    --cc=akpm@osdl.org \
    --cc=dino@in.ibm.com \
    --cc=hawkes@sgi.com \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=nickpiggin@yahoo.com.au \
    --cc=paulus@samba.org \
    --cc=torvalds@osdl.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.