From: Segher Boessenkool <segher@kernel.crashing.org> To: Christoph Lameter <clameter@sgi.com> Cc: "Paul Mackerras" <paulus@samba.org>, heiko.carstens@de.ibm.com, horms@verge.net.au, "Stefan Richter" <stefanr@s5r6.in-berlin.de>, "Satyam Sharma" <satyam@infradead.org>, "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>, "David Miller" <davem@davemloft.net>, "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>, "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>, ak@suse.de, cfriesen@nortel.com, rpjday@mindspring.com, Netdev <netdev@vger.kernel.org>, jesper.juhl@gmail.com, linux-arch@vger.kernel.org, "Andrew Morton" <akpm@linux-foundation.org>, zlynx@acm.org, schwidefsky@de.ibm.com, "Chris Snook" <csnook@redhat.com>, "Herbert Xu" <herbert@gondor.apana.org.au>, "Linus Torvalds" <torvalds@linux-foundation.org>, wensong@linux-vs.org, wjiang@resilience.com Subject: Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures Date: Tue, 11 Sep 2007 04:27:22 +0200 [thread overview] Message-ID: <8239c744e7ef64a6f5a15449d337ac68@kernel.crashing.org> (raw) In-Reply-To: <Pine.LNX.4.64.0709101157060.24491@schroedinger.engr.sgi.com> >> "volatile" has nothing to do with reordering. atomic_dec() writes >> to memory, so it _does_ have "volatile semantics", implicitly, as >> long as the compiler cannot optimise the atomic variable away >> completely -- any store counts as a side effect. > > Stores can be reordered. Only x86 has (mostly) implicit write ordering. > So no atomic_dec has no volatile semantics Read again: I said the C "volatile" construct has nothing to do with CPU memory access reordering. > and may be reordered on a variety > of processors. Writes to memory may not follow code order on several > processors. The _compiler_ isn't allowed to reorder things here. Yes, of course you do need stronger barriers for many purposes, volatile isn't all that useful you know. Segher
WARNING: multiple messages have this Message-ID (diff)
From: Segher Boessenkool <segher@kernel.crashing.org> To: Christoph Lameter <clameter@sgi.com> Cc: "Paul Mackerras" <paulus@samba.org>, heiko.carstens@de.ibm.com, horms@verge.net.au, "Stefan Richter" <stefanr@s5r6.in-berlin.de>, "Satyam Sharma" <satyam@infradead.org>, "Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>, "David Miller" <davem@davemloft.net>, "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>, "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>, ak@suse.de, cfriesen@nortel.com, rpjday@mindspring.com, Netdev <netdev@vger.kernel.org>, jesper.juhl@gmail.com, linux-arch@vger.kernel.org, "Andrew Morton" <akpm@linux-foundation.org>, zlynx@acm.org, schwidefsky@de.ibm.com, "Chris Snook" <csnook@redhat.com>, "Herbert Xu" <herbert@gondor.apana.org.au>, "Linus Torvalds" <torvalds@linux-foundation.org>, wensong@linux-vs.org, wjiang@resilience.com Subject: Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures Date: Tue, 11 Sep 2007 04:27:22 +0200 [thread overview] Message-ID: <8239c744e7ef64a6f5a15449d337ac68@kernel.crashing.org> (raw) In-Reply-To: <Pine.LNX.4.64.0709101157060.24491@schroedinger.engr.sgi.com> >> "volatile" has nothing to do with reordering. atomic_dec() writes >> to memory, so it _does_ have "volatile semantics", implicitly, as >> long as the compiler cannot optimise the atomic variable away >> completely -- any store counts as a side effect. > > Stores can be reordered. Only x86 has (mostly) implicit write ordering. > So no atomic_dec has no volatile semantics Read again: I said the C "volatile" construct has nothing to do with CPU memory access reordering. > and may be reordered on a variety > of processors. Writes to memory may not follow code order on several > processors. The _compiler_ isn't allowed to reorder things here. Yes, of course you do need stronger barriers for many purposes, volatile isn't all that useful you know. Segher
next prev parent reply other threads:[~2007-09-11 2:29 UTC|newest] Thread overview: 333+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-08-09 13:14 [PATCH 0/24] make atomic_read() behave consistently across all architectures Chris Snook 2007-08-09 12:41 ` Arnd Bergmann 2007-08-09 14:29 ` Chris Snook 2007-08-09 15:30 ` Arnd Bergmann 2007-08-14 22:31 ` Christoph Lameter 2007-08-14 22:45 ` Chris Snook 2007-08-14 22:51 ` Christoph Lameter 2007-08-14 23:08 ` Satyam Sharma 2007-08-14 23:04 ` Chris Snook 2007-08-14 23:14 ` Christoph Lameter 2007-08-15 6:49 ` Herbert Xu 2007-08-15 6:49 ` Herbert Xu 2007-08-15 8:18 ` Heiko Carstens 2007-08-15 13:53 ` Stefan Richter 2007-08-15 14:35 ` Satyam Sharma 2007-08-15 14:52 ` Herbert Xu 2007-08-15 16:09 ` Stefan Richter 2007-08-15 16:27 ` Paul E. McKenney 2007-08-15 17:13 ` Satyam Sharma 2007-08-15 18:31 ` Segher Boessenkool 2007-08-15 18:57 ` Paul E. McKenney 2007-08-15 19:54 ` Satyam Sharma 2007-08-15 20:17 ` Paul E. McKenney 2007-08-15 20:52 ` Segher Boessenkool 2007-08-15 22:42 ` Paul E. McKenney 2007-08-15 20:47 ` Segher Boessenkool 2007-08-16 0:36 ` Satyam Sharma 2007-08-16 0:36 ` (unknown) Satyam Sharma 2007-08-16 0:32 ` your mail Herbert Xu 2007-08-16 0:58 ` [PATCH 0/24] make atomic_read() behave consistently across all architectures Satyam Sharma 2007-08-16 0:51 ` Herbert Xu 2007-08-16 1:18 ` Satyam Sharma 2007-08-16 1:38 ` Segher Boessenkool 2007-08-15 21:05 ` [PATCH 0/24] make atomic_read() behave consistently across all architectures Segher Boessenkool 2007-08-15 22:44 ` Paul E. McKenney 2007-08-16 1:23 ` Segher Boessenkool 2007-08-16 2:22 ` Paul E. McKenney 2007-08-15 19:58 ` Stefan Richter 2007-08-16 0:39 ` [PATCH] i386: Fix a couple busy loops in mach_wakecpu.h:wait_for_init_deassert() Satyam Sharma 2007-08-24 11:59 ` Denys Vlasenko 2007-08-24 12:07 ` Andi Kleen 2007-08-24 12:12 ` Kenn Humborg 2007-08-24 12:12 ` Kenn Humborg 2007-08-24 14:25 ` Denys Vlasenko 2007-08-24 17:34 ` Linus Torvalds 2007-08-24 13:30 ` Satyam Sharma 2007-08-24 17:06 ` Christoph Lameter 2007-08-24 20:26 ` Denys Vlasenko 2007-08-24 20:34 ` Chris Snook 2007-08-24 16:19 ` Luck, Tony 2007-08-24 16:19 ` Luck, Tony 2007-08-15 16:13 ` [PATCH 0/24] make atomic_read() behave consistently across all architectures Chris Snook 2007-08-15 23:40 ` Herbert Xu 2007-08-15 23:51 ` Paul E. McKenney 2007-08-16 1:30 ` Segher Boessenkool 2007-08-16 2:30 ` Paul E. McKenney 2007-08-16 19:33 ` Segher Boessenkool 2007-08-16 1:26 ` Segher Boessenkool 2007-08-16 2:23 ` Nick Piggin 2007-08-16 19:32 ` Segher Boessenkool 2007-08-17 2:19 ` Nick Piggin 2007-08-17 3:16 ` Paul Mackerras 2007-08-17 3:32 ` Nick Piggin 2007-08-17 3:50 ` Linus Torvalds 2007-08-17 23:59 ` Paul E. McKenney 2007-08-18 0:09 ` Herbert Xu 2007-08-18 1:08 ` Paul E. McKenney 2007-08-18 1:24 ` Christoph Lameter 2007-08-18 1:41 ` Satyam Sharma 2007-08-18 4:13 ` Linus Torvalds 2007-08-18 13:36 ` Satyam Sharma 2007-08-18 21:54 ` Paul E. McKenney 2007-08-18 22:41 ` Linus Torvalds 2007-08-18 23:19 ` Paul E. McKenney 2007-08-24 12:19 ` Denys Vlasenko 2007-08-24 17:19 ` Linus Torvalds 2007-08-18 21:56 ` Paul E. McKenney 2007-08-20 13:31 ` Chris Snook 2007-08-20 22:04 ` Segher Boessenkool 2007-08-20 22:48 ` Russell King 2007-08-20 23:02 ` Segher Boessenkool 2007-08-21 0:05 ` Paul E. McKenney 2007-08-21 7:08 ` Russell King 2007-08-21 7:05 ` Russell King 2007-08-21 9:33 ` Paul Mackerras 2007-08-21 11:37 ` Andi Kleen 2007-08-21 14:48 ` Segher Boessenkool 2007-08-21 16:16 ` Paul E. McKenney 2007-08-21 22:51 ` Valdis.Kletnieks 2007-08-22 0:50 ` Paul E. McKenney 2007-08-22 21:38 ` Adrian Bunk 2007-08-21 14:39 ` Segher Boessenkool 2007-08-17 3:42 ` Linus Torvalds 2007-08-17 5:18 ` Paul E. McKenney 2007-08-17 5:56 ` Satyam Sharma 2007-08-17 7:26 ` Nick Piggin 2007-08-17 8:47 ` Satyam Sharma 2007-08-17 9:15 ` Nick Piggin 2007-08-17 10:12 ` Satyam Sharma 2007-08-17 12:14 ` Nick Piggin 2007-08-17 13:05 ` Satyam Sharma 2007-08-17 9:48 ` Paul Mackerras 2007-08-17 10:23 ` Satyam Sharma 2007-08-17 22:49 ` Segher Boessenkool 2007-08-17 23:51 ` Satyam Sharma 2007-08-17 23:55 ` Segher Boessenkool 2007-08-17 6:42 ` Geert Uytterhoeven 2007-08-17 8:52 ` Andi Kleen 2007-08-17 10:08 ` Satyam Sharma 2007-08-17 22:29 ` Segher Boessenkool 2007-08-17 17:37 ` Segher Boessenkool 2007-08-14 23:26 ` Paul E. McKenney 2007-08-15 10:35 ` Stefan Richter 2007-08-15 12:04 ` Herbert Xu 2007-08-15 12:31 ` Satyam Sharma 2007-08-15 13:08 ` Stefan Richter 2007-08-15 13:11 ` Stefan Richter 2007-08-15 13:47 ` Satyam Sharma 2007-08-15 14:25 ` Paul E. McKenney 2007-08-15 15:33 ` Herbert Xu 2007-08-15 16:08 ` Paul E. McKenney 2007-08-15 17:18 ` Satyam Sharma 2007-08-15 17:33 ` Paul E. McKenney 2007-08-15 18:05 ` Satyam Sharma 2007-08-15 17:55 ` Satyam Sharma 2007-08-15 19:07 ` Paul E. McKenney 2007-08-15 21:07 ` Segher Boessenkool 2007-08-15 20:58 ` Segher Boessenkool 2007-08-15 18:19 ` David Howells 2007-08-15 18:45 ` Paul E. McKenney 2007-08-15 23:41 ` Herbert Xu 2007-08-15 23:53 ` Paul E. McKenney 2007-08-16 0:12 ` Herbert Xu 2007-08-16 0:23 ` Paul E. McKenney 2007-08-16 0:30 ` Herbert Xu 2007-08-16 0:49 ` Paul E. McKenney 2007-08-16 0:53 ` Herbert Xu 2007-08-16 1:14 ` Paul E. McKenney 2007-08-15 18:31 ` Segher Boessenkool 2007-08-15 19:40 ` Satyam Sharma 2007-08-15 20:42 ` Segher Boessenkool 2007-08-16 1:23 ` Satyam Sharma 2007-08-15 23:22 ` Paul Mackerras 2007-08-16 0:26 ` Christoph Lameter 2007-08-16 0:34 ` Paul Mackerras 2007-08-16 0:40 ` Christoph Lameter 2007-08-16 0:39 ` Paul E. McKenney 2007-08-16 0:42 ` Christoph Lameter 2007-08-16 0:53 ` Paul E. McKenney 2007-08-16 0:59 ` Christoph Lameter 2007-08-16 1:14 ` Paul E. McKenney 2007-08-16 1:41 ` Christoph Lameter 2007-08-16 2:15 ` Satyam Sharma 2007-08-16 2:08 ` Herbert Xu 2007-08-16 2:18 ` Christoph Lameter 2007-08-16 3:23 ` Paul Mackerras 2007-08-16 3:33 ` Herbert Xu 2007-08-16 3:48 ` Paul Mackerras 2007-08-16 4:03 ` Herbert Xu 2007-08-16 4:34 ` Paul Mackerras 2007-08-16 5:37 ` Herbert Xu 2007-08-16 6:00 ` Paul Mackerras 2007-08-16 18:50 ` Christoph Lameter 2007-08-16 18:48 ` Christoph Lameter 2007-08-16 19:44 ` Segher Boessenkool 2007-08-16 2:18 ` Chris Friesen 2007-08-16 2:32 ` Paul E. McKenney 2007-08-16 1:51 ` Paul Mackerras 2007-08-16 2:00 ` Herbert Xu 2007-08-16 2:05 ` Paul Mackerras 2007-08-16 2:11 ` Herbert Xu 2007-08-16 2:35 ` Paul E. McKenney 2007-08-16 3:15 ` Paul Mackerras 2007-08-16 3:43 ` Herbert Xu 2007-08-16 2:15 ` Christoph Lameter 2007-08-16 2:17 ` Christoph Lameter 2007-08-16 2:33 ` Satyam Sharma 2007-08-16 3:01 ` Satyam Sharma 2007-08-16 4:11 ` Paul Mackerras 2007-08-16 5:39 ` Herbert Xu 2007-08-16 6:56 ` Paul Mackerras 2007-08-16 7:09 ` Herbert Xu 2007-08-16 8:06 ` Stefan Richter 2007-08-16 8:10 ` Herbert Xu 2007-08-16 9:54 ` Stefan Richter 2007-08-16 10:31 ` Stefan Richter 2007-08-16 10:42 ` Herbert Xu 2007-08-16 16:34 ` Paul E. McKenney 2007-08-16 23:59 ` Herbert Xu 2007-08-17 1:01 ` Paul E. McKenney 2007-08-17 7:39 ` Satyam Sharma 2007-08-17 14:31 ` Paul E. McKenney 2007-08-17 18:31 ` Satyam Sharma 2007-08-17 18:56 ` Paul E. McKenney 2007-08-17 3:15 ` Nick Piggin 2007-08-17 4:02 ` Paul Mackerras 2007-08-17 4:39 ` Nick Piggin 2007-08-17 7:25 ` Stefan Richter 2007-08-17 8:06 ` Nick Piggin 2007-08-17 8:58 ` Satyam Sharma 2007-08-17 9:15 ` Nick Piggin 2007-08-17 10:03 ` Satyam Sharma 2007-08-17 11:50 ` Nick Piggin 2007-08-17 12:50 ` Satyam Sharma 2007-08-17 12:56 ` Nick Piggin 2007-08-17 12:56 ` Nick Piggin 2007-08-18 2:15 ` Satyam Sharma 2007-08-17 10:48 ` Stefan Richter 2007-08-17 10:58 ` Stefan Richter 2007-08-18 14:35 ` LDD3 pitfalls (was Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures) Stefan Richter 2007-08-20 13:28 ` Chris Snook 2007-08-17 22:14 ` [PATCH 0/24] make atomic_read() behave consistently across all architectures Segher Boessenkool 2007-08-17 5:04 ` Paul Mackerras 2007-08-16 10:35 ` Herbert Xu 2007-08-16 19:48 ` Chris Snook 2007-08-17 0:02 ` Herbert Xu 2007-08-17 2:04 ` Chris Snook 2007-08-17 2:13 ` Herbert Xu 2007-08-17 2:31 ` Nick Piggin 2007-08-17 5:09 ` Paul Mackerras 2007-08-17 5:32 ` Herbert Xu 2007-08-17 5:41 ` Paul Mackerras 2007-08-17 8:28 ` Satyam Sharma 2007-08-16 14:48 ` Ilpo Järvinen 2007-08-16 16:19 ` Stefan Richter 2007-08-16 19:55 ` Chris Snook 2007-08-16 20:20 ` Christoph Lameter 2007-08-17 1:02 ` Paul E. McKenney 2007-08-17 1:28 ` Herbert Xu 2007-08-17 5:07 ` Paul E. McKenney 2007-08-17 2:16 ` Paul Mackerras 2007-08-17 3:03 ` Linus Torvalds 2007-08-17 3:43 ` Paul Mackerras 2007-08-17 3:53 ` Herbert Xu 2007-08-17 6:26 ` Satyam Sharma 2007-08-17 8:38 ` Nick Piggin 2007-08-17 9:14 ` Satyam Sharma 2007-08-17 9:31 ` Nick Piggin 2007-08-17 10:55 ` Satyam Sharma 2007-08-17 12:39 ` Nick Piggin 2007-08-17 12:39 ` Nick Piggin 2007-08-17 13:36 ` Satyam Sharma 2007-08-17 16:48 ` Linus Torvalds 2007-08-17 18:50 ` Chris Friesen 2007-08-17 18:50 ` Chris Friesen 2007-08-17 18:54 ` Arjan van de Ven 2007-08-17 19:49 ` Paul E. McKenney 2007-08-17 19:49 ` Arjan van de Ven 2007-08-17 20:12 ` Paul E. McKenney 2007-08-17 19:08 ` Linus Torvalds 2007-08-20 13:15 ` Chris Snook 2007-08-20 13:15 ` Chris Snook 2007-08-20 13:32 ` Herbert Xu 2007-08-20 13:38 ` Chris Snook 2007-08-20 22:07 ` Segher Boessenkool 2007-08-21 5:46 ` Linus Torvalds 2007-08-21 7:04 ` David Miller 2007-08-21 13:50 ` Chris Snook 2007-08-21 14:59 ` Segher Boessenkool 2007-08-21 16:31 ` Satyam Sharma 2007-08-21 16:43 ` Linus Torvalds 2007-09-09 18:02 ` Denys Vlasenko 2007-09-09 18:18 ` Arjan van de Ven 2007-09-10 10:56 ` Denys Vlasenko 2007-09-10 11:15 ` Herbert Xu 2007-09-10 12:22 ` Kyle Moffett 2007-09-10 12:22 ` Kyle Moffett 2007-09-10 13:38 ` Denys Vlasenko 2007-09-10 13:38 ` Denys Vlasenko 2007-09-10 14:16 ` Denys Vlasenko 2007-09-10 14:16 ` Denys Vlasenko 2007-09-10 15:09 ` Linus Torvalds 2007-09-10 16:46 ` Denys Vlasenko 2007-09-10 19:59 ` Kyle Moffett 2007-09-10 19:59 ` Kyle Moffett 2007-09-10 18:59 ` Christoph Lameter 2007-09-10 23:19 ` [PATCH] Document non-semantics of atomic_read() and atomic_set() Chris Snook 2007-09-10 23:19 ` Chris Snook 2007-09-10 23:44 ` Paul E. McKenney 2007-09-10 23:44 ` Paul E. McKenney 2007-09-11 19:35 ` Christoph Lameter 2007-09-11 19:35 ` Christoph Lameter 2007-09-10 14:51 ` [PATCH 0/24] make atomic_read() behave consistently across all architectures Arjan van de Ven 2007-09-10 14:38 ` Denys Vlasenko 2007-09-10 17:02 ` Arjan van de Ven 2007-08-17 11:08 ` Stefan Richter 2007-08-17 22:09 ` Segher Boessenkool 2007-08-17 22:09 ` Segher Boessenkool 2007-08-17 17:41 ` Segher Boessenkool 2007-08-17 18:38 ` Satyam Sharma 2007-08-17 23:17 ` Segher Boessenkool 2007-08-17 23:17 ` Segher Boessenkool 2007-08-17 23:55 ` Satyam Sharma 2007-08-18 0:04 ` Segher Boessenkool 2007-08-18 0:04 ` Segher Boessenkool 2007-08-18 1:56 ` Satyam Sharma 2007-08-18 2:15 ` Segher Boessenkool 2007-08-18 2:15 ` Segher Boessenkool 2007-08-18 3:33 ` Satyam Sharma 2007-08-18 5:18 ` Segher Boessenkool 2007-08-18 5:18 ` Segher Boessenkool 2007-08-18 13:20 ` Satyam Sharma 2007-09-10 18:59 ` Christoph Lameter 2007-09-10 20:54 ` Paul E. McKenney 2007-09-10 21:36 ` Christoph Lameter 2007-09-10 21:50 ` Paul E. McKenney 2007-09-11 2:27 ` Segher Boessenkool [this message] 2007-09-11 2:27 ` Segher Boessenkool 2007-08-16 21:08 ` Luck, Tony 2007-08-16 21:08 ` Luck, Tony 2007-08-16 19:55 ` Chris Snook 2007-08-16 18:54 ` Christoph Lameter 2007-08-16 20:07 ` Paul E. McKenney 2007-08-16 3:05 ` Paul Mackerras 2007-08-16 19:39 ` Segher Boessenkool 2007-08-16 2:07 ` Segher Boessenkool 2007-08-24 12:50 ` Denys Vlasenko 2007-08-24 17:15 ` Christoph Lameter 2007-08-24 20:21 ` Denys Vlasenko 2007-08-16 3:37 ` Bill Fink 2007-08-16 5:20 ` Satyam Sharma 2007-08-16 5:57 ` Satyam Sharma 2007-08-16 9:25 ` Satyam Sharma 2007-08-16 21:00 ` Segher Boessenkool 2007-08-17 4:32 ` Satyam Sharma 2007-08-17 22:38 ` Segher Boessenkool 2007-08-18 14:42 ` Satyam Sharma 2007-08-16 20:50 ` Segher Boessenkool 2007-08-16 22:40 ` David Schwartz 2007-08-17 4:36 ` Satyam Sharma 2007-08-17 4:24 ` Satyam Sharma 2007-08-17 22:34 ` Segher Boessenkool 2007-08-15 19:59 ` Christoph Lameter
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=8239c744e7ef64a6f5a15449d337ac68@kernel.crashing.org \ --to=segher@kernel.crashing.org \ --cc=ak@suse.de \ --cc=akpm@linux-foundation.org \ --cc=cfriesen@nortel.com \ --cc=clameter@sgi.com \ --cc=csnook@redhat.com \ --cc=davem@davemloft.net \ --cc=heiko.carstens@de.ibm.com \ --cc=herbert@gondor.apana.org.au \ --cc=horms@verge.net.au \ --cc=ilpo.jarvinen@helsinki.fi \ --cc=jesper.juhl@gmail.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=paulmck@linux.vnet.ibm.com \ --cc=paulus@samba.org \ --cc=rpjday@mindspring.com \ --cc=satyam@infradead.org \ --cc=schwidefsky@de.ibm.com \ --cc=stefanr@s5r6.in-berlin.de \ --cc=torvalds@linux-foundation.org \ --cc=wensong@linux-vs.org \ --cc=wjiang@resilience.com \ --cc=zlynx@acm.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: linkBe 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.