All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Tirdea, Irina" <irina.tirdea@intel.com>
To: "Pandruvada, Srinivas" <srinivas.pandruvada@intel.com>,
	"jic23@kernel.org" <jic23@kernel.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
	"viorel.suman@gmail.com" <viorel.suman@gmail.com>
Subject: RE: [PATCH] iio: gyro: bmg160: optimize i2c transfers in trigger handler
Date: Mon, 16 Feb 2015 17:58:56 +0000	[thread overview]
Message-ID: <1F3AC3675D538145B1661F571FE1805F19A1F613@irsmsx105.ger.corp.intel.com> (raw)
In-Reply-To: <1423082350.3211.1.camel@spandruv-mobl2>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 4933 bytes --]



> -----Original Message-----
> From: Pandruvada, Srinivas
> Sent: 04 February, 2015 22:39
> To: jic23@kernel.org
> Cc: linux-kernel@vger.kernel.org; linux-iio@vger.kernel.org; Tirdea, Irina; viorel.suman@gmail.com
> Subject: Re: [PATCH] iio: gyro: bmg160: optimize i2c transfers in trigger handler
> 
> On Wed, 2015-02-04 at 17:27 +0000, Jonathan Cameron wrote:
> > On 30/01/15 04:03, Viorel Suman wrote:
> > > Hi,
> > >
> > > You might need more space in "values" buffer, for more details please check the
> > > "iio_push_to_buffers_with_timestamp" description and implementation.
> > Whilst that function is a little 'odd', this patch doesn't change the use
> > of buffer (simply how it if filled).  The buffer is 16bytes long
> > (8 x s16) so should be fine (4 x 16 bit and 1 x 64 bit).
> >
> > More problematically, we have using a new smbus capability here
> > (to read it one transaction).  It's one you can check for, so I'm guessing
> > we aren't guaranteed it is present.
> > I2C_FUNC_SMBUS_READ_I2C_BLOCK
> Good catch. We should add
>   if (i2c_check_functionality(client->adapter,
> I2C_FUNC_SMBUS_READ_I2C_BLOCK) in probe and use this otherwise revert to
> old method.
> 
Thanks for the review, Jonathan and Srinivas!
Will fix this in next version.
> Thanks,
> Srinivas
> 
> >
> > Jonathan
> > >
> > > Regards,
> > > Viorel
> > >
> > >
> > > On Thu, Jan 29, 2015 at 3:15 PM, Irina Tirdea <irina.tirdea@intel.com <mailto:irina.tirdea@intel.com>> wrote:
> > >
> > >     Some i2c busses (e.g.: Synopsys DesignWare I2C adapter) need to
> > >     enable/disable the bus at each i2c transfer and must wait for
> > >     the enable/disable to happen before sending the data.
> > >
> > >     When reading data in the trigger handler, the bmg160 driver does
> > >     one i2c transfer for each axis. This has an impact on the frequency
> > >     of the gyroscope at high sample rates due to additional delays
> > >     introduced by the i2c bus at each transfer.
> > >
> > >     Reading all axis values in one i2c transfer reduces the delays
> > >     introduced by the i2c bus.
> > >
> > >     Signed-off-by: Irina Tirdea <irina.tirdea@intel.com <mailto:irina.tirdea@intel.com>>
> > >     Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com <mailto:srinivas.pandruvada@linux.intel.com>>
> > >     ---
> > >      drivers/iio/gyro/bmg160.c | 20 +++++++++++---------
> > >      1 file changed, 11 insertions(+), 9 deletions(-)
> > >
> > >     diff --git a/drivers/iio/gyro/bmg160.c b/drivers/iio/gyro/bmg160.c
> > >     index 60451b3..814eb20 100644
> > >     --- a/drivers/iio/gyro/bmg160.c
> > >     +++ b/drivers/iio/gyro/bmg160.c
> > >     @@ -115,6 +115,7 @@ enum bmg160_axis {
> > >             AXIS_X,
> > >             AXIS_Y,
> > >             AXIS_Z,
> > >     +       AXIS_MAX,
> > >      };
> > >
> > >      static const struct {
> > >     @@ -820,20 +821,21 @@ static irqreturn_t bmg160_trigger_handler(int irq, void *p)
> > >             struct iio_dev *indio_dev = pf->indio_dev;
> > >             struct bmg160_data *data = iio_priv(indio_dev);
> > >             int bit, ret, i = 0;
> > >     +       s16 values[AXIS_MAX];
> > >
> > >             mutex_lock(&data->mutex);
> > >     -       for_each_set_bit(bit, indio_dev->buffer->scan_mask,
> > >     -                        indio_dev->masklength) {
> > >     -               ret = i2c_smbus_read_word_data(data->client,
> > >     -                                              BMG160_AXIS_TO_REG(bit));
> > >     -               if (ret < 0) {
> > >     -                       mutex_unlock(&data->mutex);
> > >     -                       goto err;
> > >     -               }
> > >     -               data->buffer[i++] = ret;
> > >     +       ret = i2c_smbus_read_i2c_block_data(data->client, BMG160_REG_XOUT_L,
> > >     +                                           sizeof(values), (u8 *) values);
> > >     +       if (ret < 0) {
> > >     +               mutex_unlock(&data->mutex);
> > >     +               goto err;
> > >             }
> > >             mutex_unlock(&data->mutex);
> > >
> > >     +       for_each_set_bit(bit, indio_dev->buffer->scan_mask,
> > >     +                        indio_dev->masklength)
> > >     +               data->buffer[i++] = values[bit];
> > >     +
> > >             iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
> > >                                                data->timestamp);
> > >      err:
> > >     --
> > >     1.9.1
> > >
> > >     --
> > >     To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> > >     the body of a message to majordomo@vger.kernel.org <mailto:majordomo@vger.kernel.org>
> > >     More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > >
> > >
> >

ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

WARNING: multiple messages have this Message-ID (diff)
From: "Tirdea, Irina" <irina.tirdea@intel.com>
To: "Pandruvada, Srinivas" <srinivas.pandruvada@intel.com>,
	"jic23@kernel.org" <jic23@kernel.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
	"viorel.suman@gmail.com" <viorel.suman@gmail.com>
Subject: RE: [PATCH] iio: gyro: bmg160: optimize i2c transfers in trigger handler
Date: Mon, 16 Feb 2015 17:58:56 +0000	[thread overview]
Message-ID: <1F3AC3675D538145B1661F571FE1805F19A1F613@irsmsx105.ger.corp.intel.com> (raw)
In-Reply-To: <1423082350.3211.1.camel@spandruv-mobl2>

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUGFuZHJ1dmFkYSwgU3Jp
bml2YXMNCj4gU2VudDogMDQgRmVicnVhcnksIDIwMTUgMjI6MzkNCj4gVG86IGppYzIzQGtlcm5l
bC5vcmcNCj4gQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWlpb0B2Z2Vy
Lmtlcm5lbC5vcmc7IFRpcmRlYSwgSXJpbmE7IHZpb3JlbC5zdW1hbkBnbWFpbC5jb20NCj4gU3Vi
amVjdDogUmU6IFtQQVRDSF0gaWlvOiBneXJvOiBibWcxNjA6IG9wdGltaXplIGkyYyB0cmFuc2Zl
cnMgaW4gdHJpZ2dlciBoYW5kbGVyDQo+IA0KPiBPbiBXZWQsIDIwMTUtMDItMDQgYXQgMTc6Mjcg
KzAwMDAsIEpvbmF0aGFuIENhbWVyb24gd3JvdGU6DQo+ID4gT24gMzAvMDEvMTUgMDQ6MDMsIFZp
b3JlbCBTdW1hbiB3cm90ZToNCj4gPiA+IEhpLA0KPiA+ID4NCj4gPiA+IFlvdSBtaWdodCBuZWVk
IG1vcmUgc3BhY2UgaW4gInZhbHVlcyIgYnVmZmVyLCBmb3IgbW9yZSBkZXRhaWxzIHBsZWFzZSBj
aGVjayB0aGUNCj4gPiA+ICJpaW9fcHVzaF90b19idWZmZXJzX3dpdGhfdGltZXN0YW1wIiBkZXNj
cmlwdGlvbiBhbmQgaW1wbGVtZW50YXRpb24uDQo+ID4gV2hpbHN0IHRoYXQgZnVuY3Rpb24gaXMg
YSBsaXR0bGUgJ29kZCcsIHRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgdGhlIHVzZQ0KPiA+IG9m
IGJ1ZmZlciAoc2ltcGx5IGhvdyBpdCBpZiBmaWxsZWQpLiAgVGhlIGJ1ZmZlciBpcyAxNmJ5dGVz
IGxvbmcNCj4gPiAoOCB4IHMxNikgc28gc2hvdWxkIGJlIGZpbmUgKDQgeCAxNiBiaXQgYW5kIDEg
eCA2NCBiaXQpLg0KPiA+DQo+ID4gTW9yZSBwcm9ibGVtYXRpY2FsbHksIHdlIGhhdmUgdXNpbmcg
YSBuZXcgc21idXMgY2FwYWJpbGl0eSBoZXJlDQo+ID4gKHRvIHJlYWQgaXQgb25lIHRyYW5zYWN0
aW9uKS4gIEl0J3Mgb25lIHlvdSBjYW4gY2hlY2sgZm9yLCBzbyBJJ20gZ3Vlc3NpbmcNCj4gPiB3
ZSBhcmVuJ3QgZ3VhcmFudGVlZCBpdCBpcyBwcmVzZW50Lg0KPiA+IEkyQ19GVU5DX1NNQlVTX1JF
QURfSTJDX0JMT0NLDQo+IEdvb2QgY2F0Y2guIFdlIHNob3VsZCBhZGQNCj4gICBpZiAoaTJjX2No
ZWNrX2Z1bmN0aW9uYWxpdHkoY2xpZW50LT5hZGFwdGVyLA0KPiBJMkNfRlVOQ19TTUJVU19SRUFE
X0kyQ19CTE9DSykgaW4gcHJvYmUgYW5kIHVzZSB0aGlzIG90aGVyd2lzZSByZXZlcnQgdG8NCj4g
b2xkIG1ldGhvZC4NCj4gDQpUaGFua3MgZm9yIHRoZSByZXZpZXcsIEpvbmF0aGFuIGFuZCBTcmlu
aXZhcyENCldpbGwgZml4IHRoaXMgaW4gbmV4dCB2ZXJzaW9uLg0KPiBUaGFua3MsDQo+IFNyaW5p
dmFzDQo+IA0KPiA+DQo+ID4gSm9uYXRoYW4NCj4gPiA+DQo+ID4gPiBSZWdhcmRzLA0KPiA+ID4g
VmlvcmVsDQo+ID4gPg0KPiA+ID4NCj4gPiA+IE9uIFRodSwgSmFuIDI5LCAyMDE1IGF0IDM6MTUg
UE0sIElyaW5hIFRpcmRlYSA8aXJpbmEudGlyZGVhQGludGVsLmNvbSA8bWFpbHRvOmlyaW5hLnRp
cmRlYUBpbnRlbC5jb20+PiB3cm90ZToNCj4gPiA+DQo+ID4gPiAgICAgU29tZSBpMmMgYnVzc2Vz
IChlLmcuOiBTeW5vcHN5cyBEZXNpZ25XYXJlIEkyQyBhZGFwdGVyKSBuZWVkIHRvDQo+ID4gPiAg
ICAgZW5hYmxlL2Rpc2FibGUgdGhlIGJ1cyBhdCBlYWNoIGkyYyB0cmFuc2ZlciBhbmQgbXVzdCB3
YWl0IGZvcg0KPiA+ID4gICAgIHRoZSBlbmFibGUvZGlzYWJsZSB0byBoYXBwZW4gYmVmb3JlIHNl
bmRpbmcgdGhlIGRhdGEuDQo+ID4gPg0KPiA+ID4gICAgIFdoZW4gcmVhZGluZyBkYXRhIGluIHRo
ZSB0cmlnZ2VyIGhhbmRsZXIsIHRoZSBibWcxNjAgZHJpdmVyIGRvZXMNCj4gPiA+ICAgICBvbmUg
aTJjIHRyYW5zZmVyIGZvciBlYWNoIGF4aXMuIFRoaXMgaGFzIGFuIGltcGFjdCBvbiB0aGUgZnJl
cXVlbmN5DQo+ID4gPiAgICAgb2YgdGhlIGd5cm9zY29wZSBhdCBoaWdoIHNhbXBsZSByYXRlcyBk
dWUgdG8gYWRkaXRpb25hbCBkZWxheXMNCj4gPiA+ICAgICBpbnRyb2R1Y2VkIGJ5IHRoZSBpMmMg
YnVzIGF0IGVhY2ggdHJhbnNmZXIuDQo+ID4gPg0KPiA+ID4gICAgIFJlYWRpbmcgYWxsIGF4aXMg
dmFsdWVzIGluIG9uZSBpMmMgdHJhbnNmZXIgcmVkdWNlcyB0aGUgZGVsYXlzDQo+ID4gPiAgICAg
aW50cm9kdWNlZCBieSB0aGUgaTJjIGJ1cy4NCj4gPiA+DQo+ID4gPiAgICAgU2lnbmVkLW9mZi1i
eTogSXJpbmEgVGlyZGVhIDxpcmluYS50aXJkZWFAaW50ZWwuY29tIDxtYWlsdG86aXJpbmEudGly
ZGVhQGludGVsLmNvbT4+DQo+ID4gPiAgICAgUmV2aWV3ZWQtYnk6IFNyaW5pdmFzIFBhbmRydXZh
ZGEgPHNyaW5pdmFzLnBhbmRydXZhZGFAbGludXguaW50ZWwuY29tIDxtYWlsdG86c3Jpbml2YXMu
cGFuZHJ1dmFkYUBsaW51eC5pbnRlbC5jb20+Pg0KPiA+ID4gICAgIC0tLQ0KPiA+ID4gICAgICBk
cml2ZXJzL2lpby9neXJvL2JtZzE2MC5jIHwgMjAgKysrKysrKysrKystLS0tLS0tLS0NCj4gPiA+
ICAgICAgMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pDQo+
ID4gPg0KPiA+ID4gICAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9neXJvL2JtZzE2MC5jIGIv
ZHJpdmVycy9paW8vZ3lyby9ibWcxNjAuYw0KPiA+ID4gICAgIGluZGV4IDYwNDUxYjMuLjgxNGVi
MjAgMTAwNjQ0DQo+ID4gPiAgICAgLS0tIGEvZHJpdmVycy9paW8vZ3lyby9ibWcxNjAuYw0KPiA+
ID4gICAgICsrKyBiL2RyaXZlcnMvaWlvL2d5cm8vYm1nMTYwLmMNCj4gPiA+ICAgICBAQCAtMTE1
LDYgKzExNSw3IEBAIGVudW0gYm1nMTYwX2F4aXMgew0KPiA+ID4gICAgICAgICAgICAgQVhJU19Y
LA0KPiA+ID4gICAgICAgICAgICAgQVhJU19ZLA0KPiA+ID4gICAgICAgICAgICAgQVhJU19aLA0K
PiA+ID4gICAgICsgICAgICAgQVhJU19NQVgsDQo+ID4gPiAgICAgIH07DQo+ID4gPg0KPiA+ID4g
ICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHsNCj4gPiA+ICAgICBAQCAtODIwLDIwICs4MjEsMjEg
QEAgc3RhdGljIGlycXJldHVybl90IGJtZzE2MF90cmlnZ2VyX2hhbmRsZXIoaW50IGlycSwgdm9p
ZCAqcCkNCj4gPiA+ICAgICAgICAgICAgIHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYgPSBwZi0+
aW5kaW9fZGV2Ow0KPiA+ID4gICAgICAgICAgICAgc3RydWN0IGJtZzE2MF9kYXRhICpkYXRhID0g
aWlvX3ByaXYoaW5kaW9fZGV2KTsNCj4gPiA+ICAgICAgICAgICAgIGludCBiaXQsIHJldCwgaSA9
IDA7DQo+ID4gPiAgICAgKyAgICAgICBzMTYgdmFsdWVzW0FYSVNfTUFYXTsNCj4gPiA+DQo+ID4g
PiAgICAgICAgICAgICBtdXRleF9sb2NrKCZkYXRhLT5tdXRleCk7DQo+ID4gPiAgICAgLSAgICAg
ICBmb3JfZWFjaF9zZXRfYml0KGJpdCwgaW5kaW9fZGV2LT5idWZmZXItPnNjYW5fbWFzaywNCj4g
PiA+ICAgICAtICAgICAgICAgICAgICAgICAgICAgICAgaW5kaW9fZGV2LT5tYXNrbGVuZ3RoKSB7
DQo+ID4gPiAgICAgLSAgICAgICAgICAgICAgIHJldCA9IGkyY19zbWJ1c19yZWFkX3dvcmRfZGF0
YShkYXRhLT5jbGllbnQsDQo+ID4gPiAgICAgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBCTUcxNjBfQVhJU19UT19SRUcoYml0KSk7DQo+ID4gPiAgICAgLSAg
ICAgICAgICAgICAgIGlmIChyZXQgPCAwKSB7DQo+ID4gPiAgICAgLSAgICAgICAgICAgICAgICAg
ICAgICAgbXV0ZXhfdW5sb2NrKCZkYXRhLT5tdXRleCk7DQo+ID4gPiAgICAgLSAgICAgICAgICAg
ICAgICAgICAgICAgZ290byBlcnI7DQo+ID4gPiAgICAgLSAgICAgICAgICAgICAgIH0NCj4gPiA+
ICAgICAtICAgICAgICAgICAgICAgZGF0YS0+YnVmZmVyW2krK10gPSByZXQ7DQo+ID4gPiAgICAg
KyAgICAgICByZXQgPSBpMmNfc21idXNfcmVhZF9pMmNfYmxvY2tfZGF0YShkYXRhLT5jbGllbnQs
IEJNRzE2MF9SRUdfWE9VVF9MLA0KPiA+ID4gICAgICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZhbHVlcyksICh1OCAqKSB2YWx1ZXMpOw0KPiA+ID4g
ICAgICsgICAgICAgaWYgKHJldCA8IDApIHsNCj4gPiA+ICAgICArICAgICAgICAgICAgICAgbXV0
ZXhfdW5sb2NrKCZkYXRhLT5tdXRleCk7DQo+ID4gPiAgICAgKyAgICAgICAgICAgICAgIGdvdG8g
ZXJyOw0KPiA+ID4gICAgICAgICAgICAgfQ0KPiA+ID4gICAgICAgICAgICAgbXV0ZXhfdW5sb2Nr
KCZkYXRhLT5tdXRleCk7DQo+ID4gPg0KPiA+ID4gICAgICsgICAgICAgZm9yX2VhY2hfc2V0X2Jp
dChiaXQsIGluZGlvX2Rldi0+YnVmZmVyLT5zY2FuX21hc2ssDQo+ID4gPiAgICAgKyAgICAgICAg
ICAgICAgICAgICAgICAgIGluZGlvX2Rldi0+bWFza2xlbmd0aCkNCj4gPiA+ICAgICArICAgICAg
ICAgICAgICAgZGF0YS0+YnVmZmVyW2krK10gPSB2YWx1ZXNbYml0XTsNCj4gPiA+ICAgICArDQo+
ID4gPiAgICAgICAgICAgICBpaW9fcHVzaF90b19idWZmZXJzX3dpdGhfdGltZXN0YW1wKGluZGlv
X2RldiwgZGF0YS0+YnVmZmVyLA0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkYXRhLT50aW1lc3RhbXApOw0KPiA+ID4gICAgICBlcnI6DQo+ID4g
PiAgICAgLS0NCj4gPiA+ICAgICAxLjkuMQ0KPiA+ID4NCj4gPiA+ICAgICAtLQ0KPiA+ID4gICAg
IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmli
ZSBsaW51eC1paW8iIGluDQo+ID4gPiAgICAgdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9y
ZG9tb0B2Z2VyLmtlcm5lbC5vcmcgPG1haWx0bzptYWpvcmRvbW9Admdlci5rZXJuZWwub3JnPg0K
PiA+ID4gICAgIE1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcv
bWFqb3Jkb21vLWluZm8uaHRtbA0KPiA+ID4NCj4gPiA+DQo+ID4NCg0K

  reply	other threads:[~2015-02-16 17:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-29 13:15 [PATCH] iio: gyro: bmg160: optimize i2c transfers in trigger handler Irina Tirdea
2015-01-30  4:03 ` Viorel Suman
2015-02-04 17:27   ` Jonathan Cameron
2015-02-04 20:39     ` Pandruvada, Srinivas
2015-02-04 20:39       ` Pandruvada, Srinivas
2015-02-16 17:58       ` Tirdea, Irina [this message]
2015-02-16 17:58         ` Tirdea, Irina

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=1F3AC3675D538145B1661F571FE1805F19A1F613@irsmsx105.ger.corp.intel.com \
    --to=irina.tirdea@intel.com \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=srinivas.pandruvada@intel.com \
    --cc=viorel.suman@gmail.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.