All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] selftests/powerpc: Add a helper for checking if we're on ppc64le
@ 2018-07-26 12:24 Michael Ellerman
  2018-07-26 12:24 ` [PATCH 2/3] selftests/powerpc: Only run some tests " Michael Ellerman
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Michael Ellerman @ 2018-07-26 12:24 UTC (permalink / raw)
  To: linuxppc-dev

Some of our selftests have only been tested on ppc64le and crash or
behave weirdly on ppc64/ppc32. So add a helper for checking the UTS
machine.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 tools/testing/selftests/powerpc/include/utils.h |  2 ++
 tools/testing/selftests/powerpc/utils.c         | 17 +++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/tools/testing/selftests/powerpc/include/utils.h b/tools/testing/selftests/powerpc/include/utils.h
index 735815b3ad7f..c58c370828b4 100644
--- a/tools/testing/selftests/powerpc/include/utils.h
+++ b/tools/testing/selftests/powerpc/include/utils.h
@@ -48,6 +48,8 @@ static inline bool have_hwcap2(unsigned long ftr2)
 }
 #endif
 
+bool is_ppc64le(void);
+
 /* Yes, this is evil */
 #define FAIL_IF(x)						\
 do {								\
diff --git a/tools/testing/selftests/powerpc/utils.c b/tools/testing/selftests/powerpc/utils.c
index d46916867a6f..aa8fc1e6365b 100644
--- a/tools/testing/selftests/powerpc/utils.c
+++ b/tools/testing/selftests/powerpc/utils.c
@@ -11,8 +11,10 @@
 #include <link.h>
 #include <sched.h>
 #include <stdio.h>
+#include <string.h>
 #include <sys/stat.h>
 #include <sys/types.h>
+#include <sys/utsname.h>
 #include <unistd.h>
 
 #include "utils.h"
@@ -104,3 +106,18 @@ int pick_online_cpu(void)
 	printf("No cpus in affinity mask?!\n");
 	return -1;
 }
+
+bool is_ppc64le(void)
+{
+	struct utsname uts;
+	int rc;
+
+	errno = 0;
+	rc = uname(&uts);
+	if (rc) {
+		perror("uname");
+		return false;
+	}
+
+	return strcmp(uts.machine, "ppc64le") == 0;
+}
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/3] selftests/powerpc: Only run some tests on ppc64le
  2018-07-26 12:24 [PATCH 1/3] selftests/powerpc: Add a helper for checking if we're on ppc64le Michael Ellerman
@ 2018-07-26 12:24 ` Michael Ellerman
  2018-07-26 12:54   ` Gustavo Romero
  2018-07-26 12:24 ` [PATCH 3/3] selftests/powerpc: Give some tests longer to run Michael Ellerman
  2018-08-08 14:26 ` [1/3] selftests/powerpc: Add a helper for checking if we're on ppc64le Michael Ellerman
  2 siblings, 1 reply; 7+ messages in thread
From: Michael Ellerman @ 2018-07-26 12:24 UTC (permalink / raw)
  To: linuxppc-dev

These tests are currently failing on (some) big endian systems. Until
we can fix that, skip them unless we're on ppc64le.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 tools/testing/selftests/powerpc/tm/tm-sigreturn.c | 1 +
 tools/testing/selftests/powerpc/tm/tm-tar.c       | 1 +
 tools/testing/selftests/powerpc/tm/tm-vmxcopy.c   | 1 +
 3 files changed, 3 insertions(+)

diff --git a/tools/testing/selftests/powerpc/tm/tm-sigreturn.c b/tools/testing/selftests/powerpc/tm/tm-sigreturn.c
index 85d63449243b..9a6017a1d769 100644
--- a/tools/testing/selftests/powerpc/tm/tm-sigreturn.c
+++ b/tools/testing/selftests/powerpc/tm/tm-sigreturn.c
@@ -55,6 +55,7 @@ int tm_sigreturn(void)
 	uint64_t ret = 0;
 
 	SKIP_IF(!have_htm());
+	SKIP_IF(!is_ppc64le());
 
 	memset(&sa, 0, sizeof(sa));
 	sa.sa_handler = handler;
diff --git a/tools/testing/selftests/powerpc/tm/tm-tar.c b/tools/testing/selftests/powerpc/tm/tm-tar.c
index 2d2fcc2b7a60..f31fe5a28ddb 100644
--- a/tools/testing/selftests/powerpc/tm/tm-tar.c
+++ b/tools/testing/selftests/powerpc/tm/tm-tar.c
@@ -26,6 +26,7 @@ int test_tar(void)
 	int i;
 
 	SKIP_IF(!have_htm());
+	SKIP_IF(!is_ppc64le());
 
 	for (i = 0; i < num_loops; i++)
 	{
diff --git a/tools/testing/selftests/powerpc/tm/tm-vmxcopy.c b/tools/testing/selftests/powerpc/tm/tm-vmxcopy.c
index 0274de7b11f3..fe52811584ae 100644
--- a/tools/testing/selftests/powerpc/tm/tm-vmxcopy.c
+++ b/tools/testing/selftests/powerpc/tm/tm-vmxcopy.c
@@ -46,6 +46,7 @@ int test_vmxcopy()
 	uint64_t aborted = 0;
 
 	SKIP_IF(!have_htm());
+	SKIP_IF(!is_ppc64le());
 
 	fd = mkstemp(tmpfile);
 	assert(fd >= 0);
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/3] selftests/powerpc: Give some tests longer to run
  2018-07-26 12:24 [PATCH 1/3] selftests/powerpc: Add a helper for checking if we're on ppc64le Michael Ellerman
  2018-07-26 12:24 ` [PATCH 2/3] selftests/powerpc: Only run some tests " Michael Ellerman
@ 2018-07-26 12:24 ` Michael Ellerman
  2018-08-08 14:26 ` [1/3] selftests/powerpc: Add a helper for checking if we're on ppc64le Michael Ellerman
  2 siblings, 0 replies; 7+ messages in thread
From: Michael Ellerman @ 2018-07-26 12:24 UTC (permalink / raw)
  To: linuxppc-dev

Some of these long running tests can time out on heavily loaded
systems, give them longer to run.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 tools/testing/selftests/powerpc/benchmarks/futex_bench.c         | 1 +
 tools/testing/selftests/powerpc/benchmarks/mmap_bench.c          | 2 ++
 tools/testing/selftests/powerpc/pmu/ebb/instruction_count_test.c | 1 +
 tools/testing/selftests/powerpc/pmu/ebb/lost_exception_test.c    | 1 +
 tools/testing/selftests/powerpc/stringloops/memcmp.c             | 1 +
 5 files changed, 6 insertions(+)

diff --git a/tools/testing/selftests/powerpc/benchmarks/futex_bench.c b/tools/testing/selftests/powerpc/benchmarks/futex_bench.c
index 2fc711d9150d..d58e4dc50fcd 100644
--- a/tools/testing/selftests/powerpc/benchmarks/futex_bench.c
+++ b/tools/testing/selftests/powerpc/benchmarks/futex_bench.c
@@ -38,5 +38,6 @@ int test_futex(void)
 
 int main(void)
 {
+	test_harness_set_timeout(300);
 	return test_harness(test_futex, "futex_bench");
 }
diff --git a/tools/testing/selftests/powerpc/benchmarks/mmap_bench.c b/tools/testing/selftests/powerpc/benchmarks/mmap_bench.c
index 7a0a462a2272..033de0560d99 100644
--- a/tools/testing/selftests/powerpc/benchmarks/mmap_bench.c
+++ b/tools/testing/selftests/powerpc/benchmarks/mmap_bench.c
@@ -84,5 +84,7 @@ int main(int argc, char *argv[])
 			exit(1);
 		}
 	}
+
+	test_harness_set_timeout(300);
 	return test_harness(test_mmap, "mmap_bench");
 }
diff --git a/tools/testing/selftests/powerpc/pmu/ebb/instruction_count_test.c b/tools/testing/selftests/powerpc/pmu/ebb/instruction_count_test.c
index ae9a79086111..35a3426e341c 100644
--- a/tools/testing/selftests/powerpc/pmu/ebb/instruction_count_test.c
+++ b/tools/testing/selftests/powerpc/pmu/ebb/instruction_count_test.c
@@ -162,5 +162,6 @@ int instruction_count(void)
 
 int main(void)
 {
+	test_harness_set_timeout(300);
 	return test_harness(instruction_count, "instruction_count");
 }
diff --git a/tools/testing/selftests/powerpc/pmu/ebb/lost_exception_test.c b/tools/testing/selftests/powerpc/pmu/ebb/lost_exception_test.c
index eb8acb78bc6c..2ed7ad33f7a3 100644
--- a/tools/testing/selftests/powerpc/pmu/ebb/lost_exception_test.c
+++ b/tools/testing/selftests/powerpc/pmu/ebb/lost_exception_test.c
@@ -98,5 +98,6 @@ static int lost_exception(void)
 
 int main(void)
 {
+	test_harness_set_timeout(300);
 	return test_harness(lost_exception, "lost_exception");
 }
diff --git a/tools/testing/selftests/powerpc/stringloops/memcmp.c b/tools/testing/selftests/powerpc/stringloops/memcmp.c
index b5cf71727b2d..b1fa7546957f 100644
--- a/tools/testing/selftests/powerpc/stringloops/memcmp.c
+++ b/tools/testing/selftests/powerpc/stringloops/memcmp.c
@@ -154,5 +154,6 @@ static int testcases(void)
 
 int main(void)
 {
+	test_harness_set_timeout(300);
 	return test_harness(testcases, "memcmp");
 }
-- 
2.14.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/3] selftests/powerpc: Only run some tests on ppc64le
  2018-07-26 12:24 ` [PATCH 2/3] selftests/powerpc: Only run some tests " Michael Ellerman
@ 2018-07-26 12:54   ` Gustavo Romero
  2018-07-27  5:51     ` Michael Ellerman
  0 siblings, 1 reply; 7+ messages in thread
From: Gustavo Romero @ 2018-07-26 12:54 UTC (permalink / raw)
  To: Michael Ellerman, linuxppc-dev

Hi Michael,

On 07/26/2018 09:24 AM, Michael Ellerman wrote:
> These tests are currently failing on (some) big endian systems. Until
> we can fix that, skip them unless we're on ppc64le.

I can take a look at this.

Is that the same issue related to the gcc version we discussed a month ago?
If not, could you provide the crash logs as a starting point?
  

Thanks,
Gustavo

> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> ---
>   tools/testing/selftests/powerpc/tm/tm-sigreturn.c | 1 +
>   tools/testing/selftests/powerpc/tm/tm-tar.c       | 1 +
>   tools/testing/selftests/powerpc/tm/tm-vmxcopy.c   | 1 +
>   3 files changed, 3 insertions(+)
> 
> diff --git a/tools/testing/selftests/powerpc/tm/tm-sigreturn.c b/tools/testing/selftests/powerpc/tm/tm-sigreturn.c
> index 85d63449243b..9a6017a1d769 100644
> --- a/tools/testing/selftests/powerpc/tm/tm-sigreturn.c
> +++ b/tools/testing/selftests/powerpc/tm/tm-sigreturn.c
> @@ -55,6 +55,7 @@ int tm_sigreturn(void)
>   	uint64_t ret = 0;
> 
>   	SKIP_IF(!have_htm());
> +	SKIP_IF(!is_ppc64le());
> 
>   	memset(&sa, 0, sizeof(sa));
>   	sa.sa_handler = handler;
> diff --git a/tools/testing/selftests/powerpc/tm/tm-tar.c b/tools/testing/selftests/powerpc/tm/tm-tar.c
> index 2d2fcc2b7a60..f31fe5a28ddb 100644
> --- a/tools/testing/selftests/powerpc/tm/tm-tar.c
> +++ b/tools/testing/selftests/powerpc/tm/tm-tar.c
> @@ -26,6 +26,7 @@ int test_tar(void)
>   	int i;
> 
>   	SKIP_IF(!have_htm());
> +	SKIP_IF(!is_ppc64le());
> 
>   	for (i = 0; i < num_loops; i++)
>   	{
> diff --git a/tools/testing/selftests/powerpc/tm/tm-vmxcopy.c b/tools/testing/selftests/powerpc/tm/tm-vmxcopy.c
> index 0274de7b11f3..fe52811584ae 100644
> --- a/tools/testing/selftests/powerpc/tm/tm-vmxcopy.c
> +++ b/tools/testing/selftests/powerpc/tm/tm-vmxcopy.c
> @@ -46,6 +46,7 @@ int test_vmxcopy()
>   	uint64_t aborted = 0;
> 
>   	SKIP_IF(!have_htm());
> +	SKIP_IF(!is_ppc64le());
> 
>   	fd = mkstemp(tmpfile);
>   	assert(fd >= 0);
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/3] selftests/powerpc: Only run some tests on ppc64le
  2018-07-26 12:54   ` Gustavo Romero
@ 2018-07-27  5:51     ` Michael Ellerman
  2018-07-31  0:35       ` Gustavo Romero
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Ellerman @ 2018-07-27  5:51 UTC (permalink / raw)
  To: Gustavo Romero, linuxppc-dev

Gustavo Romero <gromero@linux.vnet.ibm.com> writes:

> Hi Michael,
>
> On 07/26/2018 09:24 AM, Michael Ellerman wrote:
>> These tests are currently failing on (some) big endian systems. Until
>> we can fix that, skip them unless we're on ppc64le.
>
> I can take a look at this.

Thanks!

> Is that the same issue related to the gcc version we discussed a month ago?

Maybe, I've forgotten :)

> If not, could you provide the crash logs as a starting point?

There's not much:

  test: tm_tar
  tags: git_version:9794259
  failure: tm_tar
  run-parts: ./tm-tar exited with return code 1
  
  test: tm_vmxcopy
  tags: git_version:9794259
  !! child died by signal 11
  failure: tm_vmxcopy
  run-parts: ./tm-vmxcopy exited with return code 1

And now I can't get the sigreturn one to fail :/


cheers

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/3] selftests/powerpc: Only run some tests on ppc64le
  2018-07-27  5:51     ` Michael Ellerman
@ 2018-07-31  0:35       ` Gustavo Romero
  0 siblings, 0 replies; 7+ messages in thread
From: Gustavo Romero @ 2018-07-31  0:35 UTC (permalink / raw)
  To: Michael Ellerman, linuxppc-dev

Hi Michael,

On 07/27/2018 02:51 AM, Michael Ellerman wrote:
> Gustavo Romero <gromero@linux.vnet.ibm.com> writes:
> 
>> Hi Michael,
>>
>> On 07/26/2018 09:24 AM, Michael Ellerman wrote:
>>> These tests are currently failing on (some) big endian systems. Until
>>> we can fix that, skip them unless we're on ppc64le.
>>
>> I can take a look at this.
> 
> Thanks!
> 
>> Is that the same issue related to the gcc version we discussed a month ago?
> 
> Maybe, I've forgotten :)
> 
>> If not, could you provide the crash logs as a starting point?
> 
> There's not much:
> 
>    test: tm_tar
>    tags: git_version:9794259
>    failure: tm_tar
>    run-parts: ./tm-tar exited with return code 1
>    
>    test: tm_vmxcopy
>    tags: git_version:9794259
>    !! child died by signal 11
>    failure: tm_vmxcopy
>    run-parts: ./tm-vmxcopy exited with return code 1
> 
> And now I can't get the sigreturn one to fail :/

OK. I _think_ there is a chance it's the same issue we've discussed.

Hence, just for the record (in case somebody else wants to take a look at it as
well), on the occasion we had the following log about tm-sigreturn, that
although is not listed above (only tm-tar and tm-vmxcopy are ), it's marked to
run only on LE as per this patch, just like tm-tar and tm-vmxcopy:

[  403.458953] Unexpected TM Bad Thing exception at c00000000006da4c (msr 0x201032)
13:59:41 console: [  403.459865] Oops: Unrecoverable exception, sig: 6 [#1]
13:59:41 console: [  403.460286] BE SMP NR_CPUS=32 NUMA pSeries
13:59:41 console: [  403.460611] Modules linked in:
13:59:41 console: [  403.460929] CPU: 2 PID: 25233 Comm: tm-sigreturn Not tainted 4.16.0-gcc6x-g709b973 #1
13:59:41 console: [  403.461530] NIP:  c00000000006da4c LR: c00000000001d6a4 CTR: 0000000000000000
13:59:41 console: [  403.461782] REGS: c00000003ffcbd80 TRAP: 0700   Not tainted  (4.16.0-gcc6x-g709b973)
13:59:41 console: [  403.461943] MSR:  8000000300201032 <SF,ME,IR,DR,RI,TM[SE]>  CR: 48004288  XER: 20000000
13:59:41 console: [  403.462112] CFAR: c00000000001d6a0 SOFTE: 3
13:59:41 console: [  403.462112] PACATMSCRATCH: 000000034280f032
13:59:41 console: [  403.462112] GPR00: d40000018c000001 c0000000f09bfc20 c00000000165bd00 c0000000fbd5c900
13:59:41 console: [  403.462112] GPR04: 8000000300009032 0000000000000000 0000000000000000 0000000000000000
13:59:41 console: [  403.462112] GPR08: 0000000000000000 0000000000000001 0000000000000001 0000000000000000
13:59:41 console: [  403.462112] GPR12: 0000000000000000 c00000003fffdf00 000000000000000f 000000001003a338
13:59:41 console: [  403.462112] GPR16: 0000000010002e5c 0000000010002e44 0000000010002d08 0000000010002e24
13:59:41 console: [  403.462112] GPR20: 0000000010002eac 0000000000000000 c0000000fbd5cdc8 c000000000df6578
13:59:41 console: [  403.462112] GPR24: 0000000000000000 bfffffffffffffff 00000000fffef394 00000000fffeee10
13:59:41 console: [  403.462112] GPR28: c0000000f09bfea0 000000000280d032 0000000000000000 c0000000fbd5c900
13:59:41 console: [  403.463642] NIP [c00000000006da4c] .tm_restore_sprs+0xc/0x1c
13:59:41 console: [  403.463782] LR [c00000000001d6a4] .tm_recheckpoint.part.7+0x54/0x90
13:59:41 console: [  403.463912] Call Trace:
13:59:41 console: [  403.464003] [c0000000f09bfc20] [c000000000312ae0] .__might_fault+0x70/0x90 (unreliable)
13:59:41 console: [  403.464165] [c0000000f09bfca0] [c00000000001b2b8] .restore_tm_user_regs.part.0+0x418/0x6c0
13:59:41 console: [  403.464326] [c0000000f09bfd70] [c00000000001c55c] .compat_sys_sigreturn+0x14c/0x490
13:59:41 console: [  403.464495] [c0000000f09bfe30] [c00000000000c070] system_call+0x58/0x6c
13:59:41 console: [  403.464624] Instruction dump:
13:59:41 console: [  403.464705] 7c800164 4e800020 7c0022a6 f80304b0 7c0222a6 f80304b8 7c0122a6 f80304c0
13:59:41 console: [  403.464868] 4e800020 e80304b0 7c0023a6 e80304b8 <7c0223a6> e80304c0 7c0123a6 4e800020
13:59:41 console: [  403.465030] ---[ end trace 0045efc572a679cf ]---

and some initial debugging by mpe using xmon:

Unexpected TM Bad Thing exception at c000000000069e6c (msr 0x201032)
cpu 0x6: Vector: 700 (Program Check) at [c00000003ff9bd80]
     pc: c000000000069e6c: .tm_restore_sprs+0xc/0x1c
     lr: c00000000001e2a4: .tm_recheckpoint.part.11+0x64/0xf0
     sp: c0000000f2a2bc30
    msr: 8000000300201032
   current = 0xc0000000fa68b000
   paca    = 0xc00000003fff8f00     softe: 3     irq_happened: 0x01
     pid   = 3879, comm = tm-sigreturn
Linux version 4.17.0-rc1-gcc-7.0.1-00005-g56376c5864f8 (michael@ka3.ozlabs.ibm.com) (gcc version 7.0.1 20170213 (experimental) (Custom 8e8a14c238db56c7)) #172 SMP Thu Apr 19 21:48:31 AEST 2018
enter ? for help
[link register   ] c00000000001e2a4 .tm_recheckpoint.part.11+0x64/0xf0
[c0000000f2a2bc30] c0000000f2a2bcb0 (unreliable)
[c0000000f2a2bcb0] c00000000001c30c .restore_tm_user_regs.part.0+0x55c/0x610
[c0000000f2a2bd70] c00000000001d400 .compat_sys_sigreturn+0x130/0x410
[c0000000f2a2be30] c00000000000c268 system_call+0x58/0x6c
--- Exception: 300 (Data Access) at 00000000100009c8
SP (ffd75e90) is in userspace
6:mon> di %pc
c000000000069e6c  7c0223a6    mtspr   130,r0
c000000000069e70  e80304c0    ld      r0,1216(r3)
c000000000069e74  7c0123a6    mtspr   129,r0
c000000000069e78  4e800020    blr
c000000000069e7c  7c03071d    tabort. r3
c000000000069e80  4e800020    blr
c000000000069e84  7ca00026    mfcr    r5
c000000000069e88  7c0802a6    mflr    r0
c000000000069e8c  90a10008    stw     r5,8(r1)
c000000000069e90  f8010010    std     r0,16(r1)
c000000000069e94  f8410028    std     r2,40(r1)
c000000000069e98  f821fe21    stdu    r1,-480(r1)
c000000000069e9c  f8610030    std     r3,48(r1)
c000000000069ea0  f9c100e0    std     r14,224(r1)
c000000000069ea4  f9e100e8    std     r15,232(r1)
c000000000069ea8  fa0100f0    std     r16,240(r1)


Best regards,
Gustavo

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [1/3] selftests/powerpc: Add a helper for checking if we're on ppc64le
  2018-07-26 12:24 [PATCH 1/3] selftests/powerpc: Add a helper for checking if we're on ppc64le Michael Ellerman
  2018-07-26 12:24 ` [PATCH 2/3] selftests/powerpc: Only run some tests " Michael Ellerman
  2018-07-26 12:24 ` [PATCH 3/3] selftests/powerpc: Give some tests longer to run Michael Ellerman
@ 2018-08-08 14:26 ` Michael Ellerman
  2 siblings, 0 replies; 7+ messages in thread
From: Michael Ellerman @ 2018-08-08 14:26 UTC (permalink / raw)
  To: Michael Ellerman, linuxppc-dev

On Thu, 2018-07-26 at 12:24:57 UTC, Michael Ellerman wrote:
> Some of our selftests have only been tested on ppc64le and crash or
> behave weirdly on ppc64/ppc32. So add a helper for checking the UTS
> machine.
> 
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

Series applied to powerpc next.

https://git.kernel.org/powerpc/c/95f9b3af401f5b4daeb908a2c658e8

cheers

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-08-08 14:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-26 12:24 [PATCH 1/3] selftests/powerpc: Add a helper for checking if we're on ppc64le Michael Ellerman
2018-07-26 12:24 ` [PATCH 2/3] selftests/powerpc: Only run some tests " Michael Ellerman
2018-07-26 12:54   ` Gustavo Romero
2018-07-27  5:51     ` Michael Ellerman
2018-07-31  0:35       ` Gustavo Romero
2018-07-26 12:24 ` [PATCH 3/3] selftests/powerpc: Give some tests longer to run Michael Ellerman
2018-08-08 14:26 ` [1/3] selftests/powerpc: Add a helper for checking if we're on ppc64le Michael Ellerman

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.