All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Ingo Molnar <mingo@elte.hu>
Cc: Srivatsa Vaddagiri <vatsa@in.ibm.com>
Cc: akpm@osdl.org, linux-kernel@vger.kernel.org,
	Nick Piggin <piggin@cyberone.com.au>,
	dipankar@in.ibm.com
Subject: New v. v. experimental HOTPLUG CPU megapatch.
Date: Tue, 03 Feb 2004 18:39:17 +1100	[thread overview]
Message-ID: <20040203074322.27A892C13E@lists.samba.org> (raw)
In-Reply-To: Your message of "Mon, 02 Feb 2004 16:40:40 BST." <20040202154040.GA5895@elte.hu>

[-- Attachment #1: Type: text/plain, Size: 1470 bytes --]

This is my first cut of a patch, still has some old code in it.  As an
attachment since it's 70k (I'll split into multiple parts later, this
is the x86 part, too).

Patch against 2.6.2-rc2-mm2.  Works basically, gives "APIC error on
CPU1: 08(08)" under stress.  Clues welcome.

Basically consists of:

1) New file stop_machine.[ch] which takes logic out of module.c (I
   haven't converted module.c code over yet though).

2) x86: arch_cpu_down_check (called before offlining) and arch_cpu_down
   (called when machine stopped, moves irqs).

3) x86: idle loop code to play dead.

4) migrate_all_tasks() called with machine stopped, and migrates
   kernel threads as well.

5) cpu.c fires off a thread to do the dirty work: it schedules with
   interrupts still disabled on dead cpu. 

6) Most threads are happy to run on "wrong" CPUs, but slab.c reap
   timer needs a little fixing, and still needs to stop when CPU goes
   offline.  softirq threads are tied to CPU: I just hacked in a check
   so the do nothing if CPU is offline.  Moving the migration thread
   is safe since it should have nothing to do.

7) Ugly change to finish_arch_switch so it doesn't re-enable
   interrupts if the CPU is down (switching from take_cpu_down kthread
   to idle task).  __migrate_task() still needs check for cpu down,
   AFAICT.

Given it was about a day's work, I'm happy it works at all...

Cheers,
Rusty.
--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.


[-- Attachment #2: hotcpu-atomic-test.patch.bz2 --]
[-- Type: application/octet-stream, Size: 17121 bytes --]

  parent reply	other threads:[~2004-02-03  7:43 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-31 14:16 [PATCH 3/4] 2.6.2-rc2-mm2 CPU Hotplug: The Core Rusty Russell
2004-02-01  8:03 ` Andrew Morton
2004-02-01 10:19   ` Nick Piggin
2004-02-01 12:07   ` Rusty Russell
2004-02-02  9:12 ` Ingo Molnar
2004-02-02 10:55   ` Rusty Russell
2004-02-02 12:45     ` Ingo Molnar
2004-02-02 13:22       ` Srivatsa Vaddagiri
2004-02-02 15:40         ` Ingo Molnar
2004-02-03  0:45           ` Rusty Russell
2004-02-03  8:04             ` Ingo Molnar
2004-02-03  8:16               ` Rusty Russell
2004-02-03  8:31                 ` Ingo Molnar
2004-02-03  7:39           ` Rusty Russell [this message]
2004-02-03  9:35             ` New v. v. experimental HOTPLUG CPU megapatch Ingo Molnar
2004-02-05 18:12             ` Pavel Machek
2004-02-03  0:34       ` [PATCH 3/4] 2.6.2-rc2-mm2 CPU Hotplug: The Core Rusty Russell
2004-02-03  9:26         ` Ingo Molnar
2004-02-04  0:19           ` Rusty Russell

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=20040203074322.27A892C13E@lists.samba.org \
    --to=rusty@rustcorp.com.au \
    --cc=mingo@elte.hu \
    --cc=vatsa@in.ibm.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.