Xen-Devel Archive on lore.kernel.org
 help / color / Atom feed
From: osstest service owner <osstest-admin@xenproject.org>
To: xen-devel@lists.xenproject.org, osstest-admin@xenproject.org
Subject: [Xen-devel] [xen-unstable test] 138915: regressions - FAIL
Date: Sat, 13 Jul 2019 06:12:29 +0000
Message-ID: <osstest-138915-mainreport@xen.org> (raw)

flight 138915 xen-unstable real [real]

Regressions :-(

Tests which did not succeed and are blocking,
including tests which could not be run:
 test-arm64-arm64-examine    11 examine-serial/bootloader fail REGR. vs. 138868

Tests which did not succeed, but are not blocking:
 test-amd64-amd64-xl-qemut-win7-amd64 17 guest-stop            fail like 138868
 test-armhf-armhf-libvirt     14 saverestore-support-check    fail  like 138868
 test-amd64-amd64-xl-qemuu-win7-amd64 17 guest-stop            fail like 138868
 test-amd64-amd64-xl-qemuu-ws16-amd64 17 guest-stop            fail like 138868
 test-amd64-i386-xl-qemut-win7-amd64 17 guest-stop             fail like 138868
 test-armhf-armhf-libvirt-raw 13 saverestore-support-check    fail  like 138868
 test-amd64-amd64-xl-qemut-ws16-amd64 17 guest-stop            fail like 138868
 test-amd64-i386-xl-qemuu-win7-amd64 17 guest-stop             fail like 138868
 test-amd64-i386-xl-qemuu-ws16-amd64 17 guest-stop             fail like 138868
 test-amd64-amd64-libvirt     13 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt-xsm  13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-seattle  14 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-xsm 13 migrate-support-check        fail   never pass
 test-amd64-i386-libvirt      13 migrate-support-check        fail   never pass
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 11 migrate-support-check fail never pass
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 11 migrate-support-check fail never pass
 test-amd64-amd64-qemuu-nested-amd 17 debian-hvm-install/l1/l2  fail never pass
 test-arm64-arm64-xl-xsm      13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-xsm      14 saverestore-support-check    fail   never pass
 test-arm64-arm64-libvirt-xsm 13 migrate-support-check        fail   never pass
 test-arm64-arm64-libvirt-xsm 14 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit2  13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit2  14 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl          13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl          14 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-credit1  13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-credit1  14 saverestore-support-check    fail   never pass
 test-arm64-arm64-xl-thunderx 13 migrate-support-check        fail   never pass
 test-arm64-arm64-xl-thunderx 14 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-arndale  13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-arndale  14 saverestore-support-check    fail   never pass
 test-amd64-amd64-libvirt-vhd 12 migrate-support-check        fail   never pass
 test-armhf-armhf-libvirt     13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl          14 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-cubietruck 13 migrate-support-check        fail never pass
 test-armhf-armhf-xl-cubietruck 14 saverestore-support-check    fail never pass
 test-armhf-armhf-xl-rtds     13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-multivcpu 13 migrate-support-check        fail  never pass
 test-armhf-armhf-xl-rtds     14 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-multivcpu 14 saverestore-support-check    fail  never pass
 test-armhf-armhf-xl-credit1  13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit1  14 saverestore-support-check    fail   never pass
 test-amd64-i386-xl-pvshim    12 guest-start                  fail   never pass
 test-armhf-armhf-libvirt-raw 12 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      12 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-vhd      13 saverestore-support-check    fail   never pass
 test-armhf-armhf-xl-credit2  13 migrate-support-check        fail   never pass
 test-armhf-armhf-xl-credit2  14 saverestore-support-check    fail   never pass
 test-amd64-amd64-xl-qemuu-win10-i386 10 windows-install        fail never pass
 test-amd64-i386-xl-qemuu-win10-i386 10 windows-install         fail never pass
 test-amd64-amd64-xl-qemut-win10-i386 10 windows-install        fail never pass
 test-amd64-i386-xl-qemut-win10-i386 10 windows-install         fail never pass
 test-amd64-i386-xl-qemut-ws16-amd64 17 guest-stop              fail never pass

version targeted for testing:
 xen                  38eeb3864de40aa568c48f9f26271c141c62b50b
baseline version:
 xen                  b541287c3600713feaaaf7608cd405e7b2e4efd0

Last test of basis   138868  2019-07-09 15:18:41 Z    3 days
Failing since        138892  2019-07-10 17:52:15 Z    2 days    2 attempts
Testing same since   138915  2019-07-12 04:45:41 Z    1 days    1 attempts

People who touched revisions under test:
  Amit Singh Tomar <amittomer25@gmail.com>
  Andrew Cooper <andrew.cooper3@citrix.com>
  Chao Gao <chao.gao@intel.com>
  Joe Perches <joe@perches.com>
  Juergen Gross <jgross@suse.com>
  Julien Grall <julien.grall@arm.com>
  Volodymyr Babchuk <volodymyr_babchuk@epam.com>
  Will Abele <will.abele@starlab.io>

 build-amd64-xsm                                              pass    
 build-arm64-xsm                                              pass    
 build-i386-xsm                                               pass    
 build-amd64-xtf                                              pass    
 build-amd64                                                  pass    
 build-arm64                                                  pass    
 build-armhf                                                  pass    
 build-i386                                                   pass    
 build-amd64-libvirt                                          pass    
 build-arm64-libvirt                                          pass    
 build-armhf-libvirt                                          pass    
 build-i386-libvirt                                           pass    
 build-amd64-prev                                             pass    
 build-i386-prev                                              pass    
 build-amd64-pvops                                            pass    
 build-arm64-pvops                                            pass    
 build-armhf-pvops                                            pass    
 build-i386-pvops                                             pass    
 test-xtf-amd64-amd64-1                                       pass    
 test-xtf-amd64-amd64-2                                       pass    
 test-xtf-amd64-amd64-3                                       pass    
 test-xtf-amd64-amd64-4                                       pass    
 test-xtf-amd64-amd64-5                                       pass    
 test-amd64-amd64-xl                                          pass    
 test-arm64-arm64-xl                                          pass    
 test-armhf-armhf-xl                                          pass    
 test-amd64-i386-xl                                           pass    
 test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm           pass    
 test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm            pass    
 test-amd64-amd64-xl-qemut-stubdom-debianhvm-amd64-xsm        pass    
 test-amd64-i386-xl-qemut-stubdom-debianhvm-amd64-xsm         pass    
 test-amd64-amd64-xl-qemut-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemut-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-i386-xsm                 pass    
 test-amd64-i386-xl-qemuu-debianhvm-i386-xsm                  pass    
 test-amd64-amd64-libvirt-xsm                                 pass    
 test-arm64-arm64-libvirt-xsm                                 pass    
 test-amd64-i386-libvirt-xsm                                  pass    
 test-amd64-amd64-xl-xsm                                      pass    
 test-arm64-arm64-xl-xsm                                      pass    
 test-amd64-i386-xl-xsm                                       pass    
 test-amd64-amd64-qemuu-nested-amd                            fail    
 test-amd64-amd64-xl-pvhv2-amd                                pass    
 test-amd64-i386-qemut-rhel6hvm-amd                           pass    
 test-amd64-i386-qemuu-rhel6hvm-amd                           pass    
 test-amd64-amd64-xl-qemut-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemut-debianhvm-amd64                     pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64                    pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64                     pass    
 test-amd64-i386-freebsd10-amd64                              pass    
 test-amd64-amd64-xl-qemuu-ovmf-amd64                         pass    
 test-amd64-i386-xl-qemuu-ovmf-amd64                          pass    
 test-amd64-amd64-xl-qemut-win7-amd64                         fail    
 test-amd64-i386-xl-qemut-win7-amd64                          fail    
 test-amd64-amd64-xl-qemuu-win7-amd64                         fail    
 test-amd64-i386-xl-qemuu-win7-amd64                          fail    
 test-amd64-amd64-xl-qemut-ws16-amd64                         fail    
 test-amd64-i386-xl-qemut-ws16-amd64                          fail    
 test-amd64-amd64-xl-qemuu-ws16-amd64                         fail    
 test-amd64-i386-xl-qemuu-ws16-amd64                          fail    
 test-armhf-armhf-xl-arndale                                  pass    
 test-amd64-amd64-xl-credit1                                  pass    
 test-arm64-arm64-xl-credit1                                  pass    
 test-armhf-armhf-xl-credit1                                  pass    
 test-amd64-amd64-xl-credit2                                  pass    
 test-arm64-arm64-xl-credit2                                  pass    
 test-armhf-armhf-xl-credit2                                  pass    
 test-armhf-armhf-xl-cubietruck                               pass    
 test-amd64-amd64-xl-qemuu-dmrestrict-amd64-dmrestrict        pass    
 test-amd64-i386-xl-qemuu-dmrestrict-amd64-dmrestrict         pass    
 test-amd64-amd64-examine                                     pass    
 test-arm64-arm64-examine                                     pass    
 test-armhf-armhf-examine                                     pass    
 test-amd64-i386-examine                                      pass    
 test-amd64-i386-freebsd10-i386                               pass    
 test-amd64-amd64-xl-qemut-win10-i386                         fail    
 test-amd64-i386-xl-qemut-win10-i386                          fail    
 test-amd64-amd64-xl-qemuu-win10-i386                         fail    
 test-amd64-i386-xl-qemuu-win10-i386                          fail    
 test-amd64-amd64-qemuu-nested-intel                          pass    
 test-amd64-amd64-xl-pvhv2-intel                              pass    
 test-amd64-i386-qemut-rhel6hvm-intel                         pass    
 test-amd64-i386-qemuu-rhel6hvm-intel                         pass    
 test-amd64-amd64-libvirt                                     pass    
 test-armhf-armhf-libvirt                                     pass    
 test-amd64-i386-libvirt                                      pass    
 test-amd64-amd64-livepatch                                   pass    
 test-amd64-i386-livepatch                                    pass    
 test-amd64-amd64-migrupgrade                                 pass    
 test-amd64-i386-migrupgrade                                  pass    
 test-amd64-amd64-xl-multivcpu                                pass    
 test-armhf-armhf-xl-multivcpu                                pass    
 test-amd64-amd64-pair                                        pass    
 test-amd64-i386-pair                                         pass    
 test-amd64-amd64-libvirt-pair                                pass    
 test-amd64-i386-libvirt-pair                                 pass    
 test-amd64-amd64-amd64-pvgrub                                pass    
 test-amd64-amd64-i386-pvgrub                                 pass    
 test-amd64-amd64-xl-pvshim                                   pass    
 test-amd64-i386-xl-pvshim                                    fail    
 test-amd64-amd64-pygrub                                      pass    
 test-amd64-amd64-xl-qcow2                                    pass    
 test-armhf-armhf-libvirt-raw                                 pass    
 test-amd64-i386-xl-raw                                       pass    
 test-amd64-amd64-xl-rtds                                     pass    
 test-armhf-armhf-xl-rtds                                     pass    
 test-arm64-arm64-xl-seattle                                  pass    
 test-amd64-amd64-xl-qemuu-debianhvm-amd64-shadow             pass    
 test-amd64-i386-xl-qemuu-debianhvm-amd64-shadow              pass    
 test-amd64-amd64-xl-shadow                                   pass    
 test-amd64-i386-xl-shadow                                    pass    
 test-arm64-arm64-xl-thunderx                                 pass    
 test-amd64-amd64-libvirt-vhd                                 pass    
 test-armhf-armhf-xl-vhd                                      pass    

sg-report-flight on osstest.test-lab.xenproject.org
logs: /home/logs/logs
images: /home/logs/images

Logs, config files, etc. are available at

Explanation of these reports, and of osstest in general, is at

Test harness code can be found at

Not pushing.

commit 38eeb3864de40aa568c48f9f26271c141c62b50b
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Fri May 17 11:08:56 2019 +0100

    tools/xenstored: Drop mapping of the ring via foreign map
    This is a vestigial remnent of the pre xenstored stub domain days.
    Foreign mapping via MFN is a privileged operation which is not
    necessary, because grant details are unconditionally set up during
    domain construction.  In practice, this means xenstored never uses its
    ability to foreign map the ring.
    Drop the ability completely, which removes the penultimate use of the
    unstable libxc interface.
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>

commit ecdeb7f8835398a1a4816d8cf68b7313674f84fe
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Fri May 17 11:06:16 2019 +0100

    tools/xenstored: Make gnttab interface mandatory
    xenstored currently requires an libxc and evtchn interface, but leaves
    the gnttab interface as optional.
    gnttab is ubiquitous these days, and in practice mandatory in all cases
    where xenstored isn't running as root in dom0 (due to the inability to
    foreign map by MFN).
    The toolstack has unconditionally set up grant details for many years
    now, and longterm it would be good to phase out the use of libxc.  This
    requires that xenstored map the store ring by grant map, rather than
    foreign map.
    No practical change.
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>

commit c19434d9284e93e6f9aaec9a70f5f361adbfaba6
Author: Juergen Gross <jgross@suse.com>
Date:   Wed Jun 26 14:37:26 2019 +0100

    libxl: fix pci device re-assigning after domain reboot
    After a reboot of a guest only the first pci device configuration will
    be retrieved from Xenstore resulting in loss of any further assigned
    passed through pci devices.
    The main reason is that all passed through pci devices reside under a
    common root device "0" in Xenstore. So when the device list is rebuilt
    from Xenstore after a reboot the sub-devices below that root device
    need to be selected instead of using the root device number as a
    Fix that by adding a new member to struct libxl_device_type which when
    set is used to get the number of devices. Add such a member for pci to
    get the correct number of pci devices instead of implying it from the
    number of pci root devices (which will always be 1).
    While at it fix the type of libxl__device_pci_from_xs_be() to match
    the one of the .from_xenstore member of struct libxl_device_type. This
    fixes a latent bug checking the return value of a function returning
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Tested-by: Chao Gao <chao.gao@intel.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>

commit 564d261687c071c5a77fa81d693b7ca3d8e83b48
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Thu Jul 4 16:13:32 2019 +0100

    x86/ctxt-switch: Document and improve GDT handling
    Calling virt_to_mfn() in the context switch path is a lot
    of wasted cycles for a result which is constant after boot.
    Begin by documenting how Xen handles the GDTs across context switch.
    The loop in write_full_gdt_ptes() is unnecessary, because
    NR_RESERVED_GDT_PAGES is 1.  Dropping it makes the code substantially
    more clear, and with it dropped, write_full_gdt_ptes() becomes more
    obviously a poor name, so rename it to update_xen_slot_in_full_gdt().
    Furthermore, load_full_gdt() is completely independent of the current
    CPU, and load_default_gdt() only needs the current CPU's regular
    GDT.  (This is a change in behaviour, as previously it may have used the
    compat GDT, but either will do.)
    Add two extra per-cpu variables which cache the L1e for the regular and compat
    GDT, calculated in cpu_smpboot_alloc()/trap_init() as appropriate, so
    update_xen_slot_in_full_gdt() doesn't need to waste time performing the same
    calculation on every context switch.
    One performance scenario of Jüergen's (time to build the hypervisor on
    an 8 CPU system, with two single-vCPU MiniOS VMs constantly interrupting
    dom0 with events) shows the following, average over 5 measurements:
                elapsed  user   system
      Unpatched  66.51  232.93  109.21
      Patched    57.00  225.47  105.47
    which is a substantial improvement.
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Tested-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>

commit 8706d38479218dcf549a94516918c3e3b30a7bb0
Author: Will Abele <will.abele@starlab.io>
Date:   Tue Jul 9 13:22:23 2019 +0000

    xen/arm: use correct device tree root node name
    The root node of a device tree should not have a node name. This is
    specified in section 2.2.1 of version 0.2 of the device tree
    specification, available from devicetree.org.
    Linux Kernel versions prior to 4.15 misinterpret flattened device trees
    with a "/" as the name of the root node as an FDT version older than 16.
    Linux then fails to parse the FDT.
    Signed-off-by: Will Abele <will.abele@starlab.io>
    Reviewed-by: Julien Grall <julien.grall@arm.com>

commit 6d6474db41fb67e868cb5402b92ee5cc5cde3275
Author: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Date:   Wed Jun 19 17:54:26 2019 +0000

    xen/arm: optee: document OPTEE option in tee/Kconfig
    Add basic information about the OP-TEE mediator and note about
    dependency on virtualization-aware OP-TEE.
    Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
    Acked-by: Julien Grall <julien.grall@arm.com>

commit 68e0eb83ef62a4bbbd4837c3759bada65a62b71b
Author: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Date:   Wed Jun 19 17:54:24 2019 +0000

    xen/arm: optee: check if OP-TEE is virtualization-aware
    This is workaround for OP-TEE 3.5. This is the first OP-TEE release
    which supports virtualization, but there is no way to tell if
    OP-TEE was built with that support enabled. We can probe for it
    by calling SMC that is available only when OP-TEE is built with
    virtualization support.
    Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
    Acked-by: Julien Grall <julien.grall@arm.com>

commit 845fb395a86b723ac8e73111da39e9f4d65e5fe5
Author: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Date:   Wed Jun 19 17:54:22 2019 +0000

    xen/arm: tee: place OP-TEE Kconfig option right after TEE
    It is nicer, when options for particular TEE mediators (currently,
    OP-TEE only) are following generic "Enable TEE mediators support"
    option in the menuconfig:
     [*] Enable TEE mediators support
     [ ]   Enable OP-TEE mediator
    Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
    Reviewed-by: Julien Grall <julien.grall@arm.com>

commit cb2dd34b7bbe4484d8f13b50a770a9cfa138f205
Author: Joe Perches <joe@perches.com>
Date:   Tue Jun 18 11:12:15 2019 +0000

    get_maintainer: Improve patch recognition
    There are mode change and rename only patches that are unrecognized
    by the get_maintainer.pl script.
    Recognize them.
    [ Linux commit 0455c74788fd5aad4399f00e3fbbb7e87450ca58 ]
    Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
    CC: Julien Grall <julien.grall@arm.com>
    Signed-off-by: Joe Perches <joe@perches.com>
    Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
    Acked-by: Julien Grall <julien.grall@arm.com>

commit 9b1a31922ac066ef0dffe36ebd6a6ba016567d69
Author: Amit Singh Tomar <amittomer25@gmail.com>
Date:   Sun Jun 23 18:26:31 2019 +0530

    xen/arm: domain_build: Black list devices using PPIs
    Currently, the vGIC is not able to cope with hardware PPIs routed to guests.
    One of the solutions to this problem is to skip any device that uses PPI
    source completely while building the domain itself.
    This patch goes through all the interrupt sources of a device and skip it
    if one of the interrupts sources is a PPI. It fixes XEN boot on i.MX8MQ by
    skipping the PMU node.
    Suggested-by:  Julien Grall <julien.grall@arm.com>
    Signed-off-by: Amit Singh Tomar <amittomer25@gmail.com>
    Acked-by: Julien Grall <julien.grall@arm.com>

commit c1247554578180ba1ff688fd4892f498243c230e
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Mon Jul 8 23:12:06 2019 +0100

    x86/gnttab: Use explicit instruction size in gnttab_clear_flags()
    The OpenSUSE Leap compilers complain about ambiguity:
    In file included from grant_table.c:33:
    In file included from ...xen/include/xen/grant_table.h:30:
    ...xen/include/asm/grant_table.h:67:19: error: ambiguous instructions require
    an explicit suffix (could be 'andb', 'andw', 'andl', or 'andq')
        asm volatile ("lock and %1,%0" : "+m" (*addr) : "ir" ((uint16_t)~mask));
    <inline asm>:1:2: note: instantiated into assembly here
            lock and $-17,(%rsi)
    Full logs: https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/247600284
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
(qemu changes not included)

Xen-devel mailing list

                 reply index

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publically 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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=osstest-138915-mainreport@xen.org \
    --to=osstest-admin@xenproject.org \
    --cc=xen-devel@lists.xenproject.org \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Xen-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/xen-devel/0 xen-devel/git/0.git
	git clone --mirror https://lore.kernel.org/xen-devel/1 xen-devel/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 xen-devel xen-devel/ https://lore.kernel.org/xen-devel \
		xen-devel@lists.xenproject.org xen-devel@archiver.kernel.org
	public-inbox-index xen-devel

Newsgroup available over NNTP:

AGPL code for this site: git clone https://public-inbox.org/ public-inbox