lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 06 Sep 2006 16:38:14 +1000
From:	Nick Piggin <>
To:	Kimball Murray <>
Subject: Re: [Feature] x86_64 page tracking for Stratus servers

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
>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 
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

Powered by blists - more mailing lists