public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Kimball Murray <kimball.murray@gmail.com>
Cc: linux-kernel@vger.kernel.org, akpm@digeo.com, ak@suse.de
Subject: Re: [Feature] x86_64 page tracking for Stratus servers
Date: Wed, 06 Sep 2006 16:38:14 +1000	[thread overview]
Message-ID: <44FE6CD6.4040809@yahoo.com.au> (raw)
In-Reply-To: <20060905173229.14149.60535.sendpatchset@dhcp83-86.boston.redhat.com>

Kimball Murray wrote:

>Attached is a git patch that implements a feature that is used by Stratus
>fault-tolerant servers running on Intel x86_64 platforms.  It provides the
>kernel mechanism that allows a loadable module to be able to keep track of
>recently dirtied pages for the purpose of copying live, currently active
>memory, to a spare memory module.
>
>In Stratus servers, this spare memory module (and CPUs) will be brought into
>lockstep with the original memory (and CPUs) in order to achieve fault
>tolerance.
>
>In order to make this feature work, it is necessary to track pages which have
>been recently dirtied.  A simplified view of the algorithm used in the kernel
>module is this:
>
>1. Turn on the tracking functionality.
>2. Copy all memory from active to spare memory module.
>3. Until done:
>	a) Identify all pages that were dirtied in the active memory since
>	   the last copy operation.
>	b) Copy all pages identified in 3a to the spare memory module.
>	c) If number of pages still dirty is less than some threshhold,
>		i.  "black out" the system (enter SMI)
>		ii.  copy remaining pages in blackout context
>		iii. goto step 4
>	   Else
>		goto 3a.
>4. synchronize cpus
>5. leave SMI, return to OS
>6. System is now "Duplexed", and fault tolerant.
>

Silly question, why can't you do all this from stop_machine_run context (or
your SMI) that doesn't have to worry about other CPUs dirtying memory?

>Please consider this feature for inclusion in the kernel tree, as it is very
>important to Stratus.
>

Given that it doesn't touch core mm/ code, I don't really care about it[*]
except that it doesn't make sense to have the tracking hooks in generic code
because it is pretty specific to your module.

Also, as far as a "notifier" goes, it is of course completely broken unless
your module is the only one that is ever going to use it. Which I suspect
may be the case ;) But you do really need to at least WARN_ON or fail if
someone is going to break it like this.

[*] Though if it gets included, it would not stop me lamenting the
proliferation of complexities to support *tiny* obscure userbases. Can
we wait until your hardware is smart enough to snoop the cc? :)

--

Send instant messages to your online friends http://au.messenger.yahoo.com 

  parent reply	other threads:[~2006-09-06  6:38 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-05 17:34 [Feature] x86_64 page tracking for Stratus servers Kimball Murray
2006-09-05 17:40 ` Arjan van de Ven
2006-09-05 18:38   ` Kimball Murray
2006-09-05 20:48     ` Andi Kleen
2006-09-05 17:56 ` Dave Hansen
2006-09-05 18:50   ` Kimball Murray
2006-09-05 18:16 ` Andi Kleen
2006-09-06  6:38 ` Nick Piggin [this message]
2006-09-06  7:36   ` Andi Kleen
2006-09-06  9:36     ` Nick Piggin
2006-09-06 15:10     ` Kimball Murray
2006-09-06 14:10   ` Kimball Murray

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=44FE6CD6.4040809@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=ak@suse.de \
    --cc=akpm@digeo.com \
    --cc=kimball.murray@gmail.com \
    --cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox