Skip to content

Offer to host RISC-V CI runner #12263

Open

Description

@danog

Description

I have a VisionFive2 board that I currently use to build riscv64 packages for my software and php itself (https://hub.docker.com/r/danog/php), I'd be more than willing to set up a woodpecker runner and submit a PR with the configuration needed to run the php-src testsuite on native riscv64 hardware :)

Activity

  1. mvorisek commented on Sep 22, 2023

    @mvorisek
    Contributor

    Wouldn't QEMU for RISC testing be better using standard GH (or any Docker based CI)?

  2. danog commented on Sep 22, 2023

    @danog
    ContributorAuthor

    QEMU is super slow compared to real hardware, for example here are some basic benchmarks compiling php-src, running on my visionfive2 board and on QEMU on an AMD EPYC 7401P:

    ./configure --enable-debug --without-pcre-jit --without-sqlite3 --without-pdo-sqlite

    starfive (1m14s)

    real  1m14.050s
    user  0m56.293s
    sys  0m18.814s
    

    QEMU (6m45s)

    real	6m 45.44s
    user	5m 52.75s
    sys	0m 49.56s
    

    make -j4

    starfive (7m52s)

    real	7m52.868s
    user	27m15.208s
    sys	2m27.981s
    

    QEMU: still in progress after 30m, aborted...

    AFAIK, all CIs currently used to test other php-src on arm64 and s390x run on native hardware.
    Woodpecker is a great FOSS CI system based on Docker meant for self-hosting, unlike GHA self-hosted runners which are an absolute mess to work with (and currently don't support riscv64, unless we were to use a reverse-engineered Golang implementation of GHA runners like https://github.com/ChristopherHX/github-act-runner).

  3. NattyNarwhal commented on Sep 22, 2023

    @NattyNarwhal
    Member

    I’d be worried about things like QEMU not properly emulating atomics, memory model, etc. Things that aren’t obvious, but can trip you up badly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions