All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: dino@in.ibm.com
Cc: Paul Jackson <pj@sgi.com>, Simon Derr <Simon.Derr@bull.net>,
	lkml <linux-kernel@vger.kernel.org>,
	lse-tech <lse-tech@lists.sourceforge.net>,
	Matthew Dobson <colpatch@us.ibm.com>,
	Dipankar Sarma <dipankar@in.ibm.com>,
	Andrew Morton <akpm@osdl.org>
Subject: Re: [RFC PATCH] Dynamic sched domains (v0.5)
Date: Tue, 03 May 2005 09:23:19 +1000	[thread overview]
Message-ID: <4276B667.2050905@yahoo.com.au> (raw)
In-Reply-To: <20050502171619.GA4418@in.ibm.com>

Dinakar Guniguntala wrote:
> On Mon, May 02, 2005 at 07:44:05PM +1000, Nick Piggin wrote:
> 
>>Dinakar Guniguntala wrote:
>>
>>
>>>+void rebuild_sched_domains(cpumask_t span1, cpumask_t span2)
>>>+{
>>>+	cpumask_t change_map;
>>>+
>>>+	cpus_or(change_map, span1, span2);
>>>+
>>>+	preempt_disable();
>>
>>Oh, you can't do this here, attach_domains does a synchronize_kernel.
>>So take it out, it doesn't do anything anyway, does it?
> 
> 
> I put that in to prevent hangs with CONFIG_PREEMPT turned on, but
> clearly didn't test it with preempt turned on. Looks like all I need to 
> do here is a local_irq_disable
> 

What are you protecting against, though? synchroinze_kernel can
sleep, so local_irq_disable is probably the wrong thing to do as well.

AFAIKS, you don't need anything here - so long as you have mutual
exclusion from other sched-domain building then this can take as long
as it wants / be preempted as many times as we like.

> 
>>I suggest you also use some sort of locking to prevent concurrent rebuilds
>>and rebuilds racing with cpu hotplug. You could probably have a static
>>semaphore around rebuild_sched_domains, and take lock_cpu_hotplug here too.
> 
> 
> I already do a lock_cpu_hotplug() in cpuset.c before calling 
> rebuild_sched_domains and also am holding cpuset_sem, so that should take
> care of both hotplug and concurrent rebuilds
> 

OK.

But if we want this to be a respectable interface (possibly for more than
just cpusets) then it should probably do some locking itself. It isn't
performance critical, so I think taking a semaphore wouldn't hurt.

-- 
SUSE Labs, Novell Inc.


  reply	other threads:[~2005-05-02 23:23 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-01 19:09 [RFC PATCH] Dynamic sched domains (v0.5) Dinakar Guniguntala
2005-05-02  9:10 ` Nick Piggin
2005-05-02 17:17   ` Dinakar Guniguntala
2005-05-02  9:44 ` Nick Piggin
2005-05-02 17:16   ` Dinakar Guniguntala
2005-05-02 23:23     ` Nick Piggin [this message]
2005-05-03 14:58       ` Dinakar Guniguntala
2005-05-03 15:31         ` Paul Jackson
2005-05-02 18:01 ` Paul Jackson
2005-05-03 14:44   ` Dinakar Guniguntala
2005-05-03 15:21     ` Paul Jackson
2005-05-03 15:24     ` Paul Jackson
2005-05-03 22:03 ` Matthew Dobson
2005-05-04  0:08   ` Nick Piggin
2005-05-04  0:28     ` Matthew Dobson
2005-05-05 13:28       ` Dinakar Guniguntala
2005-05-05 13:26   ` 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=4276B667.2050905@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=Simon.Derr@bull.net \
    --cc=akpm@osdl.org \
    --cc=colpatch@us.ibm.com \
    --cc=dino@in.ibm.com \
    --cc=dipankar@in.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lse-tech@lists.sourceforge.net \
    --cc=pj@sgi.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.