All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: "Kulasek, TomaszX" <tomaszx.kulasek@intel.com>
Cc: Thomas Monjalon <thomas.monjalon@6wind.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
	"olivier.matz@6wind.com" <olivier.matz@6wind.com>
Subject: Re: [PATCH v12 0/6] add Tx preparation
Date: Thu, 1 Dec 2016 08:19:34 +0100	[thread overview]
Message-ID: <20161201071934.GH10340@6wind.com> (raw)
In-Reply-To: <3042915272161B4EB253DA4D77EB373A14F57A50@IRSMSX102.ger.corp.intel.com>

Hi Tomasz,

On Wed, Nov 30, 2016 at 10:30:54AM +0000, Kulasek, TomaszX wrote:
[...]
> > > In my opinion the second approach is both faster to applications and
> > > more friendly from a usability perspective, am I missing something
> > obvious?
> > 
> > I think it was not clearly explained in this patchset, but this is my
> > understanding:
> > tx_prepare and tx_burst can be called at different stages of a pipeline,
> > on different cores.
> 
> Yes, this API is intended to be used optionaly, not only just before tx_burst.
> 
> 1. Separating both stages:
>    a) We may have a control over burst (packet content, validation) when needed.
>    b) For invalid packets we may restore them or do some another task if needed (even on early stage of processing).
>    c) Tx burst keep as simple as it should be.
> 
> 2. Joining the functionality of tx_prepare and tx_burst have some disadvantages:
>    a) When packet is invalid it cannot be restored by application should be dropped.
>    b) Tx burst needs to modify the content of the packet.
>    c) We have no way to eliminate overhead of preparation (tx_prepare) for the application where performance is a key.
> 
> 3. Using tx callbacks
>    a) We still need to have different implementations for different devices.
>    b) The overhead in performance (comparing to the pair tx_prepare/tx_burst) will not be better while both ways uses very similar mechanism.
> 
> In addition, tx_prepare mechanism can be turned off by compilation flag (as discussed with Jerin in http://dpdk.org/dev/patchwork/patch/15770/) to provide real NOOP functionality (e.g. for low-end CPUs, where even unnecessary memory dereference and check can have significant impact on performance).

Thanks for the reminder, also I've missed v12 for some reason and still
thought rte_phdr_cksum_fix() was some generic function that applications had
to use directly regardless.

Although I agree with your description, I still think there is an issue,
please see my reply to Konstantin [1].

[1] http://dpdk.org/ml/archives/dev/2016-December/050970.html

-- 
Adrien Mazarguil
6WIND

  reply	other threads:[~2016-12-01  7:19 UTC|newest]

Thread overview: 260+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-26 16:22 [PATCH 0/6] add Tx preparation Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 1/6] ethdev: " Tomasz Kulasek
2016-09-08  7:28   ` Jerin Jacob
2016-09-08 16:09     ` Kulasek, TomaszX
2016-09-09  5:58       ` Jerin Jacob
2016-08-26 16:22 ` [PATCH 2/6] e1000: " Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 3/6] fm10k: " Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 4/6] i40e: " Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 5/6] ixgbe: " Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 6/6] testpmd: add txprep engine Tomasz Kulasek
2016-08-26 17:31 ` [PATCH 0/6] add Tx preparation Stephen Hemminger
2016-08-31 12:34   ` Ananyev, Konstantin
2016-09-12 14:44 ` [PATCH v2 " Tomasz Kulasek
2016-09-12 14:44   ` [PATCH v2 1/6] ethdev: " Tomasz Kulasek
2016-09-19 13:03     ` Ananyev, Konstantin
2016-09-19 15:29       ` Kulasek, TomaszX
2016-09-19 16:06         ` Jerin Jacob
2016-09-20  9:06           ` Ananyev, Konstantin
2016-09-21  8:29             ` Jerin Jacob
2016-09-22  9:36               ` Ananyev, Konstantin
2016-09-22  9:59                 ` Jerin Jacob
2016-09-23  9:41                   ` Ananyev, Konstantin
2016-09-23 10:29                     ` Jerin Jacob
2016-09-12 14:44   ` [PATCH v2 2/6] e1000: " Tomasz Kulasek
2016-09-12 14:44   ` [PATCH v2 3/6] fm10k: " Tomasz Kulasek
2016-09-12 14:44   ` [PATCH v2 4/6] i40e: " Tomasz Kulasek
2016-09-12 14:44   ` [PATCH v2 5/6] ixgbe: " Tomasz Kulasek
2016-09-19 12:54     ` Ananyev, Konstantin
2016-09-19 13:58       ` Kulasek, TomaszX
2016-09-19 15:23         ` Ananyev, Konstantin
2016-09-20  7:15           ` Ananyev, Konstantin
2016-09-12 14:44   ` [PATCH v2 6/6] testpmd: add txprep engine Tomasz Kulasek
2016-09-19 12:59     ` Ananyev, Konstantin
2016-09-28 11:10   ` [PATCH v3 0/6] add Tx preparation Tomasz Kulasek
2016-09-28 11:10     ` [PATCH v3 1/6] ethdev: " Tomasz Kulasek
2016-09-29 10:40       ` Ananyev, Konstantin
2016-09-29 13:04         ` Kulasek, TomaszX
2016-09-29 13:57           ` Ananyev, Konstantin
2016-09-28 11:10     ` [PATCH v3 2/6] e1000: " Tomasz Kulasek
2016-09-28 11:10     ` [PATCH v3 3/6] fm10k: " Tomasz Kulasek
2016-09-28 11:10     ` [PATCH v3 4/6] i40e: " Tomasz Kulasek
2016-09-28 11:10     ` [PATCH v3 5/6] ixgbe: " Tomasz Kulasek
2016-09-29 11:09       ` Ananyev, Konstantin
2016-09-29 15:12         ` Kulasek, TomaszX
2016-09-29 17:01           ` Ananyev, Konstantin
2016-09-28 11:10     ` [PATCH v3 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-09-30  9:00     ` [PATCH v4 0/6] add Tx preparation Tomasz Kulasek
2016-09-30  9:00       ` [PATCH v4 1/6] ethdev: " Tomasz Kulasek
2016-10-10 14:08         ` Thomas Monjalon
2016-10-13  7:08           ` Thomas Monjalon
2016-10-13 10:47             ` Kulasek, TomaszX
2016-09-30  9:00       ` [PATCH v4 2/6] e1000: " Tomasz Kulasek
2016-09-30  9:00       ` [PATCH v4 3/6] fm10k: " Tomasz Kulasek
2016-09-30  9:00       ` [PATCH v4 4/6] i40e: " Tomasz Kulasek
2016-10-10 14:02         ` Wu, Jingjing
2016-10-10 17:20           ` Kulasek, TomaszX
2016-09-30  9:00       ` [PATCH v4 5/6] ixgbe: " Tomasz Kulasek
2016-09-30  9:00       ` [PATCH v4 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-09-30  9:55       ` [PATCH v4 0/6] add Tx preparation Ananyev, Konstantin
2016-10-13 17:36       ` [PATCH v5 " Tomasz Kulasek
2016-10-13 17:36         ` [PATCH v5 1/6] ethdev: " Tomasz Kulasek
2016-10-13 19:21           ` Thomas Monjalon
2016-10-14 14:02             ` Kulasek, TomaszX
2016-10-14 14:20               ` Thomas Monjalon
2016-10-17 16:25                 ` Kulasek, TomaszX
2016-10-13 17:36         ` [PATCH v5 2/6] e1000: " Tomasz Kulasek
2016-10-13 17:36         ` [PATCH v5 3/6] fm10k: " Tomasz Kulasek
2016-10-13 17:37         ` [PATCH v5 4/6] i40e: " Tomasz Kulasek
2016-10-13 17:37         ` [PATCH v5 5/6] ixgbe: " Tomasz Kulasek
2016-10-13 17:37         ` [PATCH v5 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-14 15:05         ` [PATCH v6 0/6] add Tx preparation Tomasz Kulasek
2016-10-14 15:05           ` [PATCH v6 1/6] ethdev: " Tomasz Kulasek
2016-10-18 14:57             ` Olivier Matz
2016-10-19 15:42               ` Kulasek, TomaszX
2016-10-19 22:07                 ` Ananyev, Konstantin
2016-10-14 15:05           ` [PATCH v6 2/6] e1000: " Tomasz Kulasek
2016-10-14 15:05           ` [PATCH v6 3/6] fm10k: " Tomasz Kulasek
2016-10-14 15:05           ` [PATCH v6 4/6] i40e: " Tomasz Kulasek
2016-10-14 15:05           ` [PATCH v6 5/6] ixgbe: " Tomasz Kulasek
2016-10-14 15:05           ` [PATCH v6 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-18 12:28           ` [PATCH v6 0/6] add Tx preparation Ananyev, Konstantin
2016-10-21 13:42           ` [PATCH v7 " Tomasz Kulasek
2016-10-21 13:42             ` [PATCH v7 1/6] ethdev: " Tomasz Kulasek
2016-10-21 13:42             ` [PATCH v7 2/6] e1000: " Tomasz Kulasek
2016-10-21 13:42             ` [PATCH v7 3/6] fm10k: " Tomasz Kulasek
2016-10-21 13:42             ` [PATCH v7 4/6] i40e: " Tomasz Kulasek
2016-10-21 13:42             ` [PATCH v7 5/6] ixgbe: " Tomasz Kulasek
2016-10-21 13:42             ` [PATCH v7 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-21 14:46             ` [PATCH v8 0/6] add Tx preparation Tomasz Kulasek
2016-10-21 14:46               ` [PATCH v8 1/6] ethdev: " Tomasz Kulasek
2016-10-24 12:14                 ` Ananyev, Konstantin
2016-10-24 12:49                   ` Kulasek, TomaszX
2016-10-24 12:56                     ` Ananyev, Konstantin
2016-10-24 14:12                       ` Kulasek, TomaszX
2016-10-21 14:46               ` [PATCH v8 2/6] e1000: " Tomasz Kulasek
2016-10-21 14:46               ` [PATCH v8 3/6] fm10k: " Tomasz Kulasek
2016-10-21 14:46               ` [PATCH v8 4/6] i40e: " Tomasz Kulasek
2016-10-21 14:46               ` [PATCH v8 5/6] ixgbe: " Tomasz Kulasek
2016-10-21 14:46               ` [PATCH v8 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-24 14:05               ` [PATCH v9 0/6] add Tx preparation Tomasz Kulasek
2016-10-24 14:05                 ` [PATCH v9 1/6] ethdev: " Tomasz Kulasek
2016-10-24 14:05                 ` [PATCH v9 2/6] e1000: " Tomasz Kulasek
2016-10-24 14:05                 ` [PATCH v9 3/6] fm10k: " Tomasz Kulasek
2016-10-24 14:05                 ` [PATCH v9 4/6] i40e: " Tomasz Kulasek
2016-10-24 14:05                 ` [PATCH v9 5/6] ixgbe: " Tomasz Kulasek
2016-10-24 14:05                 ` [PATCH v9 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-24 16:51                 ` [PATCH v10 0/6] add Tx preparation Tomasz Kulasek
2016-10-24 16:51                   ` [PATCH v10 1/6] ethdev: " Tomasz Kulasek
2016-10-25 14:41                     ` Olivier Matz
2016-10-25 17:28                       ` Kulasek, TomaszX
2016-10-24 16:51                   ` [PATCH v10 2/6] e1000: " Tomasz Kulasek
2016-10-24 16:51                   ` [PATCH v10 3/6] fm10k: " Tomasz Kulasek
2016-10-24 16:51                   ` [PATCH v10 4/6] i40e: " Tomasz Kulasek
2016-10-24 16:51                   ` [PATCH v10 5/6] ixgbe: " Tomasz Kulasek
2016-10-24 16:51                   ` [PATCH v10 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-24 17:26                   ` [PATCH v10 0/6] add Tx preparation Ananyev, Konstantin
2016-10-26 12:56                   ` [PATCH v11 " Tomasz Kulasek
2016-10-26 12:56                     ` [PATCH v11 1/6] ethdev: " Tomasz Kulasek
2016-10-27 12:38                       ` Olivier Matz
2016-10-27 15:01                       ` Thomas Monjalon
2016-10-27 15:52                         ` Ananyev, Konstantin
2016-10-27 16:02                           ` Thomas Monjalon
2016-10-27 16:24                             ` Ananyev, Konstantin
2016-10-27 16:39                               ` Thomas Monjalon
2016-10-28 11:29                                 ` Ananyev, Konstantin
2016-10-28 11:34                                   ` Ananyev, Konstantin
2016-10-28 12:23                                     ` Thomas Monjalon
2016-10-28 12:59                                       ` Ananyev, Konstantin
2016-10-28 13:42                                         ` Thomas Monjalon
2016-11-01 12:57                                           ` Ananyev, Konstantin
2016-11-04 11:35                                             ` Thomas Monjalon
2016-10-27 16:39                               ` Kulasek, TomaszX
2016-10-28 10:15                                 ` Ananyev, Konstantin
2016-10-28 10:22                                   ` Kulasek, TomaszX
2016-10-28 10:22                                   ` Thomas Monjalon
2016-10-28 10:28                                     ` Ananyev, Konstantin
2016-10-28 11:02                                       ` Richardson, Bruce
2016-10-28 11:14                                   ` Jerin Jacob
2016-10-27 16:29                         ` Kulasek, TomaszX
2016-10-26 12:56                     ` [PATCH v11 2/6] e1000: " Tomasz Kulasek
2016-10-26 12:56                     ` [PATCH v11 3/6] fm10k: " Tomasz Kulasek
2016-10-26 12:56                     ` [PATCH v11 4/6] i40e: " Tomasz Kulasek
2016-10-26 12:56                     ` [PATCH v11 5/6] ixgbe: " Tomasz Kulasek
2016-10-26 12:56                     ` [PATCH v11 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-11-23 17:36                     ` [PATCH v12 0/6] add Tx preparation Tomasz Kulasek
2016-11-23 17:36                       ` [PATCH v12 1/6] ethdev: " Tomasz Kulasek
2016-11-28 10:54                         ` Thomas Monjalon
2016-12-01 16:24                           ` Thomas Monjalon
2016-12-01 19:20                             ` Kulasek, TomaszX
2016-12-01 19:52                               ` Thomas Monjalon
2016-12-01 21:56                                 ` Jerin Jacob
2016-12-01 22:31                                 ` Kulasek, TomaszX
2016-12-01 23:50                                   ` Thomas Monjalon
2016-12-09 13:25                                     ` Kulasek, TomaszX
2016-12-02  0:10                                   ` Ananyev, Konstantin
2016-12-22 13:14                                     ` Thomas Monjalon
2016-12-22 13:37                                       ` Jerin Jacob
2016-12-01 16:26                         ` Thomas Monjalon
2016-12-01 16:28                         ` Thomas Monjalon
2016-12-02  1:06                           ` Ananyev, Konstantin
2016-12-02  8:24                             ` Olivier Matz
2016-12-02 16:17                               ` Ananyev, Konstantin
2016-12-08 17:24                                 ` Olivier Matz
2016-12-09 17:19                                   ` Kulasek, TomaszX
2016-12-12 11:51                                     ` Ananyev, Konstantin
2016-12-22 13:30                                       ` Thomas Monjalon
2016-12-22 14:11                                         ` Ananyev, Konstantin
2016-11-23 17:36                       ` [PATCH v12 2/6] e1000: " Tomasz Kulasek
2016-11-23 17:36                       ` [PATCH v12 3/6] fm10k: " Tomasz Kulasek
2016-11-23 17:36                       ` [PATCH v12 4/6] i40e: " Tomasz Kulasek
2016-11-23 17:36                       ` [PATCH v12 5/6] ixgbe: " Tomasz Kulasek
2016-11-23 17:36                       ` [PATCH v12 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-12-07 11:13                         ` Ferruh Yigit
2016-12-07 12:00                           ` Mcnamara, John
2016-12-07 12:12                             ` Kulasek, TomaszX
2016-12-07 12:49                               ` Ananyev, Konstantin
2016-12-07 12:00                           ` Kulasek, TomaszX
2016-11-28 11:03                       ` [PATCH v12 0/6] add Tx preparation Thomas Monjalon
2016-11-30  5:48                         ` John Daley (johndale)
2016-11-30 10:59                           ` Ananyev, Konstantin
2016-11-30  7:40                         ` Adrien Mazarguil
2016-11-30  8:50                           ` Thomas Monjalon
2016-11-30 10:30                             ` Kulasek, TomaszX
2016-12-01  7:19                               ` Adrien Mazarguil [this message]
2016-11-30 10:54                           ` Ananyev, Konstantin
2016-12-01  7:15                             ` Adrien Mazarguil
2016-12-01  8:58                               ` Thomas Monjalon
2016-12-01 22:03                                 ` Jerin Jacob
2016-12-02  1:00                               ` Ananyev, Konstantin
2016-12-05 15:03                                 ` Adrien Mazarguil
2016-12-05 16:43                                   ` Ananyev, Konstantin
2016-12-05 18:10                                     ` Adrien Mazarguil
2016-12-06 10:56                                       ` Ananyev, Konstantin
2016-12-06 13:59                                         ` Adrien Mazarguil
2016-12-06 20:31                                           ` Ananyev, Konstantin
2016-12-07 10:08                                             ` Adrien Mazarguil
2016-11-30 16:34                         ` Harish Patil
2016-11-30 17:42                           ` Ananyev, Konstantin
2016-11-30 18:26                             ` Thomas Monjalon
2016-11-30 21:01                               ` Jerin Jacob
2016-12-01 10:50                               ` Ferruh Yigit
2016-12-02 23:55                               ` Yong Wang
2016-12-04 12:11                                 ` Ananyev, Konstantin
2016-12-06 18:25                                   ` Yong Wang
2016-12-07  9:57                                     ` Ferruh Yigit
2016-12-07 10:03                                       ` Ananyev, Konstantin
2016-12-07 14:31                                         ` Alejandro Lucero
2016-12-08 18:20                                         ` Yong Wang
2016-12-09 14:40                                           ` Jan Mędala
2016-12-12 15:02                                             ` Ananyev, Konstantin
2016-12-16  0:15                                               ` Ananyev, Konstantin
2016-12-16 13:53                                                 ` Jan Mędala
2016-12-16 15:27                                                   ` Ananyev, Konstantin
2016-12-16 15:37                                                     ` Jan Mędala
2016-12-12 17:29                                           ` Ananyev, Konstantin
2016-11-30 18:39                             ` Harish Patil
2016-11-30 19:37                         ` Ajit Khaparde
2016-12-01  8:24                         ` Rahul Lakkireddy
2016-12-06 15:53                         ` Ferruh Yigit
2016-12-07  7:55                           ` Andrew Rybchenko
2016-12-07  8:11                           ` Yuanhan Liu
2016-12-07 10:13                             ` Ananyev, Konstantin
2016-12-07 10:18                               ` Yuanhan Liu
2016-12-07 10:22                                 ` Ananyev, Konstantin
2016-12-13 11:59                           ` Ferruh Yigit
2016-12-13 17:41                       ` [PATCH v13 0/7] " Tomasz Kulasek
2016-12-13 17:41                         ` [PATCH v13 1/7] ethdev: " Tomasz Kulasek
2016-12-13 17:41                         ` [PATCH v13 2/7] e1000: " Tomasz Kulasek
2016-12-13 17:41                         ` [PATCH v13 3/7] fm10k: " Tomasz Kulasek
2016-12-13 17:41                         ` [PATCH v13 4/7] i40e: " Tomasz Kulasek
2016-12-13 17:41                         ` [PATCH v13 5/7] ixgbe: " Tomasz Kulasek
2016-12-13 17:41                         ` [PATCH v13 6/7] vmxnet3: " Tomasz Kulasek
2016-12-13 18:15                           ` Yong Wang
2016-12-20 13:36                           ` Ferruh Yigit
2016-12-22 13:10                             ` Thomas Monjalon
2016-12-13 17:41                         ` [PATCH v13 7/7] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-12-22 13:05                         ` [PATCH v14 0/8] add Tx preparation Tomasz Kulasek
2016-12-22 13:05                           ` [PATCH v14 1/8] ethdev: " Tomasz Kulasek
2016-12-22 14:24                             ` Thomas Monjalon
2016-12-23 18:49                               ` Kulasek, TomaszX
2016-12-22 13:05                           ` [PATCH v14 2/8] e1000: " Tomasz Kulasek
2016-12-22 13:05                           ` [PATCH v14 3/8] fm10k: " Tomasz Kulasek
2016-12-22 13:05                           ` [PATCH v14 4/8] i40e: " Tomasz Kulasek
2016-12-22 13:05                           ` [PATCH v14 5/8] ixgbe: " Tomasz Kulasek
2016-12-22 13:05                           ` [PATCH v14 6/8] vmxnet3: " Tomasz Kulasek
2016-12-22 17:59                             ` Yong Wang
2016-12-22 13:05                           ` [PATCH v14 7/8] ena: " Tomasz Kulasek
2016-12-22 13:05                           ` [PATCH v14 8/8] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-12-22 14:28                             ` Thomas Monjalon
2016-12-23 18:40                           ` [PATCH v15 0/8] add Tx preparation Tomasz Kulasek
2016-12-23 18:40                             ` [PATCH v15 1/8] ethdev: " Tomasz Kulasek
2016-12-23 18:40                             ` [PATCH v15 2/8] e1000: " Tomasz Kulasek
2016-12-23 18:40                             ` [PATCH v15 3/8] fm10k: " Tomasz Kulasek
2016-12-23 18:40                             ` [PATCH v15 4/8] i40e: " Tomasz Kulasek
2016-12-23 18:40                             ` [PATCH v15 5/8] ixgbe: " Tomasz Kulasek
2016-12-23 18:40                             ` [PATCH v15 6/8] vmxnet3: " Tomasz Kulasek
2016-12-23 18:40                             ` [PATCH v15 7/8] ena: " Tomasz Kulasek
2016-12-23 18:40                             ` [PATCH v15 8/8] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2017-01-04 19:41                             ` [PATCH v15 0/8] add Tx preparation Thomas Monjalon
2017-01-05 15:43                               ` Avi Kivity

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=20161201071934.GH10340@6wind.com \
    --to=adrien.mazarguil@6wind.com \
    --cc=dev@dpdk.org \
    --cc=konstantin.ananyev@intel.com \
    --cc=olivier.matz@6wind.com \
    --cc=thomas.monjalon@6wind.com \
    --cc=tomaszx.kulasek@intel.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.