All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@citrix.com>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 4/8] xen: Use the correctly the Xen memory terminologies
Date: Wed, 05 Aug 2015 10:51:01 +0000	[thread overview]
Message-ID: <55C1EA95.5060504@citrix.com> (raw)
In-Reply-To: <55C147DD.7000600@oracle.com>

Hi Boris,

On 05/08/15 00:16, Boris Ostrovsky wrote:
> On 08/04/2015 02:12 PM, Julien Grall wrote:
>>     /*
>>    * We detect special mappings in one of two ways:
>> @@ -217,9 +232,13 @@ static inline unsigned long
>> bfn_to_local_pfn(unsigned long mfn)
>>     /* VIRT <-> MACHINE conversion */
>>   #define virt_to_machine(v)    (phys_to_machine(XPADDR(__pa(v))))
>> -#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
>>   #define virt_to_mfn(v)        (pfn_to_mfn(virt_to_pfn(v)))
>>   #define mfn_to_virt(m)        (__va(mfn_to_pfn(m) << PAGE_SHIFT))
>> +#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
> 
> This looks like unnecessary change.

Right, I made the mistake when I re-introduced virt_to_mfn in this
version. It was dropped in the previous one.

>> diff --git a/drivers/video/fbdev/xen-fbfront.c
>> b/drivers/video/fbdev/xen-fbfront.c
>> index 09dc447..25e3cce 100644
>> --- a/drivers/video/fbdev/xen-fbfront.c
>> +++ b/drivers/video/fbdev/xen-fbfront.c
>> @@ -539,7 +539,7 @@ static int xenfb_remove(struct xenbus_device *dev)
>>     static unsigned long vmalloc_to_mfn(void *address)
>>   {
>> -    return pfn_to_mfn(vmalloc_to_pfn(address));
>> +    return pfn_to_gfn(vmalloc_to_pfn(address));
>>   }
> 
> Are you sure? This will return vmalloc_to_pfn(address)).

I guess you mean vmalloc_to_mfn will return vmalloc_to_pfn?

If so, it will be only the case on auto-translated case (because pfn =
gfn). In the case of PV, the mfn will be returned.

Although, this function is misnamed. It's fixed in a follow-up patch
(see #6) because it's required more renaming than this function. I
didn't want to add such changes within this patch.

Regards,

-- 
Julien Grall

WARNING: multiple messages have this Message-ID (diff)
From: Julien Grall <julien.grall@citrix.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	xen-devel@lists.xenproject.org
Cc: linux-fbdev@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	"Jiri Slaby" <jslaby@suse.com>,
	stefano.stabellini@eu.citrix.com,
	"Russell King" <linux@arm.linux.org.uk>,
	linux-scsi@vger.kernel.org, x86@kernel.org,
	"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
	linux-input@vger.kernel.org,
	"Jean-Christophe Plagniol-Villard" <plagnioj@jcrosoft.com>,
	ian.campbell@citrix.com,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"James E.J. Bottomley" <JBottomley@odin.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Ingo Molnar" <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	"Juergen Gross" <jgross@suse.com>,
	"Wei Liu" <wei.liu2@citrix.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	linux-kernel@vger.kernel.org,
	"David Vrabel" <david.vrabel@citrix.com>,
	netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v2 4/8] xen: Use the correctly the Xen memory terminologies
Date: Wed, 5 Aug 2015 11:51:01 +0100	[thread overview]
Message-ID: <55C1EA95.5060504@citrix.com> (raw)
In-Reply-To: <55C147DD.7000600@oracle.com>

Hi Boris,

On 05/08/15 00:16, Boris Ostrovsky wrote:
> On 08/04/2015 02:12 PM, Julien Grall wrote:
>>     /*
>>    * We detect special mappings in one of two ways:
>> @@ -217,9 +232,13 @@ static inline unsigned long
>> bfn_to_local_pfn(unsigned long mfn)
>>     /* VIRT <-> MACHINE conversion */
>>   #define virt_to_machine(v)    (phys_to_machine(XPADDR(__pa(v))))
>> -#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
>>   #define virt_to_mfn(v)        (pfn_to_mfn(virt_to_pfn(v)))
>>   #define mfn_to_virt(m)        (__va(mfn_to_pfn(m) << PAGE_SHIFT))
>> +#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
> 
> This looks like unnecessary change.

Right, I made the mistake when I re-introduced virt_to_mfn in this
version. It was dropped in the previous one.

>> diff --git a/drivers/video/fbdev/xen-fbfront.c
>> b/drivers/video/fbdev/xen-fbfront.c
>> index 09dc447..25e3cce 100644
>> --- a/drivers/video/fbdev/xen-fbfront.c
>> +++ b/drivers/video/fbdev/xen-fbfront.c
>> @@ -539,7 +539,7 @@ static int xenfb_remove(struct xenbus_device *dev)
>>     static unsigned long vmalloc_to_mfn(void *address)
>>   {
>> -    return pfn_to_mfn(vmalloc_to_pfn(address));
>> +    return pfn_to_gfn(vmalloc_to_pfn(address));
>>   }
> 
> Are you sure? This will return vmalloc_to_pfn(address)).

I guess you mean vmalloc_to_mfn will return vmalloc_to_pfn?

If so, it will be only the case on auto-translated case (because pfn ==
gfn). In the case of PV, the mfn will be returned.

Although, this function is misnamed. It's fixed in a follow-up patch
(see #6) because it's required more renaming than this function. I
didn't want to add such changes within this patch.

Regards,

-- 
Julien Grall

WARNING: multiple messages have this Message-ID (diff)
From: Julien Grall <julien.grall@citrix.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	<xen-devel@lists.xenproject.org>
Cc: linux-fbdev@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	"Jiri Slaby" <jslaby@suse.com>,
	stefano.stabellini@eu.citrix.com,
	"Russell King" <linux@arm.linux.org.uk>,
	linux-scsi@vger.kernel.org, x86@kernel.org,
	"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
	linux-input@vger.kernel.org,
	"Jean-Christophe Plagniol-Villard" <plagnioj@jcrosoft.com>,
	ian.campbell@citrix.com,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"James E.J. Bottomley" <JBottomley@odin.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Ingo Molnar" <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	"Juergen Gross" <jgross@suse.com>,
	"Wei Liu" <wei.liu2@citrix.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	linux-kernel@vger.kernel.org,
	"David Vrabel" <david.vrabel@citrix.com>,
	netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	"Roger Pau Monné" <roger.pau@citrix.com>
Subject: Re: [PATCH v2 4/8] xen: Use the correctly the Xen memory terminologies
Date: Wed, 5 Aug 2015 11:51:01 +0100	[thread overview]
Message-ID: <55C1EA95.5060504@citrix.com> (raw)
In-Reply-To: <55C147DD.7000600@oracle.com>

Hi Boris,

On 05/08/15 00:16, Boris Ostrovsky wrote:
> On 08/04/2015 02:12 PM, Julien Grall wrote:
>>     /*
>>    * We detect special mappings in one of two ways:
>> @@ -217,9 +232,13 @@ static inline unsigned long
>> bfn_to_local_pfn(unsigned long mfn)
>>     /* VIRT <-> MACHINE conversion */
>>   #define virt_to_machine(v)    (phys_to_machine(XPADDR(__pa(v))))
>> -#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
>>   #define virt_to_mfn(v)        (pfn_to_mfn(virt_to_pfn(v)))
>>   #define mfn_to_virt(m)        (__va(mfn_to_pfn(m) << PAGE_SHIFT))
>> +#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
> 
> This looks like unnecessary change.

Right, I made the mistake when I re-introduced virt_to_mfn in this
version. It was dropped in the previous one.

>> diff --git a/drivers/video/fbdev/xen-fbfront.c
>> b/drivers/video/fbdev/xen-fbfront.c
>> index 09dc447..25e3cce 100644
>> --- a/drivers/video/fbdev/xen-fbfront.c
>> +++ b/drivers/video/fbdev/xen-fbfront.c
>> @@ -539,7 +539,7 @@ static int xenfb_remove(struct xenbus_device *dev)
>>     static unsigned long vmalloc_to_mfn(void *address)
>>   {
>> -    return pfn_to_mfn(vmalloc_to_pfn(address));
>> +    return pfn_to_gfn(vmalloc_to_pfn(address));
>>   }
> 
> Are you sure? This will return vmalloc_to_pfn(address)).

I guess you mean vmalloc_to_mfn will return vmalloc_to_pfn?

If so, it will be only the case on auto-translated case (because pfn ==
gfn). In the case of PV, the mfn will be returned.

Although, this function is misnamed. It's fixed in a follow-up patch
(see #6) because it's required more renaming than this function. I
didn't want to add such changes within this patch.

Regards,

-- 
Julien Grall

WARNING: multiple messages have this Message-ID (diff)
From: julien.grall@citrix.com (Julien Grall)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 4/8] xen: Use the correctly the Xen memory terminologies
Date: Wed, 5 Aug 2015 11:51:01 +0100	[thread overview]
Message-ID: <55C1EA95.5060504@citrix.com> (raw)
In-Reply-To: <55C147DD.7000600@oracle.com>

Hi Boris,

On 05/08/15 00:16, Boris Ostrovsky wrote:
> On 08/04/2015 02:12 PM, Julien Grall wrote:
>>     /*
>>    * We detect special mappings in one of two ways:
>> @@ -217,9 +232,13 @@ static inline unsigned long
>> bfn_to_local_pfn(unsigned long mfn)
>>     /* VIRT <-> MACHINE conversion */
>>   #define virt_to_machine(v)    (phys_to_machine(XPADDR(__pa(v))))
>> -#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
>>   #define virt_to_mfn(v)        (pfn_to_mfn(virt_to_pfn(v)))
>>   #define mfn_to_virt(m)        (__va(mfn_to_pfn(m) << PAGE_SHIFT))
>> +#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
> 
> This looks like unnecessary change.

Right, I made the mistake when I re-introduced virt_to_mfn in this
version. It was dropped in the previous one.

>> diff --git a/drivers/video/fbdev/xen-fbfront.c
>> b/drivers/video/fbdev/xen-fbfront.c
>> index 09dc447..25e3cce 100644
>> --- a/drivers/video/fbdev/xen-fbfront.c
>> +++ b/drivers/video/fbdev/xen-fbfront.c
>> @@ -539,7 +539,7 @@ static int xenfb_remove(struct xenbus_device *dev)
>>     static unsigned long vmalloc_to_mfn(void *address)
>>   {
>> -    return pfn_to_mfn(vmalloc_to_pfn(address));
>> +    return pfn_to_gfn(vmalloc_to_pfn(address));
>>   }
> 
> Are you sure? This will return vmalloc_to_pfn(address)).

I guess you mean vmalloc_to_mfn will return vmalloc_to_pfn?

If so, it will be only the case on auto-translated case (because pfn ==
gfn). In the case of PV, the mfn will be returned.

Although, this function is misnamed. It's fixed in a follow-up patch
(see #6) because it's required more renaming than this function. I
didn't want to add such changes within this patch.

Regards,

-- 
Julien Grall

WARNING: multiple messages have this Message-ID (diff)
From: Julien Grall <julien.grall@citrix.com>
To: Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	<xen-devel@lists.xenproject.org>
Cc: linux-fbdev@vger.kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	"Jiri Slaby" <jslaby@suse.com>,
	stefano.stabellini@eu.citrix.com,
	"Russell King" <linux@arm.linux.org.uk>,
	linux-scsi@vger.kernel.org, x86@kernel.org,
	"Tomi Valkeinen" <tomi.valkeinen@ti.com>,
	linux-input@vger.kernel.org,
	"Jean-Christophe Plagniol-Villard" <plagnioj@jcrosoft.com>,
	ian.campbell@citrix.com,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"James E.J. Bottomley" <JBottomley@odin.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Ingo Molnar" <mingo@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	"Juergen Gross" <jgross@suse.com>,
	"Wei Liu" <wei.liu2@citrix.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	linux-kernel@vger.kernel.org,
	"David Vrabel" <david.vrabel@citrix.com>,
	netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v2 4/8] xen: Use the correctly the Xen memory terminologies
Date: Wed, 5 Aug 2015 11:51:01 +0100	[thread overview]
Message-ID: <55C1EA95.5060504@citrix.com> (raw)
In-Reply-To: <55C147DD.7000600@oracle.com>

Hi Boris,

On 05/08/15 00:16, Boris Ostrovsky wrote:
> On 08/04/2015 02:12 PM, Julien Grall wrote:
>>     /*
>>    * We detect special mappings in one of two ways:
>> @@ -217,9 +232,13 @@ static inline unsigned long
>> bfn_to_local_pfn(unsigned long mfn)
>>     /* VIRT <-> MACHINE conversion */
>>   #define virt_to_machine(v)    (phys_to_machine(XPADDR(__pa(v))))
>> -#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
>>   #define virt_to_mfn(v)        (pfn_to_mfn(virt_to_pfn(v)))
>>   #define mfn_to_virt(m)        (__va(mfn_to_pfn(m) << PAGE_SHIFT))
>> +#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
> 
> This looks like unnecessary change.

Right, I made the mistake when I re-introduced virt_to_mfn in this
version. It was dropped in the previous one.

>> diff --git a/drivers/video/fbdev/xen-fbfront.c
>> b/drivers/video/fbdev/xen-fbfront.c
>> index 09dc447..25e3cce 100644
>> --- a/drivers/video/fbdev/xen-fbfront.c
>> +++ b/drivers/video/fbdev/xen-fbfront.c
>> @@ -539,7 +539,7 @@ static int xenfb_remove(struct xenbus_device *dev)
>>     static unsigned long vmalloc_to_mfn(void *address)
>>   {
>> -    return pfn_to_mfn(vmalloc_to_pfn(address));
>> +    return pfn_to_gfn(vmalloc_to_pfn(address));
>>   }
> 
> Are you sure? This will return vmalloc_to_pfn(address)).

I guess you mean vmalloc_to_mfn will return vmalloc_to_pfn?

If so, it will be only the case on auto-translated case (because pfn ==
gfn). In the case of PV, the mfn will be returned.

Although, this function is misnamed. It's fixed in a follow-up patch
(see #6) because it's required more renaming than this function. I
didn't want to add such changes within this patch.

Regards,

-- 
Julien Grall

  parent reply	other threads:[~2015-08-05 10:51 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-04 18:12 [PATCH v2 0/8] Use correctly the Xen memory terminologies in Linux Julien Grall
2015-08-04 18:12 ` Julien Grall
2015-08-04 18:12 ` Julien Grall
2015-08-04 18:12 ` Julien Grall
2015-08-04 18:12 ` Julien Grall
2015-08-04 18:12 ` [PATCH v2 1/8] arm/xen: Remove helpers which are PV specific Julien Grall
2015-08-04 18:12 ` Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-04 18:12 ` [PATCH v2 2/8] xen: Make clear that swiotlb and biomerge are dealing with DMA address Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-05  9:49   ` Stefano Stabellini
2015-08-05  9:49   ` Stefano Stabellini
2015-08-05  9:49     ` Stefano Stabellini
2015-08-05 10:31     ` Julien Grall
2015-08-05 10:31     ` Julien Grall
2015-08-05 10:31       ` Julien Grall
2015-08-04 18:12 ` Julien Grall
2015-08-04 18:12 ` [PATCH v2 3/8] arm/xen: implement correctly pfn_to_mfn Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-05  9:52   ` Stefano Stabellini
2015-08-05  9:52   ` Stefano Stabellini
2015-08-05  9:52     ` Stefano Stabellini
2015-08-04 18:12 ` Julien Grall
2015-08-04 18:12 ` [PATCH v2 4/8] xen: Use the correctly the Xen memory terminologies Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-04 23:16   ` Boris Ostrovsky
2015-08-04 23:16   ` Boris Ostrovsky
2015-08-04 23:16     ` Boris Ostrovsky
2015-08-04 23:16     ` Boris Ostrovsky
2015-08-04 23:16     ` Boris Ostrovsky
2015-08-05 10:07     ` Stefano Stabellini
2015-08-05 10:07       ` Stefano Stabellini
2015-08-05 10:07       ` Stefano Stabellini
2015-08-05 10:07       ` Stefano Stabellini
2015-08-05 10:07     ` Stefano Stabellini
2015-08-05 10:51     ` Julien Grall
2015-08-05 10:51     ` Julien Grall [this message]
2015-08-05 10:51       ` Julien Grall
2015-08-05 10:51       ` Julien Grall
2015-08-05 10:51       ` Julien Grall
2015-08-05 10:51       ` Julien Grall
2015-08-05 12:19       ` Boris Ostrovsky
2015-08-05 12:19       ` Boris Ostrovsky
2015-08-05 12:19         ` Boris Ostrovsky
2015-08-05 12:19         ` Boris Ostrovsky
2015-08-05 12:19         ` Boris Ostrovsky
2015-08-05 12:33         ` Julien Grall
2015-08-05 12:33         ` [Xen-devel] " Julien Grall
2015-08-05 12:33           ` Julien Grall
2015-08-05 12:33           ` Julien Grall
2015-08-05 12:33           ` Julien Grall
2015-08-05 12:33           ` Julien Grall
2015-08-05 12:44           ` Boris Ostrovsky
2015-08-05 12:44           ` [Xen-devel] " Boris Ostrovsky
2015-08-05 12:44             ` Boris Ostrovsky
2015-08-05 12:44             ` Boris Ostrovsky
2015-08-05 12:44             ` Boris Ostrovsky
2015-08-05 10:08   ` Stefano Stabellini
2015-08-05 10:08     ` Stefano Stabellini
2015-08-05 10:08     ` Stefano Stabellini
2015-08-05 10:08     ` Stefano Stabellini
2015-08-05 16:52     ` Dmitry Torokhov
2015-08-05 16:52     ` Dmitry Torokhov
2015-08-05 16:52       ` Dmitry Torokhov
2015-08-05 16:52       ` Dmitry Torokhov
2015-08-05 16:52       ` Dmitry Torokhov
2015-08-05 10:08   ` Stefano Stabellini
2015-08-05 17:01   ` Wei Liu
2015-08-05 17:01   ` Wei Liu
2015-08-05 17:01     ` Wei Liu
2015-08-05 17:01     ` Wei Liu
2015-08-05 17:01     ` Wei Liu
2015-08-05 17:01     ` Wei Liu
2015-08-06 11:00   ` [Xen-devel] " Julien Grall
2015-08-06 11:00     ` Julien Grall
2015-08-06 11:00     ` Julien Grall
2015-08-06 11:00     ` Julien Grall
2015-08-06 11:00     ` Julien Grall
2015-08-06 11:06     ` Stefano Stabellini
2015-08-06 11:06     ` [Xen-devel] " Stefano Stabellini
2015-08-06 11:06       ` Stefano Stabellini
2015-08-06 11:06       ` Stefano Stabellini
2015-08-06 11:06       ` Stefano Stabellini
2015-08-06 11:06       ` Stefano Stabellini
2015-08-06 11:17       ` Julien Grall
2015-08-06 11:17       ` [Xen-devel] " Julien Grall
2015-08-06 11:17         ` Julien Grall
2015-08-06 11:17         ` Julien Grall
2015-08-06 11:17         ` Julien Grall
2015-08-06 14:20         ` Stefano Stabellini
2015-08-06 14:20         ` [Xen-devel] " Stefano Stabellini
2015-08-06 14:20           ` Stefano Stabellini
2015-08-06 14:20           ` Stefano Stabellini
2015-08-06 14:20           ` Stefano Stabellini
2015-08-06 14:20           ` Stefano Stabellini
2015-08-06 11:00   ` Julien Grall
2015-08-04 18:12 ` [PATCH v2 5/8] xen/tmem: Use page_to_gfn rather than pfn_to_gfn Julien Grall
2015-08-05 10:01   ` Stefano Stabellini
2015-08-05 10:01   ` Stefano Stabellini
2015-08-04 18:12 ` Julien Grall
2015-08-04 18:12 ` [PATCH v2 6/8] video/xen-fbfront: Further s/MFN/GFN clean-up Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-04 18:12 ` [PATCH v2 7/8] hvc/xen: " Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-04 18:12 ` [PATCH v2 8/8] xen/privcmd: Further s/MFN/GFN/ clean-up Julien Grall
2015-08-04 18:12 ` Julien Grall
2015-08-04 18:12   ` Julien Grall
2015-08-04 18:12   ` Julien Grall

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=55C1EA95.5060504@citrix.com \
    --to=julien.grall@citrix.com \
    --cc=linux-arm-kernel@lists.infradead.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.