All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Wang Nan <wangnan0@huawei.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Michal Hocko <mhocko@suse.cz>,
	Steven Rostedt <rostedt@goodmis.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: [PATCH 3.10 096/123] cgroup/kmemleak: add kmemleak_free() for cgroup deallocations.
Date: Wed, 12 Nov 2014 10:17:42 +0900	[thread overview]
Message-ID: <20141112011723.356002004@linuxfoundation.org> (raw)
In-Reply-To: <20141112011718.985171261@linuxfoundation.org>

3.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Wang Nan <wangnan0@huawei.com>

commit 401507d67d5c2854f5a88b3f93f64fc6f267bca5 upstream.

Commit ff7ee93f4715 ("cgroup/kmemleak: Annotate alloc_page() for cgroup
allocations") introduces kmemleak_alloc() for alloc_page_cgroup(), but
corresponding kmemleak_free() is missing, which makes kmemleak be
wrongly disabled after memory offlining.  Log is pasted at the end of
this commit message.

This patch add kmemleak_free() into free_page_cgroup().  During page
offlining, this patch removes corresponding entries in kmemleak rbtree.
After that, the freed memory can be allocated again by other subsystems
without killing kmemleak.

  bash # for x in 1 2 3 4; do echo offline > /sys/devices/system/memory/memory$x/state ; sleep 1; done ; dmesg | grep leak

  Offlined Pages 32768
  kmemleak: Cannot insert 0xffff880016969000 into the object search tree (overlaps existing)
  CPU: 0 PID: 412 Comm: sleep Not tainted 3.17.0-rc5+ #86
  Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
  Call Trace:
    dump_stack+0x46/0x58
    create_object+0x266/0x2c0
    kmemleak_alloc+0x26/0x50
    kmem_cache_alloc+0xd3/0x160
    __sigqueue_alloc+0x49/0xd0
    __send_signal+0xcb/0x410
    send_signal+0x45/0x90
    __group_send_sig_info+0x13/0x20
    do_notify_parent+0x1bb/0x260
    do_exit+0x767/0xa40
    do_group_exit+0x44/0xa0
    SyS_exit_group+0x17/0x20
    system_call_fastpath+0x16/0x1b

  kmemleak: Kernel memory leak detector disabled
  kmemleak: Object 0xffff880016900000 (size 524288):
  kmemleak:   comm "swapper/0", pid 0, jiffies 4294667296
  kmemleak:   min_count = 0
  kmemleak:   count = 0
  kmemleak:   flags = 0x1
  kmemleak:   checksum = 0
  kmemleak:   backtrace:
        log_early+0x63/0x77
        kmemleak_alloc+0x4b/0x50
        init_section_page_cgroup+0x7f/0xf5
        page_cgroup_init+0xc5/0xd0
        start_kernel+0x333/0x408
        x86_64_start_reservations+0x2a/0x2c
        x86_64_start_kernel+0xf5/0xfc

Fixes: ff7ee93f4715 (cgroup/kmemleak: Annotate alloc_page() for cgroup allocations)
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.cz>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 mm/page_cgroup.c |    1 +
 1 file changed, 1 insertion(+)

--- a/mm/page_cgroup.c
+++ b/mm/page_cgroup.c
@@ -170,6 +170,7 @@ static void free_page_cgroup(void *addr)
 			sizeof(struct page_cgroup) * PAGES_PER_SECTION;
 
 		BUG_ON(PageReserved(page));
+		kmemleak_free(addr);
 		free_pages_exact(addr, table_size);
 	}
 }



  parent reply	other threads:[~2014-11-12  1:55 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-12  1:16 [PATCH 3.10 000/123] 3.10.60-stable review Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 001/123] tracing/syscalls: Ignore numbers outside NR_syscalls range Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 002/123] ipv4: fix nexthop attlen check in fib_nh_match Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 003/123] ax88179_178a: fix bonding failure Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 004/123] ipv4: dst_entry leak in ip_send_unicast_reply() Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 005/123] drivers/net: macvtap and tun depend on INET Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 006/123] lockd: Try to reconnect if statd has moved Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 007/123] Revert "percpu: free percpu allocation info for uniprocessor system" Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 008/123] pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE Controller Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 009/123] libata-sff: Fix controllers with no ctl port Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 010/123] mmc: rtsx_pci_sdmmc: fix incorrect last byte in R2 response Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 011/123] fs: make cont_expand_zero interruptible Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 012/123] fs: Fix theoretical division by 0 in super_cache_scan() Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 013/123] UBIFS: remove mst_mutex Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 014/123] UBIFS: fix a race condition Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 015/123] UBIFS: fix free log space calculation Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 016/123] vfs: fix data corruption when blocksize < pagesize for mmaped data Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 017/123] x86: Reject x32 executables if x32 ABI not supported Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 018/123] x86, fpu: __restore_xstate_sig()->math_state_restore() needs preempt_disable() Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 019/123] x86, fpu: shift drop_init_fpu() from save_xstate_sig() to handle_signal() Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 020/123] x86, flags: Rename X86_EFLAGS_BIT1 to X86_EFLAGS_FIXED Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 021/123] x86_64, entry: Filter RFLAGS.NT on entry from userspace Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 022/123] x86_64, entry: Fix out of bounds read on sysenter Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 023/123] x86, pageattr: Prevent overflow in slow_virt_to_phys() for X86_PAE Greg Kroah-Hartman
2014-11-12  1:16   ` Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 024/123] evm: check xattr value length and type in evm_inode_setxattr() Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 025/123] ALSA: pcm: Zero-clear reserved fields of PCM status ioctl in compat mode Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 026/123] [jffs2] kill wbuf_queued/wbuf_dwork_lock Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 027/123] fix misuses of f_count() in ppp and netlink Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 028/123] crypto: more robust crypto_memneq Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 029/123] random: add and use memzero_explicit() for clearing data Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 030/123] UBI: add missing kmem_cache_free() in process_pool_aeb error path Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 031/123] mnt: Prevent pivot_root from creating a loop in the mount tree Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 032/123] mfd: rtsx_pcr: Fix MSI enable error handling Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 033/123] pstore: Fix duplicate {console,ftrace}-efi entries Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 034/123] selinux: fix inode security list corruption Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 035/123] virtio_pci: fix virtio spec compliance on restore Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 036/123] dm bufio: update last_accessed when relinking a buffer Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 037/123] drbd: compute the end before rb_insert_augmented() Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 038/123] block: fix alignment_offset math that assumes io_min is a power-of-2 Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 039/123] dm log userspace: fix memory leak in dm_ulog_tfr_init failure path Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 040/123] modules, lock around setting of MODULE_STATE_UNFORMED Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 041/123] framebuffer: fix border color Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 042/123] Input: i8042 - add noloop quirk for Asus X750LN Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 043/123] Input: i8042 - quirks for Fujitsu Lifebook A544 and Lifebook AH544 Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 044/123] drm/ast: Fix HW cursor image Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 045/123] drm/tilcdc: Fix the error path in tilcdc_load() Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 046/123] drm/nouveau/bios: memset dcb struct to zero before parsing Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 047/123] media: v4l2-common: fix overflow in v4l_bound_align_image() Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 049/123] media: ds3000: fix LNB supply voltage on Tevii S480 on initialization Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 050/123] media: tda7432: Fix setting TDA7432_MUTE bit for TDA7432_RF register Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 051/123] kvm: fix excessive pages un-pinning in kvm_iommu_map error path Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 052/123] KVM: x86: Prevent host from panicking on shared MSR writes Greg Kroah-Hartman
2014-11-12  1:16 ` [PATCH 3.10 053/123] KVM: x86: Improve thread safety in pit Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 054/123] KVM: x86: Check non-canonical addresses upon WRMSR Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 055/123] kvm: x86: dont kill guest on unknown exit reason Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 056/123] KVM: x86: Fix wrong masking on relative jump/call Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 057/123] KVM: x86: Emulator fixes for eip canonical checks on near branches Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 058/123] ARC: [nsimosci] Allow "headless" models to boot Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 059/123] ARC: Update order of registers in KGDB to match GDB 7.5 Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 060/123] qla_target: dont delete changed nacls Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 061/123] target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 062/123] target: Fix APTPL metadata handling for dynamic MappedLUNs Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 063/123] MIPS: tlbex: Properly fix HUGE TLB Refill exception handler Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 064/123] jbd2: free bh when descriptor block checksum fails Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 065/123] ext4: check EA value offset when loading Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 066/123] ext4: dont check quota format when there are no quota files Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 067/123] ext4: grab missed write_count for EXT4_IOC_SWAP_BOOT Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 068/123] ext4: add ext4_iget_normal() which is to be used for dir tree lookups Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 069/123] ext4: fix reservation overflow in ext4_da_write_begin Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 070/123] ext4: check s_chksum_driver when looking for bg csum presence Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 071/123] ext4: fix overflow when updating superblock backups after resize Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 073/123] ext4: fix oops when loading block bitmap failed Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 074/123] freezer: Do not freeze tasks killed by OOM killer Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 075/123] OOM, PM: OOM killed task shouldnt escape PM suspend Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 076/123] staging:iio:ad5933: Fix NULL pointer deref when enabling buffer Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 077/123] staging:iio:ad5933: Drop "raw" from channel names Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 078/123] staging:iio:ade7758: Fix NULL pointer deref when enabling buffer Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 079/123] staging:iio:ade7758: Fix check if channels are enabled in prenable Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 080/123] staging:iio:ade7758: Remove "raw" from channel name Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 082/123] USB: serial: cp210x: add Silicon Labs 358x VID and PID Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 083/123] usb: serial: ftdi_sio: add Awinda Station and Dongle products Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 084/123] usb: serial: ftdi_sio: add "bricked" FTDI device PID Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 085/123] USB: cdc-acm: add device id for GW Instek AFG-2225 Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 086/123] USB: cdc-acm: only raise DTR on transitions from B0 Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 087/123] usb: option: add support for Telit LE910 Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 088/123] USB: option: add Haier CE81B CDMA modem Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 089/123] wireless: rt2x00: add new rt2800usb device Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 090/123] usb: dwc3: gadget: Properly initialize LINK TRB Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 091/123] spi: pl022: Fix incorrect dma_unmap_sg Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 092/123] spi: pxa2xx: toggle clocks on suspend if not disabled by runtime PM Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 093/123] usb-storage: handle a skipped data phase Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 094/123] USB: opticon: fix non-atomic allocation in write path Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 095/123] usb: Do not allow usb_alloc_streams on unconfigured devices Greg Kroah-Hartman
2014-11-12  1:17 ` Greg Kroah-Hartman [this message]
2014-11-12  1:17 ` [PATCH 3.10 097/123] lib/bitmap.c: fix undefined shift in __bitmap_shift_{left|right}() Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 098/123] scsi: Fix error handling in SCSI_IOCTL_SEND_COMMAND Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 099/123] i82860_edac: Report CE events properly Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 100/123] i3200_edac: " Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 101/123] e7xxx_edac: " Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 102/123] cpc925_edac: Report UE " Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 103/123] nfsd4: fix crash on unknown operation number Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 104/123] ext3: Dont check quota format when there are no quota files Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 105/123] quota: Properly return errors from dquot_writeback_dquots() Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 106/123] tty: Fix high cpu load if tty is unreleaseable Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 107/123] PM / Sleep: fix recovery during resuming from hibernation Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 108/123] mac80211: fix typo in starting baserate for rts_cts_rate_idx Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 109/123] posix-timers: Fix stack info leak in timer_create() Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 110/123] x86, apic: Handle a bad TSC more gracefully Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 111/123] mm: Remove false WARN_ON from pagecache_isize_extended() Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 112/123] crypto: algif - avoid excessive use of socket buffer in skcipher Greg Kroah-Hartman
2014-11-12  1:17 ` [PATCH 3.10 113/123] usb: dwc3: gadget: fix set_halt() bug with pending transfers Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 114/123] usb: gadget: function: acm: make f_acm pass USB20CV Chapter9 Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 115/123] usb: gadget: udc: core: fix kernel oops with soft-connect Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 116/123] drm/radeon: remove invalid pci id Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 117/123] rbd: Fix error recovery in rbd_obj_read_sync() Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 118/123] acer-wmi: Add acpi_backlight=video quirk for the Acer KAV80 Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 119/123] i2c: at91: dont account as iowait Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 120/123] sysfs: driver core: Fix glue dir race condition by gdp_mutex Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 121/123] of: Fix overflow bug in string property parsing functions Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 122/123] Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup Greg Kroah-Hartman
2014-11-12  1:18 ` [PATCH 3.10 123/123] libceph: ceph-msgr workqueue needs a resque worker Greg Kroah-Hartman
2014-11-12  5:21 ` [PATCH 3.10 000/123] 3.10.60-stable review Guenter Roeck
2014-11-12  6:22   ` Greg Kroah-Hartman
2014-11-12  7:22     ` Greg Kroah-Hartman
2014-11-12 16:18       ` Guenter Roeck
2014-11-12  6:31 ` Guenter Roeck
2014-11-13 15:25 ` Shuah Khan
2014-11-14 16:45   ` Greg Kroah-Hartman

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=20141112011723.356002004@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhocko@suse.cz \
    --cc=rostedt@goodmis.org \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=wangnan0@huawei.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.