public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Arthur Marsh <arthur.marsh@internode.on.net>
To: hverkuil@xs4all.nl
Cc: alain.volmat@foss.st.com, alexandre.belloni@bootlin.com,
	alexandre.torgue@foss.st.com, alim.akhtar@samsung.com,
	andrew-ct.chen@mediatek.com, andrew@codeconstruct.com.au,
	andrey_utkin@fastmail.com, andrzej.hajda@intel.com,
	andrzejtp2010@gmail.com, andy@kernel.org,
	angelogioacchino.delregno@collabora.com, awalls@md.metrocast.net,
	bcm-kernel-feedback-list@broadcom.com, bin.liu@mediatek.com,
	bingbu.cao@intel.com, bparrot@ti.com, bryan.odonoghue@linaro.org,
	changhuang.liang@starfivetech.com, clabbe@baylibre.com,
	claudiu.beznea@tuxon.dev, dafna@fastmail.com,
	daniel.almeida@collabora.com, devarsht@ti.com, digetx@gmail.com,
	djrscally@gmail.com, eagle.zhou@nxp.com, eajames@linux.ibm.com,
	eugen.hristev@collabora.com, ezequiel@vanguardiasur.com.ar,
	fabien.dessenne@foss.st.com, fabrizio.castro.jz@renesas.com,
	festevam@gmail.com, florian.fainelli@broadcom.com,
	gregkh@linuxfoundation.org, hdegoede@redhat.com, heiko@sntech.de,
	houlong.wei@mediatek.com, hugues.fruchet@foss.st.com,
	ismael@iodev.co.uk, jacek.anaszewski@gmail.com,
	jack.zhu@starfivetech.com, jackson.lee@chipsnmedia.com,
	jacob-chen@iotwrt.com, jacopo.mondi@ideasonboard.com,
	jai.luthra@linux.dev, jbrunet@baylibre.com,
	jean-christophe.trotin@foss.st.com, jernej.skrabec@gmail.com,
	joel@jms.id.au, jonathanh@nvidia.com,
	kernel-list@raspberrypi.com, kernel@pengutronix.de,
	kernel@puri.sm, kflin@nuvoton.com, khilman@baylibre.com,
	kieran.bingham+renesas@ideasonboard.com,
	kieran.bingham@ideasonboard.com, krzk@kernel.org,
	kwliu@nuvoton.com, l.stelmach@samsung.com,
	laurent.pinchart@ideasonboard.com, linux-media@vger.kernel.org,
	luca.ceresoli@bootlin.com, m.szyprowski@samsung.com,
	m.tretter@pengutronix.de, maintainers@bluecherrydvr.com,
	martin.blumenstingl@googlemail.com,
	martin.tuma@digiteqautomotive.com, martink@posteo.de,
	matt@ranostay.sg, matthias.bgg@gmail.com, mchehab@kernel.org,
	mcoquelin.stm32@gmail.com, michal.simek@amd.com,
	mikhail.ulyanov@cogentembedded.com, ming.qian@nxp.com,
	minghsiu.tsai@mediatek.com, mirela.rabulea@nxp.com,
	mkrufky@linuxtv.org, mripard@kernel.org,
	nas.chung@chipsnmedia.com, neil.armstrong@linaro.org,
	nicolas.ferre@microchip.com, niklas.soderlund@ragnatech.se,
	p.zabel@pengutronix.de, paul.kocialkowski@bootlin.com,
	quic_vgarodia@quicinc.com, rfoss@kernel.org, rjui@broadcom.com,
	rmfrfs@gmail.com, s.hauer@pengutronix.de, s.nawrocki@samsung.com,
	sakari.ailus@linux.intel.com, samuel@sholland.org,
	sbranden@broadcom.com, shawnguo@kernel.org,
	skhan@linuxfoundation.org, skomatineni@nvidia.com,
	slongerbeam@gmail.com, stanimir.k.varbanov@gmail.com,
	tfiga@chromium.org, thierry.reding@gmail.com,
	tian.shu.qiu@intel.com, tiffany.lin@mediatek.com,
	todor.too@gmail.com, wens@csie.org, xavier.roumegue@oss.nxp.com,
	yong.deng@magewell.com, yong.zhi@intel.com,
	yunfei.dong@mediatek.com
Subject: [PATCH 06/10] media: rtl2832_sdr: drop vb2_ops_wait_prepare/finish
Date: Wed, 11 Dec 2024 14:53:54 +1030	[thread overview]
Message-ID: <20241211042355.8479-1-user@am64> (raw)
In-Reply-To: <20241014-vb2-wait-v1-6-8c3ee25c618c@xs4all.nl>

Hi, I had the following when rtl2832_sdr was loading:

 Linux version 6.13.0-rc2 (root@am64) (gcc-14 (Debian 14.2.0-8) 14.2.0, GNU ld (GNU Binutils for Debian) 2.43.50.20241204) #6236 SMP PREEMPT_RT Mon Dec  9 10:25:04 ACDT 2024

 usb 9-5: new low-speed USB device number 2 using ohci-pci
 usb 4-3: New USB device found, idVendor=0bda, idProduct=2838, bcdDevice= 1.00
 usb 4-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
 usb 4-3: Product: RTL2838UHIDIR
 usb 4-3: Manufacturer: Realtek

 usb 4-3: dvb_usb_v2: found a 'Realtek RTL2832U reference design' in warm state
 usb 4-3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
 dvbdev: DVB: registering new adapter (Realtek RTL2832U reference design)
 usb 4-3: media controller created
 dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
 i2c i2c-5: Added multiplexed i2c bus 6
 rtl2832 5-0010: Realtek RTL2832 successfully attached
 usb 4-3: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
 dvbdev: dvb_create_media_entity: media entity 'Realtek RTL2832 (DVB-T)' registered.
 i2c i2c-6: fc0012: Fitipower FC0012 successfully identified
 videodev: Linux video capture interface: v2.00
 [drm] ib test on ring 6 succeeded
 ------------[ cut here ]------------
 WARNING: CPU: 1 PID: 453 at drivers/media/common/videobuf2/videobuf2-core.c:2661 vb2_core_queue_init+0x272/0x280 [videobuf2_common]
 Modules linked in: rtl2832_sdr videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_common videodev fc0012 rtl2832 i2c_mux dvb_usb_rtl28xxu(+) dvb_usb_v2 dvb_core mc radeon(+) snd_emu10k1_synth snd_emux_synth snd_seq_midi_emul snd_seq_virmidi snd_seq_midi snd_seq_midi_event drm_ttm_helper snd_seq ttm snd_hda_codec_hdmi snd_hda_intel snd_intel_dspcfg drm_client_lib drm_suballoc_helper snd_emu10k1 drm_display_helper snd_hda_codec edac_mce_amd sha512_ssse3 sha512_generic sha256_ssse3 snd_util_mem sha1_ssse3 drm_kms_helper aesni_intel snd_ac97_codec snd_hda_core ac97_bus snd_rawmidi snd_seq_device snd_hwdep k10temp drm gf128mul snd_pcm crypto_simd cryptd pcspkr at24 evdev serio_raw acpi_cpufreq emu10k1_gp gameport regmap_i2c i2c_algo_bit snd_timer video snd wmi soundcore sp5100_tco button ext4 crc32c_generic crc16 mbcache jbd2 uas usb_storage hid_generic usbhid hid sg sr_mod cdrom sd_mod ata_generic firewire_ohci ahci crc32_pclmul crc32c_intel firewire_core crc_itu_t pata_atiixp xhci_pci_renesas libahci
  ohci_pci i2c_piix4 i2c_smbus xhci_pci ehci_pci ohci_hcd libata ehci_hcd xhci_hcd r8169 realtek mdio_devres scsi_mod usbcore libphy scsi_common usb_common
 CPU: 1 UID: 0 PID: 453 Comm: udevd Not tainted 6.13.0-rc2 #6236
 Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./F2A78M-HD2, BIOS F2 05/28/2014
 RIP: 0010:vb2_core_queue_init+0x272/0x280 [videobuf2_common]
 Code: 90 0f 1f 80 00 00 00 00 eb be 0f 0b eb ba 0f 0b 90 0f 1f 80 00 00 00 00 eb ae 0f 0b eb aa 0f 0b 90 0f 1f 80 00 00 00 00 eb 9e <0f> 0b eb 9a 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 90 90
 RSP: 0018:ffffb26cc13d3780 EFLAGS: 00010246
 RAX: 0000000000000000 RBX: ffff90e6856d85a0 RCX: ffffffffc0d03320
 RDX: 0000000000000001 RSI: 0000000000000001 RDI: 0000000000000000
 RBP: ffff90e6837ada80 R08: 0000000000001000 R09: 0000000000000000
 R10: ffff90e6856d8000 R11: 6f7475612e312e72 R12: 0000000000000000
 R13: ffff90e6856d8000 R14: ffff90e6856d8790 R15: ffff90e6856d85a0
 FS:  00007fbae6471840(0000) GS:ffff90e9af880000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 00007f6c22049e76 CR3: 0000000102ba4000 CR4: 00000000000406f0
 Call Trace:
  <TASK>
  ? vb2_core_queue_init+0x272/0x280 [videobuf2_common]
  ? __warn.cold+0xad/0x111
  ? vb2_core_queue_init+0x272/0x280 [videobuf2_common]
  ? report_bug+0x10e/0x1a0
  ? handle_bug+0x53/0x90
  ? exc_invalid_op+0x1f/0x90
  ? asm_exc_invalid_op+0x16/0x20
  ? vb2_core_queue_init+0x272/0x280 [videobuf2_common]
  rtl2832_sdr_probe+0x188/0x490 [rtl2832_sdr]
  ? __pfx___device_attach_driver+0x10/0x10
  platform_probe+0x4d/0xa0
  ? driver_sysfs_add+0x73/0xd0
  really_probe+0xde/0x350
  ? pm_runtime_barrier+0x61/0xb0
  __driver_probe_device+0x78/0x110
  driver_probe_device+0x2d/0xc0
  __device_attach_driver+0x8c/0x100
  bus_for_each_drv+0x86/0xe0
  __device_attach+0xb0/0x1b0
  bus_probe_device+0x92/0xb0
  device_add+0x654/0x870
  ? dev_set_name+0x43/0x50
  platform_device_add+0xe6/0x250
  platform_device_register_full+0x117/0x1a0
  rtl2832u_tuner_attach+0x2e0/0x9e0 [dvb_usb_rtl28xxu]
  dvb_usbv2_probe.cold+0xba6/0xccd [dvb_usb_v2]
  ? __pm_runtime_set_status+0x19b/0x2e0
  usb_probe_interface+0x16e/0x360 [usbcore]
  really_probe+0xde/0x350
  ? pm_runtime_barrier+0x61/0xb0
  ? __pfx___driver_attach+0x10/0x10
  __driver_probe_device+0x78/0x110
  driver_probe_device+0x2d/0xc0
  __driver_attach+0xc9/0x1c0
  bus_for_each_dev+0x6a/0xb0
  ? migrate_enable+0xbf/0xf0
  bus_add_driver+0x139/0x220
  driver_register+0x6e/0xc0
  usb_register_driver+0x93/0x140 [usbcore]
  ? __pfx_rtl28xxu_usb_driver_init+0x10/0x10 [dvb_usb_rtl28xxu]
  do_one_initcall+0x42/0x210
  ? __kmalloc_cache_noprof+0x98/0x240
  do_init_module+0x60/0x210
  init_module_from_file+0x89/0xc0
  __x64_sys_finit_module+0x143/0x390
  do_syscall_64+0x47/0x110
  entry_SYSCALL_64_after_hwframe+0x76/0x7e
 RIP: 0033:0x7fbae62a25b9
 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 37 88 0d 00 f7 d8 64 89 01 48
 RSP: 002b:00007ffdcfa41df8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
 RAX: ffffffffffffffda RBX: 000055a9baaadff0 RCX: 00007fbae62a25b9
 RDX: 0000000000000000 RSI: 00007fbae63a2541 RDI: 000000000000000d
 RBP: 0000000000000000 R08: 00007fbae637bad0 R09: 000055a9baaa2540
 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fbae63a2541
 R13: 0000000000020000 R14: 000055a9baab55f0 R15: 0000000000000000
  </TASK>
 ---[ end trace 0000000000000000 ]---
 rtl2832_sdr rtl2832_sdr.1.auto: Could not initialize vb2 queue
 rtl2832_sdr rtl2832_sdr.1.auto: probe with driver rtl2832_sdr failed with error -22
 usb 4-3: dvb_usb_v2: 'Realtek RTL2832U reference design' successfully initialized and connected
 usbcore: registered new interface driver dvb_usb_rtl28xxu

It was git-bisected back to:

commit 8fcd2795d22a7b6aa0671aaa67a74c0f776707af
Author: Hans Verkuil <hverkuil@xs4all.nl>
Date:   Mon Oct 14 17:06:33 2024 +0200

    media: rtl2832_sdr: drop vb2_ops_wait_prepare/finish
    
    Since commit 88785982a19d ("media: vb2: use lock if wait_prepare/finish
    are NULL") it is no longer needed to set the wait_prepare/finish
    vb2_ops callbacks as long as the lock field in vb2_queue is set.
    
    Since the vb2_ops_wait_prepare/finish callbacks already rely on that field,
    we can safely drop these callbacks.
    
    This simplifies the code and this is a step towards the goal of deleting
    these callbacks.
    
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>

diff --git a/drivers/media/dvb-frontends/rtl2832_sdr.c b/drivers/media/dvb-frontends/rtl2832_sdr.c
index 922c1662f1f0..05254d8717db 100644
--- a/drivers/media/dvb-frontends/rtl2832_sdr.c
+++ b/drivers/media/dvb-frontends/rtl2832_sdr.c
@@ -947,8 +947,6 @@ static const struct vb2_ops rtl2832_sdr_vb2_ops = {
 	.buf_queue              = rtl2832_sdr_buf_queue,
 	.start_streaming        = rtl2832_sdr_start_streaming,
 	.stop_streaming         = rtl2832_sdr_stop_streaming,
-	.wait_prepare           = vb2_ops_wait_prepare,
-	.wait_finish            = vb2_ops_wait_finish,
 };
 
 static int rtl2832_sdr_g_tuner(struct file *file, void *priv,

Reversing this patch to the current Linus git head kernel resulted in an
apparently successful load:

[   19.678284] rtl2832 5-0010: Realtek RTL2832 successfully attached
[   20.477909] rtl2832_sdr rtl2832_sdr.1.auto: Registered as swradio0
[   20.477916] rtl2832_sdr rtl2832_sdr.1.auto: Realtek RTL2832 SDR attached
[   20.477919] rtl2832_sdr rtl2832_sdr.1.auto: SDR API is still slightly experimental and functionality changes may follow

I have not tested the sdr functionality though.

Arthur Marsh.

  reply	other threads:[~2024-12-11  4:25 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-14 15:06 [PATCH 00/10] media: start work to remove wait_prepare/finish callbacks Hans Verkuil
2024-10-14 15:06 ` [PATCH 01/10] media: videobuf2-core: update vb2_thread if wait_finish/prepare are NULL Hans Verkuil
2024-10-14 19:15   ` Laurent Pinchart
2024-10-15  6:56     ` Hans Verkuil
2024-10-16  8:20       ` Laurent Pinchart
2024-10-17 14:38   ` Mauro Carvalho Chehab
2024-10-17 14:51     ` Hans Verkuil
2024-10-17 15:09   ` [PATCHv2 " Hans Verkuil
2024-10-18  4:14     ` Mauro Carvalho Chehab
2024-10-14 15:06 ` [PATCH 02/10] media: test-drivers: drop vb2_ops_wait_prepare/finish Hans Verkuil
2024-10-15 15:17   ` Shuah
2024-10-14 15:06 ` [PATCH 03/10] media: pci: " Hans Verkuil
2024-10-19 11:51   ` Sakari Ailus
2024-10-14 15:06 ` [PATCH 04/10] media: usb: " Hans Verkuil
2024-10-14 15:06 ` [PATCH 05/10] media: video-i2c: " Hans Verkuil
2024-10-19 11:49   ` Sakari Ailus
2024-10-14 15:06 ` [PATCH 06/10] media: rtl2832_sdr: " Hans Verkuil
2024-12-11  4:23   ` Arthur Marsh [this message]
2024-10-14 15:06 ` [PATCH 07/10] media: platform: " Hans Verkuil
2024-10-15  8:01   ` Neil Armstrong
2024-10-19 21:10   ` Andrzej Pietrasiewicz
2024-10-27 12:53   ` Andrzej Pietrasiewicz
2024-10-14 15:06 ` [PATCH 08/10] media: common: saa7146: " Hans Verkuil
2024-10-14 15:06 ` [PATCH 09/10] staging: media: " Hans Verkuil
2024-10-15  8:00   ` Neil Armstrong
2024-10-16  7:50   ` Luca Ceresoli
2024-10-14 15:06 ` [PATCH 10/10] media: samples: v4l2-pci-skeleton.c: " Hans Verkuil
2024-10-14 15:13 ` [PATCH 00/10] media: start work to remove wait_prepare/finish callbacks Hans Verkuil
2024-10-14 19:16 ` Laurent Pinchart
2024-10-15 15:13 ` Shuah
2024-10-15 15:23   ` Hans Verkuil
2024-10-16 15:00     ` Shuah
2024-10-16 15:11     ` Laurent Pinchart

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=20241211042355.8479-1-user@am64 \
    --to=arthur.marsh@internode.on.net \
    --cc=alain.volmat@foss.st.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=alim.akhtar@samsung.com \
    --cc=andrew-ct.chen@mediatek.com \
    --cc=andrew@codeconstruct.com.au \
    --cc=andrey_utkin@fastmail.com \
    --cc=andrzej.hajda@intel.com \
    --cc=andrzejtp2010@gmail.com \
    --cc=andy@kernel.org \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=awalls@md.metrocast.net \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bin.liu@mediatek.com \
    --cc=bingbu.cao@intel.com \
    --cc=bparrot@ti.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=changhuang.liang@starfivetech.com \
    --cc=clabbe@baylibre.com \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=dafna@fastmail.com \
    --cc=daniel.almeida@collabora.com \
    --cc=devarsht@ti.com \
    --cc=digetx@gmail.com \
    --cc=djrscally@gmail.com \
    --cc=eagle.zhou@nxp.com \
    --cc=eajames@linux.ibm.com \
    --cc=eugen.hristev@collabora.com \
    --cc=ezequiel@vanguardiasur.com.ar \
    --cc=fabien.dessenne@foss.st.com \
    --cc=fabrizio.castro.jz@renesas.com \
    --cc=festevam@gmail.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hdegoede@redhat.com \
    --cc=heiko@sntech.de \
    --cc=houlong.wei@mediatek.com \
    --cc=hugues.fruchet@foss.st.com \
    --cc=hverkuil@xs4all.nl \
    --cc=ismael@iodev.co.uk \
    --cc=jacek.anaszewski@gmail.com \
    --cc=jack.zhu@starfivetech.com \
    --cc=jackson.lee@chipsnmedia.com \
    --cc=jacob-chen@iotwrt.com \
    --cc=jacopo.mondi@ideasonboard.com \
    --cc=jai.luthra@linux.dev \
    --cc=jbrunet@baylibre.com \
    --cc=jean-christophe.trotin@foss.st.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=joel@jms.id.au \
    --cc=jonathanh@nvidia.com \
    --cc=kernel-list@raspberrypi.com \
    --cc=kernel@pengutronix.de \
    --cc=kernel@puri.sm \
    --cc=kflin@nuvoton.com \
    --cc=khilman@baylibre.com \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=krzk@kernel.org \
    --cc=kwliu@nuvoton.com \
    --cc=l.stelmach@samsung.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=luca.ceresoli@bootlin.com \
    --cc=m.szyprowski@samsung.com \
    --cc=m.tretter@pengutronix.de \
    --cc=maintainers@bluecherrydvr.com \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=martin.tuma@digiteqautomotive.com \
    --cc=martink@posteo.de \
    --cc=matt@ranostay.sg \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=michal.simek@amd.com \
    --cc=mikhail.ulyanov@cogentembedded.com \
    --cc=ming.qian@nxp.com \
    --cc=minghsiu.tsai@mediatek.com \
    --cc=mirela.rabulea@nxp.com \
    --cc=mkrufky@linuxtv.org \
    --cc=mripard@kernel.org \
    --cc=nas.chung@chipsnmedia.com \
    --cc=neil.armstrong@linaro.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=p.zabel@pengutronix.de \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=quic_vgarodia@quicinc.com \
    --cc=rfoss@kernel.org \
    --cc=rjui@broadcom.com \
    --cc=rmfrfs@gmail.com \
    --cc=s.hauer@pengutronix.de \
    --cc=s.nawrocki@samsung.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=samuel@sholland.org \
    --cc=sbranden@broadcom.com \
    --cc=shawnguo@kernel.org \
    --cc=skhan@linuxfoundation.org \
    --cc=skomatineni@nvidia.com \
    --cc=slongerbeam@gmail.com \
    --cc=stanimir.k.varbanov@gmail.com \
    --cc=tfiga@chromium.org \
    --cc=thierry.reding@gmail.com \
    --cc=tian.shu.qiu@intel.com \
    --cc=tiffany.lin@mediatek.com \
    --cc=todor.too@gmail.com \
    --cc=wens@csie.org \
    --cc=xavier.roumegue@oss.nxp.com \
    --cc=yong.deng@magewell.com \
    --cc=yong.zhi@intel.com \
    --cc=yunfei.dong@mediatek.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox