* kexec failures on ipq4019
@ 2018-06-16 1:07 ` Andy Strohman
0 siblings, 0 replies; 8+ messages in thread
From: Andy Strohman @ 2018-06-16 1:07 UTC (permalink / raw)
To: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Hi,
I'm trying to get kexec to work consistently for ipq4019. I load
the crash kernel like this:
kexec --type zImage -p zImage-initramfs
--dtb=image-qcom-ipq4019-eap1300.dtb --append="maxcpus=1
reset_devices" --image-size=34419456
I have reserved 64MB of memory for the crash kernel with parameter:
crashkernel=64M
This seems to work ~70% of the time. When it doesn't work, I see the
"bye!" message followed by a 5-10 second hang without output. Then
the machine resets.
I've been testing with:
echo c > /proc/sysrq-trigger
Does anyone have an idea of what may be causing the failures or how
to troubleshoot this?
I'm using OpenWRT with kernel 4.14.37. I added the following patch
in order to load the crash kernel:
--- a/arch/arm/mach-qcom/platsmp.c
+++ b/arch/arm/mach-qcom/platsmp.c
@@ -332,6 +332,12 @@ static void __init qcom_smp_prepare_cpus
}
}
+/* Needed by kexec and platform_can_cpu_hotplug() */
+int qcom_cpu_kill(unsigned int cpu)
+{
+ return 1;
+}
+
static const struct smp_operations smp_msm8660_ops __initconst = {
.smp_prepare_cpus = qcom_smp_prepare_cpus,
.smp_secondary_init = qcom_secondary_init,
@@ -358,6 +364,7 @@ static const struct smp_operations qcom_
.smp_boot_secondary = kpssv2_boot_secondary,
#ifdef CONFIG_HOTPLUG_CPU
.cpu_die = qcom_cpu_die,
+ .cpu_kill = qcom_cpu_kill,
#endif
};
CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2",
&qcom_smp_kpssv2_ops);
Thanks,
Andy
--
http://www.uplevelsystems.com <http://www.uplevelsystems.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* kexec failures on ipq4019
@ 2018-06-16 1:07 ` Andy Strohman
0 siblings, 0 replies; 8+ messages in thread
From: Andy Strohman @ 2018-06-16 1:07 UTC (permalink / raw)
To: linux-arm-msm, kexec
Hi,
I'm trying to get kexec to work consistently for ipq4019. I load
the crash kernel like this:
kexec --type zImage -p zImage-initramfs
--dtb=image-qcom-ipq4019-eap1300.dtb --append="maxcpus=1
reset_devices" --image-size=34419456
I have reserved 64MB of memory for the crash kernel with parameter:
crashkernel=64M
This seems to work ~70% of the time. When it doesn't work, I see the
"bye!" message followed by a 5-10 second hang without output. Then
the machine resets.
I've been testing with:
echo c > /proc/sysrq-trigger
Does anyone have an idea of what may be causing the failures or how
to troubleshoot this?
I'm using OpenWRT with kernel 4.14.37. I added the following patch
in order to load the crash kernel:
--- a/arch/arm/mach-qcom/platsmp.c
+++ b/arch/arm/mach-qcom/platsmp.c
@@ -332,6 +332,12 @@ static void __init qcom_smp_prepare_cpus
}
}
+/* Needed by kexec and platform_can_cpu_hotplug() */
+int qcom_cpu_kill(unsigned int cpu)
+{
+ return 1;
+}
+
static const struct smp_operations smp_msm8660_ops __initconst = {
.smp_prepare_cpus = qcom_smp_prepare_cpus,
.smp_secondary_init = qcom_secondary_init,
@@ -358,6 +364,7 @@ static const struct smp_operations qcom_
.smp_boot_secondary = kpssv2_boot_secondary,
#ifdef CONFIG_HOTPLUG_CPU
.cpu_die = qcom_cpu_die,
+ .cpu_kill = qcom_cpu_kill,
#endif
};
CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2",
&qcom_smp_kpssv2_ops);
Thanks,
Andy
--
http://www.uplevelsystems.com <http://www.uplevelsystems.com>
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kexec failures on ipq4019
2018-06-16 1:07 ` Andy Strohman
@ 2018-06-18 6:31 ` sricharan
-1 siblings, 0 replies; 8+ messages in thread
From: sricharan-sgV2jX0FEOL9JmXXK+q4OQ @ 2018-06-18 6:31 UTC (permalink / raw)
To: Andy Strohman
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-arm-msm-owner-u79uwXL29TY76Z2rM5mHXA
Hi Andy,
On 2018-06-16 06:37, Andy Strohman wrote:
> Hi,
>
> I'm trying to get kexec to work consistently for ipq4019. I load
> the crash kernel like this:
>
> kexec --type zImage -p zImage-initramfs
> --dtb=image-qcom-ipq4019-eap1300.dtb --append="maxcpus=1
> reset_devices" --image-size=34419456
>
> I have reserved 64MB of memory for the crash kernel with parameter:
> crashkernel=64M
>
> This seems to work ~70% of the time. When it doesn't work, I see the
> "bye!" message followed by a 5-10 second hang without output. Then
> the machine resets.
>
> I've been testing with:
> echo c > /proc/sysrq-trigger
>
> Does anyone have an idea of what may be causing the failures or how
> to troubleshoot this?
>
I will try to reproduce this and get back to you shortly.
Regards,
Sricharan
> I'm using OpenWRT with kernel 4.14.37. I added the following patch
> in order to load the crash kernel:
>
> --- a/arch/arm/mach-qcom/platsmp.c
> +++ b/arch/arm/mach-qcom/platsmp.c
> @@ -332,6 +332,12 @@ static void __init qcom_smp_prepare_cpus
> }
> }
>
> +/* Needed by kexec and platform_can_cpu_hotplug() */
> +int qcom_cpu_kill(unsigned int cpu)
> +{
> + return 1;
> +}
> +
> static const struct smp_operations smp_msm8660_ops __initconst = {
> .smp_prepare_cpus = qcom_smp_prepare_cpus,
> .smp_secondary_init = qcom_secondary_init,
> @@ -358,6 +364,7 @@ static const struct smp_operations qcom_
> .smp_boot_secondary = kpssv2_boot_secondary,
> #ifdef CONFIG_HOTPLUG_CPU
> .cpu_die = qcom_cpu_die,
> + .cpu_kill = qcom_cpu_kill,
> #endif
> };
> CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2",
> &qcom_smp_kpssv2_ops);
>
>
> Thanks,
>
> Andy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kexec failures on ipq4019
@ 2018-06-18 6:31 ` sricharan
0 siblings, 0 replies; 8+ messages in thread
From: sricharan @ 2018-06-18 6:31 UTC (permalink / raw)
To: Andy Strohman; +Cc: linux-arm-msm, kexec, linux-arm-msm-owner
Hi Andy,
On 2018-06-16 06:37, Andy Strohman wrote:
> Hi,
>
> I'm trying to get kexec to work consistently for ipq4019. I load
> the crash kernel like this:
>
> kexec --type zImage -p zImage-initramfs
> --dtb=image-qcom-ipq4019-eap1300.dtb --append="maxcpus=1
> reset_devices" --image-size=34419456
>
> I have reserved 64MB of memory for the crash kernel with parameter:
> crashkernel=64M
>
> This seems to work ~70% of the time. When it doesn't work, I see the
> "bye!" message followed by a 5-10 second hang without output. Then
> the machine resets.
>
> I've been testing with:
> echo c > /proc/sysrq-trigger
>
> Does anyone have an idea of what may be causing the failures or how
> to troubleshoot this?
>
I will try to reproduce this and get back to you shortly.
Regards,
Sricharan
> I'm using OpenWRT with kernel 4.14.37. I added the following patch
> in order to load the crash kernel:
>
> --- a/arch/arm/mach-qcom/platsmp.c
> +++ b/arch/arm/mach-qcom/platsmp.c
> @@ -332,6 +332,12 @@ static void __init qcom_smp_prepare_cpus
> }
> }
>
> +/* Needed by kexec and platform_can_cpu_hotplug() */
> +int qcom_cpu_kill(unsigned int cpu)
> +{
> + return 1;
> +}
> +
> static const struct smp_operations smp_msm8660_ops __initconst = {
> .smp_prepare_cpus = qcom_smp_prepare_cpus,
> .smp_secondary_init = qcom_secondary_init,
> @@ -358,6 +364,7 @@ static const struct smp_operations qcom_
> .smp_boot_secondary = kpssv2_boot_secondary,
> #ifdef CONFIG_HOTPLUG_CPU
> .cpu_die = qcom_cpu_die,
> + .cpu_kill = qcom_cpu_kill,
> #endif
> };
> CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2",
> &qcom_smp_kpssv2_ops);
>
>
> Thanks,
>
> Andy
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kexec failures on ipq4019
2018-06-18 6:31 ` sricharan
@ 2018-06-26 21:17 ` Andy Strohman
-1 siblings, 0 replies; 8+ messages in thread
From: Andy Strohman @ 2018-06-26 21:17 UTC (permalink / raw)
To: sricharan-sgV2jX0FEOL9JmXXK+q4OQ
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-arm-msm-owner-u79uwXL29TY76Z2rM5mHXA
On Sun, Jun 17, 2018 at 11:31 PM, <sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> wrote:
> Hi Andy,
>
> On 2018-06-16 06:37, Andy Strohman wrote:
>>
>> Hi,
>>
>> I'm trying to get kexec to work consistently for ipq4019. I load
>> the crash kernel like this:
>>
>> kexec --type zImage -p zImage-initramfs
>> --dtb=image-qcom-ipq4019-eap1300.dtb --append="maxcpus=1
>> reset_devices" --image-size=34419456
>>
>> I have reserved 64MB of memory for the crash kernel with parameter:
>> crashkernel=64M
>>
>> This seems to work ~70% of the time. When it doesn't work, I see the
>> "bye!" message followed by a 5-10 second hang without output. Then
>> the machine resets.
>>
>> I've been testing with:
>> echo c > /proc/sysrq-trigger
>>
>> Does anyone have an idea of what may be causing the failures or how
>> to troubleshoot this?
>>
>
> I will try to reproduce this and get back to you shortly.
>
> Regards,
> Sricharan
>
>
>> I'm using OpenWRT with kernel 4.14.37. I added the following patch
>> in order to load the crash kernel:
>>
>> --- a/arch/arm/mach-qcom/platsmp.c
>> +++ b/arch/arm/mach-qcom/platsmp.c
>> @@ -332,6 +332,12 @@ static void __init qcom_smp_prepare_cpus
>> }
>> }
>>
>> +/* Needed by kexec and platform_can_cpu_hotplug() */
>> +int qcom_cpu_kill(unsigned int cpu)
>> +{
>> + return 1;
>> +}
>> +
>> static const struct smp_operations smp_msm8660_ops __initconst = {
>> .smp_prepare_cpus = qcom_smp_prepare_cpus,
>> .smp_secondary_init = qcom_secondary_init,
>> @@ -358,6 +364,7 @@ static const struct smp_operations qcom_
>> .smp_boot_secondary = kpssv2_boot_secondary,
>> #ifdef CONFIG_HOTPLUG_CPU
>> .cpu_die = qcom_cpu_die,
>> + .cpu_kill = qcom_cpu_kill,
>> #endif
>> };
>> CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2",
>> &qcom_smp_kpssv2_ops);
>>
>>
>> Thanks,
>>
>> Andy
Hi Sricharan,
Thanks for your response. Did you get a chance to try this out? If
so, were you able to reproduce?
Thanks,
Andy
--
http://www.uplevelsystems.com <http://www.uplevelsystems.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kexec failures on ipq4019
@ 2018-06-26 21:17 ` Andy Strohman
0 siblings, 0 replies; 8+ messages in thread
From: Andy Strohman @ 2018-06-26 21:17 UTC (permalink / raw)
To: sricharan; +Cc: linux-arm-msm, kexec, linux-arm-msm-owner
On Sun, Jun 17, 2018 at 11:31 PM, <sricharan@codeaurora.org> wrote:
> Hi Andy,
>
> On 2018-06-16 06:37, Andy Strohman wrote:
>>
>> Hi,
>>
>> I'm trying to get kexec to work consistently for ipq4019. I load
>> the crash kernel like this:
>>
>> kexec --type zImage -p zImage-initramfs
>> --dtb=image-qcom-ipq4019-eap1300.dtb --append="maxcpus=1
>> reset_devices" --image-size=34419456
>>
>> I have reserved 64MB of memory for the crash kernel with parameter:
>> crashkernel=64M
>>
>> This seems to work ~70% of the time. When it doesn't work, I see the
>> "bye!" message followed by a 5-10 second hang without output. Then
>> the machine resets.
>>
>> I've been testing with:
>> echo c > /proc/sysrq-trigger
>>
>> Does anyone have an idea of what may be causing the failures or how
>> to troubleshoot this?
>>
>
> I will try to reproduce this and get back to you shortly.
>
> Regards,
> Sricharan
>
>
>> I'm using OpenWRT with kernel 4.14.37. I added the following patch
>> in order to load the crash kernel:
>>
>> --- a/arch/arm/mach-qcom/platsmp.c
>> +++ b/arch/arm/mach-qcom/platsmp.c
>> @@ -332,6 +332,12 @@ static void __init qcom_smp_prepare_cpus
>> }
>> }
>>
>> +/* Needed by kexec and platform_can_cpu_hotplug() */
>> +int qcom_cpu_kill(unsigned int cpu)
>> +{
>> + return 1;
>> +}
>> +
>> static const struct smp_operations smp_msm8660_ops __initconst = {
>> .smp_prepare_cpus = qcom_smp_prepare_cpus,
>> .smp_secondary_init = qcom_secondary_init,
>> @@ -358,6 +364,7 @@ static const struct smp_operations qcom_
>> .smp_boot_secondary = kpssv2_boot_secondary,
>> #ifdef CONFIG_HOTPLUG_CPU
>> .cpu_die = qcom_cpu_die,
>> + .cpu_kill = qcom_cpu_kill,
>> #endif
>> };
>> CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2",
>> &qcom_smp_kpssv2_ops);
>>
>>
>> Thanks,
>>
>> Andy
Hi Sricharan,
Thanks for your response. Did you get a chance to try this out? If
so, were you able to reproduce?
Thanks,
Andy
--
http://www.uplevelsystems.com <http://www.uplevelsystems.com>
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kexec failures on ipq4019
2018-06-26 21:17 ` Andy Strohman
@ 2018-06-28 4:33 ` Sricharan R
-1 siblings, 0 replies; 8+ messages in thread
From: Sricharan R @ 2018-06-28 4:33 UTC (permalink / raw)
To: Andy Strohman
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-arm-msm-owner-u79uwXL29TY76Z2rM5mHXA
Hi Andy,
On 6/27/2018 2:47 AM, Andy Strohman wrote:
> On Sun, Jun 17, 2018 at 11:31 PM, <sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> wrote:
>> Hi Andy,
>>
>> On 2018-06-16 06:37, Andy Strohman wrote:
>>>
>>> Hi,
>>>
>>> I'm trying to get kexec to work consistently for ipq4019. I load
>>> the crash kernel like this:
>>>
>>> kexec --type zImage -p zImage-initramfs
>>> --dtb=image-qcom-ipq4019-eap1300.dtb --append="maxcpus=1
>>> reset_devices" --image-size=34419456
>>>
>>> I have reserved 64MB of memory for the crash kernel with parameter:
>>> crashkernel=64M
>>>
>>> This seems to work ~70% of the time. When it doesn't work, I see the
>>> "bye!" message followed by a 5-10 second hang without output. Then
>>> the machine resets.
>>>
>>> I've been testing with:
>>> echo c > /proc/sysrq-trigger
>>>
>>> Does anyone have an idea of what may be causing the failures or how
>>> to troubleshoot this?
>>>
>>
>> I will try to reproduce this and get back to you shortly.
>>
>> Regards,
>> Sricharan
>>
>>
>>> I'm using OpenWRT with kernel 4.14.37. I added the following patch
>>> in order to load the crash kernel:
>>>
>>> --- a/arch/arm/mach-qcom/platsmp.c
>>> +++ b/arch/arm/mach-qcom/platsmp.c
>>> @@ -332,6 +332,12 @@ static void __init qcom_smp_prepare_cpus
>>> }
>>> }
>>>
>>> +/* Needed by kexec and platform_can_cpu_hotplug() */
>>> +int qcom_cpu_kill(unsigned int cpu)
>>> +{
>>> + return 1;
>>> +}
>>> +
>>> static const struct smp_operations smp_msm8660_ops __initconst = {
>>> .smp_prepare_cpus = qcom_smp_prepare_cpus,
>>> .smp_secondary_init = qcom_secondary_init,
>>> @@ -358,6 +364,7 @@ static const struct smp_operations qcom_
>>> .smp_boot_secondary = kpssv2_boot_secondary,
>>> #ifdef CONFIG_HOTPLUG_CPU
>>> .cpu_die = qcom_cpu_die,
>>> + .cpu_kill = qcom_cpu_kill,
>>> #endif
>>> };
>>> CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2",
>>> &qcom_smp_kpssv2_ops);
>>>
>>>
>>> Thanks,
>>>
>>> Andy
>
> Hi Sricharan,
>
> Thanks for your response. Did you get a chance to try this out? If
> so, were you able to reproduce?
>
I have been trying to kexec while chroot'ing for a different reason.
I did not observe a issue so far. But that is with a 4.4.60 openwrt kernel.
Can you point me a link to the kernel that you are trying with ?
Regards,
Sricharan
--
"QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: kexec failures on ipq4019
@ 2018-06-28 4:33 ` Sricharan R
0 siblings, 0 replies; 8+ messages in thread
From: Sricharan R @ 2018-06-28 4:33 UTC (permalink / raw)
To: Andy Strohman; +Cc: linux-arm-msm, kexec, linux-arm-msm-owner
Hi Andy,
On 6/27/2018 2:47 AM, Andy Strohman wrote:
> On Sun, Jun 17, 2018 at 11:31 PM, <sricharan@codeaurora.org> wrote:
>> Hi Andy,
>>
>> On 2018-06-16 06:37, Andy Strohman wrote:
>>>
>>> Hi,
>>>
>>> I'm trying to get kexec to work consistently for ipq4019. I load
>>> the crash kernel like this:
>>>
>>> kexec --type zImage -p zImage-initramfs
>>> --dtb=image-qcom-ipq4019-eap1300.dtb --append="maxcpus=1
>>> reset_devices" --image-size=34419456
>>>
>>> I have reserved 64MB of memory for the crash kernel with parameter:
>>> crashkernel=64M
>>>
>>> This seems to work ~70% of the time. When it doesn't work, I see the
>>> "bye!" message followed by a 5-10 second hang without output. Then
>>> the machine resets.
>>>
>>> I've been testing with:
>>> echo c > /proc/sysrq-trigger
>>>
>>> Does anyone have an idea of what may be causing the failures or how
>>> to troubleshoot this?
>>>
>>
>> I will try to reproduce this and get back to you shortly.
>>
>> Regards,
>> Sricharan
>>
>>
>>> I'm using OpenWRT with kernel 4.14.37. I added the following patch
>>> in order to load the crash kernel:
>>>
>>> --- a/arch/arm/mach-qcom/platsmp.c
>>> +++ b/arch/arm/mach-qcom/platsmp.c
>>> @@ -332,6 +332,12 @@ static void __init qcom_smp_prepare_cpus
>>> }
>>> }
>>>
>>> +/* Needed by kexec and platform_can_cpu_hotplug() */
>>> +int qcom_cpu_kill(unsigned int cpu)
>>> +{
>>> + return 1;
>>> +}
>>> +
>>> static const struct smp_operations smp_msm8660_ops __initconst = {
>>> .smp_prepare_cpus = qcom_smp_prepare_cpus,
>>> .smp_secondary_init = qcom_secondary_init,
>>> @@ -358,6 +364,7 @@ static const struct smp_operations qcom_
>>> .smp_boot_secondary = kpssv2_boot_secondary,
>>> #ifdef CONFIG_HOTPLUG_CPU
>>> .cpu_die = qcom_cpu_die,
>>> + .cpu_kill = qcom_cpu_kill,
>>> #endif
>>> };
>>> CPU_METHOD_OF_DECLARE(qcom_smp_kpssv2, "qcom,kpss-acc-v2",
>>> &qcom_smp_kpssv2_ops);
>>>
>>>
>>> Thanks,
>>>
>>> Andy
>
> Hi Sricharan,
>
> Thanks for your response. Did you get a chance to try this out? If
> so, were you able to reproduce?
>
I have been trying to kexec while chroot'ing for a different reason.
I did not observe a issue so far. But that is with a 4.4.60 openwrt kernel.
Can you point me a link to the kernel that you are trying with ?
Regards,
Sricharan
--
"QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-06-28 4:33 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-16 1:07 kexec failures on ipq4019 Andy Strohman
2018-06-16 1:07 ` Andy Strohman
[not found] ` <CAAGQ2nQNQ-aFkcrQHNA6H5TZ1tTovtfO_0Ohfndn9jXy13Hc6A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-18 6:31 ` sricharan-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-18 6:31 ` sricharan
[not found] ` <b741eca8c2d1bee8a8db7136c3061064-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-06-26 21:17 ` Andy Strohman
2018-06-26 21:17 ` Andy Strohman
[not found] ` <CAAGQ2nSG2QGHrOv+S77qTs8hdMgEEsNBFoDGa9wLiEKE1nDZmA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-06-28 4:33 ` Sricharan R
2018-06-28 4:33 ` Sricharan R
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.