From: "Michael S. Tsirkin" <mst@redhat.com>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
kbuild test robot <lkp@intel.com>,
"daniel.santos@pobox.com" <daniel.santos@pobox.com>,
Jason Wang <jasowang@redhat.com>,
"kbuild-all@lists.01.org" <kbuild-all@lists.01.org>,
Russell King <rmk+kernel@armlinux.org.uk>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Sudeep Dutt <sudeep.dutt@intel.com>,
Ashutosh Dixit <ashutosh.dixit@intel.com>,
Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org,
virtualization@lists.linux-foundation.org, kvm@vger.kernel.org
Subject: Re: [PATCH v2 2/2] vhost: disable for OABI
Date: Mon, 6 Apr 2020 08:56:56 -0400 [thread overview]
Message-ID: <20200406085453-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CAMj1kXFNeuZU66swwf_Cx7PrQJV34C0VJ7Rte5aga2Jx4S-yHw@mail.gmail.com>
On Mon, Apr 06, 2020 at 02:45:13PM +0200, Ard Biesheuvel wrote:
> On Mon, 6 Apr 2020 at 14:12, Michael S. Tsirkin <mst@redhat.com> wrote:
> >
> > vhost is currently broken on the default ARM config.
> >
>
> Where did you get this idea? The report from the robot was using a
> randconfig build, and in general, AEABI is required to run anything on
> any modern ARM system .
Oh - I forgot it's randconfig. This part is wrong, sorry.
I decided to just force 2-byte alignment
instead (seems more robust) but I'll take this into account
if we do decide to add this dependency.
>
> > The reason is that that uses apcs-gnu which is the ancient OABI that is been
> > deprecated for a long time.
> >
> > Given that virtio support on such ancient systems is not needed in the
> > first place, let's just add something along the lines of
> >
> > depends on !ARM || AEABI
> >
> > to the virtio Kconfig declaration, and add a comment that it has to do
> > with struct member alignment.
> >
> > Note: we can't make VHOST and VHOST_RING themselves have
> > a dependency since these are selected. Add a new symbol for that.
> >
> > Suggested-by: Ard Biesheuvel <ardb@kernel.org>
> > Siggested-by: Richard Earnshaw <Richard.Earnshaw@arm.com>
>
> typo ^^^
Thanks!
>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> > drivers/misc/mic/Kconfig | 2 +-
> > drivers/net/caif/Kconfig | 2 +-
> > drivers/vdpa/Kconfig | 2 +-
> > drivers/vhost/Kconfig | 17 +++++++++++++----
> > 4 files changed, 16 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/misc/mic/Kconfig b/drivers/misc/mic/Kconfig
> > index 8f201d019f5a..3bfe72c59864 100644
> > --- a/drivers/misc/mic/Kconfig
> > +++ b/drivers/misc/mic/Kconfig
> > @@ -116,7 +116,7 @@ config MIC_COSM
> >
> > config VOP
> > tristate "VOP Driver"
> > - depends on VOP_BUS
> > + depends on VOP_BUS && VHOST_DPN
> > select VHOST_RING
> > select VIRTIO
> > help
> > diff --git a/drivers/net/caif/Kconfig b/drivers/net/caif/Kconfig
> > index 9db0570c5beb..661c25eb1c46 100644
> > --- a/drivers/net/caif/Kconfig
> > +++ b/drivers/net/caif/Kconfig
> > @@ -50,7 +50,7 @@ config CAIF_HSI
> >
> > config CAIF_VIRTIO
> > tristate "CAIF virtio transport driver"
> > - depends on CAIF && HAS_DMA
> > + depends on CAIF && HAS_DMA && VHOST_DPN
> > select VHOST_RING
> > select VIRTIO
> > select GENERIC_ALLOCATOR
> > diff --git a/drivers/vdpa/Kconfig b/drivers/vdpa/Kconfig
> > index d0cb0e583a5d..aee28def466b 100644
> > --- a/drivers/vdpa/Kconfig
> > +++ b/drivers/vdpa/Kconfig
> > @@ -14,7 +14,7 @@ if VDPA_MENU
> >
> > config VDPA_SIM
> > tristate "vDPA device simulator"
> > - depends on RUNTIME_TESTING_MENU && HAS_DMA
> > + depends on RUNTIME_TESTING_MENU && HAS_DMA && VHOST_DPN
> > select VDPA
> > select VHOST_RING
> > select VHOST_IOTLB
> > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig
> > index cb6b17323eb2..b3486e218f62 100644
> > --- a/drivers/vhost/Kconfig
> > +++ b/drivers/vhost/Kconfig
> > @@ -12,6 +12,15 @@ config VHOST_RING
> > This option is selected by any driver which needs to access
> > the host side of a virtio ring.
> >
> > +config VHOST_DPN
> > + bool "VHOST dependencies"
> > + depends on !ARM || AEABI
> > + default y
> > + help
> > + Anything selecting VHOST or VHOST_RING must depend on VHOST_DPN.
> > + This excludes the deprecated ARM ABI since that forces a 4 byte
> > + alignment on all structs - incompatible with virtio spec requirements.
> > +
> > config VHOST
> > tristate
> > select VHOST_IOTLB
> > @@ -27,7 +36,7 @@ if VHOST_MENU
> >
> > config VHOST_NET
> > tristate "Host kernel accelerator for virtio net"
> > - depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP)
> > + depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP) && VHOST_DPN
> > select VHOST
> > ---help---
> > This kernel module can be loaded in host kernel to accelerate
> > @@ -39,7 +48,7 @@ config VHOST_NET
> >
> > config VHOST_SCSI
> > tristate "VHOST_SCSI TCM fabric driver"
> > - depends on TARGET_CORE && EVENTFD
> > + depends on TARGET_CORE && EVENTFD && VHOST_DPN
> > select VHOST
> > default n
> > ---help---
> > @@ -48,7 +57,7 @@ config VHOST_SCSI
> >
> > config VHOST_VSOCK
> > tristate "vhost virtio-vsock driver"
> > - depends on VSOCKETS && EVENTFD
> > + depends on VSOCKETS && EVENTFD && VHOST_DPN
> > select VHOST
> > select VIRTIO_VSOCKETS_COMMON
> > default n
> > @@ -62,7 +71,7 @@ config VHOST_VSOCK
> >
> > config VHOST_VDPA
> > tristate "Vhost driver for vDPA-based backend"
> > - depends on EVENTFD
> > + depends on EVENTFD && VHOST_DPN
> > select VHOST
> > select VDPA
> > help
> > --
> > MST
> >
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: "kbuild-all@lists.01.org" <kbuild-all@lists.01.org>,
kbuild test robot <lkp@intel.com>, Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jason Wang <jasowang@redhat.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Sudeep Dutt <sudeep.dutt@intel.com>,
Ashutosh Dixit <ashutosh.dixit@intel.com>,
"daniel.santos@pobox.com" <daniel.santos@pobox.com>,
Russell King <rmk+kernel@armlinux.org.uk>,
kvm@vger.kernel.org, netdev@vger.kernel.org,
virtualization@lists.linux-foundation.org,
"David S. Miller" <davem@davemloft.net>,
Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 2/2] vhost: disable for OABI
Date: Mon, 6 Apr 2020 08:56:56 -0400 [thread overview]
Message-ID: <20200406085453-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CAMj1kXFNeuZU66swwf_Cx7PrQJV34C0VJ7Rte5aga2Jx4S-yHw@mail.gmail.com>
On Mon, Apr 06, 2020 at 02:45:13PM +0200, Ard Biesheuvel wrote:
> On Mon, 6 Apr 2020 at 14:12, Michael S. Tsirkin <mst@redhat.com> wrote:
> >
> > vhost is currently broken on the default ARM config.
> >
>
> Where did you get this idea? The report from the robot was using a
> randconfig build, and in general, AEABI is required to run anything on
> any modern ARM system .
Oh - I forgot it's randconfig. This part is wrong, sorry.
I decided to just force 2-byte alignment
instead (seems more robust) but I'll take this into account
if we do decide to add this dependency.
>
> > The reason is that that uses apcs-gnu which is the ancient OABI that is been
> > deprecated for a long time.
> >
> > Given that virtio support on such ancient systems is not needed in the
> > first place, let's just add something along the lines of
> >
> > depends on !ARM || AEABI
> >
> > to the virtio Kconfig declaration, and add a comment that it has to do
> > with struct member alignment.
> >
> > Note: we can't make VHOST and VHOST_RING themselves have
> > a dependency since these are selected. Add a new symbol for that.
> >
> > Suggested-by: Ard Biesheuvel <ardb@kernel.org>
> > Siggested-by: Richard Earnshaw <Richard.Earnshaw@arm.com>
>
> typo ^^^
Thanks!
>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> > drivers/misc/mic/Kconfig | 2 +-
> > drivers/net/caif/Kconfig | 2 +-
> > drivers/vdpa/Kconfig | 2 +-
> > drivers/vhost/Kconfig | 17 +++++++++++++----
> > 4 files changed, 16 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/misc/mic/Kconfig b/drivers/misc/mic/Kconfig
> > index 8f201d019f5a..3bfe72c59864 100644
> > --- a/drivers/misc/mic/Kconfig
> > +++ b/drivers/misc/mic/Kconfig
> > @@ -116,7 +116,7 @@ config MIC_COSM
> >
> > config VOP
> > tristate "VOP Driver"
> > - depends on VOP_BUS
> > + depends on VOP_BUS && VHOST_DPN
> > select VHOST_RING
> > select VIRTIO
> > help
> > diff --git a/drivers/net/caif/Kconfig b/drivers/net/caif/Kconfig
> > index 9db0570c5beb..661c25eb1c46 100644
> > --- a/drivers/net/caif/Kconfig
> > +++ b/drivers/net/caif/Kconfig
> > @@ -50,7 +50,7 @@ config CAIF_HSI
> >
> > config CAIF_VIRTIO
> > tristate "CAIF virtio transport driver"
> > - depends on CAIF && HAS_DMA
> > + depends on CAIF && HAS_DMA && VHOST_DPN
> > select VHOST_RING
> > select VIRTIO
> > select GENERIC_ALLOCATOR
> > diff --git a/drivers/vdpa/Kconfig b/drivers/vdpa/Kconfig
> > index d0cb0e583a5d..aee28def466b 100644
> > --- a/drivers/vdpa/Kconfig
> > +++ b/drivers/vdpa/Kconfig
> > @@ -14,7 +14,7 @@ if VDPA_MENU
> >
> > config VDPA_SIM
> > tristate "vDPA device simulator"
> > - depends on RUNTIME_TESTING_MENU && HAS_DMA
> > + depends on RUNTIME_TESTING_MENU && HAS_DMA && VHOST_DPN
> > select VDPA
> > select VHOST_RING
> > select VHOST_IOTLB
> > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig
> > index cb6b17323eb2..b3486e218f62 100644
> > --- a/drivers/vhost/Kconfig
> > +++ b/drivers/vhost/Kconfig
> > @@ -12,6 +12,15 @@ config VHOST_RING
> > This option is selected by any driver which needs to access
> > the host side of a virtio ring.
> >
> > +config VHOST_DPN
> > + bool "VHOST dependencies"
> > + depends on !ARM || AEABI
> > + default y
> > + help
> > + Anything selecting VHOST or VHOST_RING must depend on VHOST_DPN.
> > + This excludes the deprecated ARM ABI since that forces a 4 byte
> > + alignment on all structs - incompatible with virtio spec requirements.
> > +
> > config VHOST
> > tristate
> > select VHOST_IOTLB
> > @@ -27,7 +36,7 @@ if VHOST_MENU
> >
> > config VHOST_NET
> > tristate "Host kernel accelerator for virtio net"
> > - depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP)
> > + depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP) && VHOST_DPN
> > select VHOST
> > ---help---
> > This kernel module can be loaded in host kernel to accelerate
> > @@ -39,7 +48,7 @@ config VHOST_NET
> >
> > config VHOST_SCSI
> > tristate "VHOST_SCSI TCM fabric driver"
> > - depends on TARGET_CORE && EVENTFD
> > + depends on TARGET_CORE && EVENTFD && VHOST_DPN
> > select VHOST
> > default n
> > ---help---
> > @@ -48,7 +57,7 @@ config VHOST_SCSI
> >
> > config VHOST_VSOCK
> > tristate "vhost virtio-vsock driver"
> > - depends on VSOCKETS && EVENTFD
> > + depends on VSOCKETS && EVENTFD && VHOST_DPN
> > select VHOST
> > select VIRTIO_VSOCKETS_COMMON
> > default n
> > @@ -62,7 +71,7 @@ config VHOST_VSOCK
> >
> > config VHOST_VDPA
> > tristate "Vhost driver for vDPA-based backend"
> > - depends on EVENTFD
> > + depends on EVENTFD && VHOST_DPN
> > select VHOST
> > select VDPA
> > help
> > --
> > MST
> >
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Michael S. Tsirkin <mst@redhat.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v2 2/2] vhost: disable for OABI
Date: Mon, 06 Apr 2020 08:56:56 -0400 [thread overview]
Message-ID: <20200406085453-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CAMj1kXFNeuZU66swwf_Cx7PrQJV34C0VJ7Rte5aga2Jx4S-yHw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 5171 bytes --]
On Mon, Apr 06, 2020 at 02:45:13PM +0200, Ard Biesheuvel wrote:
> On Mon, 6 Apr 2020 at 14:12, Michael S. Tsirkin <mst@redhat.com> wrote:
> >
> > vhost is currently broken on the default ARM config.
> >
>
> Where did you get this idea? The report from the robot was using a
> randconfig build, and in general, AEABI is required to run anything on
> any modern ARM system .
Oh - I forgot it's randconfig. This part is wrong, sorry.
I decided to just force 2-byte alignment
instead (seems more robust) but I'll take this into account
if we do decide to add this dependency.
>
> > The reason is that that uses apcs-gnu which is the ancient OABI that is been
> > deprecated for a long time.
> >
> > Given that virtio support on such ancient systems is not needed in the
> > first place, let's just add something along the lines of
> >
> > depends on !ARM || AEABI
> >
> > to the virtio Kconfig declaration, and add a comment that it has to do
> > with struct member alignment.
> >
> > Note: we can't make VHOST and VHOST_RING themselves have
> > a dependency since these are selected. Add a new symbol for that.
> >
> > Suggested-by: Ard Biesheuvel <ardb@kernel.org>
> > Siggested-by: Richard Earnshaw <Richard.Earnshaw@arm.com>
>
> typo ^^^
Thanks!
>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> > drivers/misc/mic/Kconfig | 2 +-
> > drivers/net/caif/Kconfig | 2 +-
> > drivers/vdpa/Kconfig | 2 +-
> > drivers/vhost/Kconfig | 17 +++++++++++++----
> > 4 files changed, 16 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/misc/mic/Kconfig b/drivers/misc/mic/Kconfig
> > index 8f201d019f5a..3bfe72c59864 100644
> > --- a/drivers/misc/mic/Kconfig
> > +++ b/drivers/misc/mic/Kconfig
> > @@ -116,7 +116,7 @@ config MIC_COSM
> >
> > config VOP
> > tristate "VOP Driver"
> > - depends on VOP_BUS
> > + depends on VOP_BUS && VHOST_DPN
> > select VHOST_RING
> > select VIRTIO
> > help
> > diff --git a/drivers/net/caif/Kconfig b/drivers/net/caif/Kconfig
> > index 9db0570c5beb..661c25eb1c46 100644
> > --- a/drivers/net/caif/Kconfig
> > +++ b/drivers/net/caif/Kconfig
> > @@ -50,7 +50,7 @@ config CAIF_HSI
> >
> > config CAIF_VIRTIO
> > tristate "CAIF virtio transport driver"
> > - depends on CAIF && HAS_DMA
> > + depends on CAIF && HAS_DMA && VHOST_DPN
> > select VHOST_RING
> > select VIRTIO
> > select GENERIC_ALLOCATOR
> > diff --git a/drivers/vdpa/Kconfig b/drivers/vdpa/Kconfig
> > index d0cb0e583a5d..aee28def466b 100644
> > --- a/drivers/vdpa/Kconfig
> > +++ b/drivers/vdpa/Kconfig
> > @@ -14,7 +14,7 @@ if VDPA_MENU
> >
> > config VDPA_SIM
> > tristate "vDPA device simulator"
> > - depends on RUNTIME_TESTING_MENU && HAS_DMA
> > + depends on RUNTIME_TESTING_MENU && HAS_DMA && VHOST_DPN
> > select VDPA
> > select VHOST_RING
> > select VHOST_IOTLB
> > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig
> > index cb6b17323eb2..b3486e218f62 100644
> > --- a/drivers/vhost/Kconfig
> > +++ b/drivers/vhost/Kconfig
> > @@ -12,6 +12,15 @@ config VHOST_RING
> > This option is selected by any driver which needs to access
> > the host side of a virtio ring.
> >
> > +config VHOST_DPN
> > + bool "VHOST dependencies"
> > + depends on !ARM || AEABI
> > + default y
> > + help
> > + Anything selecting VHOST or VHOST_RING must depend on VHOST_DPN.
> > + This excludes the deprecated ARM ABI since that forces a 4 byte
> > + alignment on all structs - incompatible with virtio spec requirements.
> > +
> > config VHOST
> > tristate
> > select VHOST_IOTLB
> > @@ -27,7 +36,7 @@ if VHOST_MENU
> >
> > config VHOST_NET
> > tristate "Host kernel accelerator for virtio net"
> > - depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP)
> > + depends on NET && EVENTFD && (TUN || !TUN) && (TAP || !TAP) && VHOST_DPN
> > select VHOST
> > ---help---
> > This kernel module can be loaded in host kernel to accelerate
> > @@ -39,7 +48,7 @@ config VHOST_NET
> >
> > config VHOST_SCSI
> > tristate "VHOST_SCSI TCM fabric driver"
> > - depends on TARGET_CORE && EVENTFD
> > + depends on TARGET_CORE && EVENTFD && VHOST_DPN
> > select VHOST
> > default n
> > ---help---
> > @@ -48,7 +57,7 @@ config VHOST_SCSI
> >
> > config VHOST_VSOCK
> > tristate "vhost virtio-vsock driver"
> > - depends on VSOCKETS && EVENTFD
> > + depends on VSOCKETS && EVENTFD && VHOST_DPN
> > select VHOST
> > select VIRTIO_VSOCKETS_COMMON
> > default n
> > @@ -62,7 +71,7 @@ config VHOST_VSOCK
> >
> > config VHOST_VDPA
> > tristate "Vhost driver for vDPA-based backend"
> > - depends on EVENTFD
> > + depends on EVENTFD && VHOST_DPN
> > select VHOST
> > select VDPA
> > help
> > --
> > MST
> >
next prev parent reply other threads:[~2020-04-06 12:56 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-06 12:12 [PATCH v2 0/2] vhost: add kconfig dependencies Michael S. Tsirkin
2020-04-06 12:12 ` Michael S. Tsirkin
2020-04-06 12:12 ` Michael S. Tsirkin
2020-04-06 12:12 ` [PATCH v2 1/2] vdpa-sim: depend on HAS_DMA Michael S. Tsirkin
2020-04-06 12:12 ` Michael S. Tsirkin
2020-04-06 12:12 ` Michael S. Tsirkin
2020-04-06 12:12 ` [PATCH v2 2/2] vhost: disable for OABI Michael S. Tsirkin
2020-04-06 12:12 ` Michael S. Tsirkin
2020-04-06 12:12 ` Michael S. Tsirkin
2020-04-06 12:45 ` Ard Biesheuvel
2020-04-06 12:45 ` Ard Biesheuvel
2020-04-06 12:45 ` Ard Biesheuvel
2020-04-06 12:56 ` Michael S. Tsirkin [this message]
2020-04-06 12:56 ` Michael S. Tsirkin
2020-04-06 12:56 ` Michael S. Tsirkin
2020-04-06 12:50 ` Arnd Bergmann
2020-04-06 12:50 ` Arnd Bergmann
2020-04-06 12:50 ` Arnd Bergmann
2020-04-06 12:50 ` Arnd Bergmann
2020-04-06 13:02 ` Michael S. Tsirkin
2020-04-06 13:02 ` Michael S. Tsirkin
2020-04-06 13:02 ` Michael S. Tsirkin
2020-04-06 13:02 ` Michael S. Tsirkin
2020-04-06 13:15 ` Arnd Bergmann
2020-04-06 13:15 ` Arnd Bergmann
2020-04-06 13:15 ` Arnd Bergmann
2020-04-06 13:15 ` Arnd Bergmann
2020-04-06 13:21 ` Michael S. Tsirkin
2020-04-06 13:21 ` Michael S. Tsirkin
2020-04-06 13:21 ` Michael S. Tsirkin
2020-04-06 13:21 ` Michael S. Tsirkin
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=20200406085453-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=ashutosh.dixit@intel.com \
--cc=daniel.santos@pobox.com \
--cc=davem@davemloft.net \
--cc=gregkh@linuxfoundation.org \
--cc=jasowang@redhat.com \
--cc=kbuild-all@lists.01.org \
--cc=kvm@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=netdev@vger.kernel.org \
--cc=rmk+kernel@armlinux.org.uk \
--cc=sudeep.dutt@intel.com \
--cc=virtualization@lists.linux-foundation.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.