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
next prev 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 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.