Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Big endian PowerPC CI #17258

Draft
wants to merge 14 commits into
base: master
Choose a base branch
from
Draft

Conversation

NattyNarwhal
Copy link
Member

@NattyNarwhal NattyNarwhal commented Dec 24, 2024

I'll clean up the history later, but some notes:

  • This is a nightly run; it takes approximately half an hour to run to completion.
  • This runs on Gentoo, because it has good support for ppc64 and I know people familiar with it.
    • If we want to stick with a binary distribution, Debian unstable, openSUSE, or Adelie would probably be the best bet.
  • The runner system is an LPAR on a POWER8 system I have racked in a real datacentre.
    • The partition has 4 cores (8 threads per core, so 32 threads) assigned to it and 128 GB of RAM (which it rarely uses it seems, tops out at just over 16 GB in my experience if we need to resize). The storage is some spinning rust in RAID 5.
    • We could probably do ppc64le CI with this as well. Or developer systems for PHP people who need to test things.
  • The official runner is incompatible, so I have to use an unofficial implementation.
    • This is joined to my php-src fork right now; if we want to merge this, we'd obviously need to assign this to php/php-src. Is there any process for this?
    • I have some tweaks to the runner scripts to run it as a systemd unit and pick up the right LLVM version on path.
    • This isn't being run containerized. It'd be nice to figure that out.
  • Sample run here.
    • ext/ffi/tests/gh11934.phpt will be fixed by Fix GH-16013 and bug #80857: Big endian issues #17255. I don't know what's up with the POSIX tests; I believe these used to pass until I updated the system. I'll look into this.
    • A lot tests are slow; the number may need tuning because POWER8 is a bit old. The gd tests being very slow seem very unusual to me though.

@cmb69
Copy link
Member

cmb69 commented Dec 30, 2024

  • The gd tests being very slow seem very unusual to me though.

The 5 slowest test use helpers written in PHP which check all pixels; the 6th slowest calls imagecolormatch() (which also checks all pixels) on a 16 mega-pixel image. Given that the tests use -j32 and that the L1 cache appears to be very small, I guess this is partly a RAM performance issue. I wouldn't be too worried about that.

However, it would make sense to rewrite the GD test helpers (particularly, test_image_equals_file() and calc_image_dissimilarity()) in C. See #17305.

@NattyNarwhal
Copy link
Member Author

Looks like all ran tests pass now after a rebase! The tests are still slow (in particular gd), but the server is a little older and we are running several tests in parallel with sanitizers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants