This is an archive of the discontinued LLVM Phabricator instance.

Revamp LLVM WoA buildbots
ClosedPublic

Authored by omjavaid on Dec 20 2022, 3:19 AM.

Details

Summary

This patch makes following changes to LLVM Windows on Arm buildbots:

  1. Improves clang-arm64-windows-msvc builder. It will run in similar configuration to linux clang quick builder with ninja check enabled on a dedicated relatively fast worker machine.
  2. Enables ninja check-all for both stage1 and stage2 on clang-arm64-windows-msvc-2stage builder.
  3. Adds an extra worker for clang-arm64-windows-msvc-2stage builder. Making 3 workers in total testing two stage builds.
  4. Removes redundant CMAKE flags from various all WoA builders.
  5. Enables object file caching using sccache
  6. Update worker for lldb-aarch64-windows builder. It will be dedicated Surface X pro machines.

Diff Detail

Event Timeline

omjavaid created this revision.Dec 20 2022, 3:19 AM
Herald added a project: Restricted Project. · View Herald Transcript
omjavaid requested review of this revision.Dec 20 2022, 3:19 AM
DavidSpickett added inline comments.Dec 20 2022, 3:46 AM
buildbot/osuosl/master/config/builders.py
243

Can we make the claim this is quick when flang is involved? I'm seeing anything from 10 minutes to 30 minutes on the existing flang-aarch64-release bot. Though if it's quick relative to the other WoA bot I could accept that.

I suppose we painted ourselves into a corner naming our single architecture backend bots "quick" :)

244–245

Do you need this in the new bot too?

Ditto all the extra_cmake_args here. Are we at the point now that we don't need them?

omjavaid added inline comments.Dec 20 2022, 4:04 AM
buildbot/osuosl/master/config/builders.py
243

A test run for above builder is running here: http://139.178.84.207:49161/#/builders/18

We may not be able to call it quick meeting the standards of Linux server grade hardware. However compared to other arm64-windows-msvc bots this should build faster. Build times range from 35 mins upto 2 hours. The normal clang-arm64-windows-msvc bots takes 4 hours straight.

Re flang we adds about 10-15% more files to be built and about 10% more unit/regression tests to be run. I assume we can live with that because for now we dont have hardware to put separate flang bots in place for arm64-windows.

Re naming I guess we call it quick assuming a clean build takes more time and quick bots dont do a clean build so that may be the source of this naming convention.

omjavaid added inline comments.Dec 20 2022, 4:11 AM
buildbot/osuosl/master/config/builders.py
244–245

Near future plan is to make this clang-arm64-windows-msvc bot redundant and keep the quick and 2stage ones.

Yes I am removing the extra flags after testing. We no longer need most of them.

If we're going to remove the existing single stage bot later anyway, we can always rename this one to the same thing if it's too slow to be "quick" by most standards.

The linked build doesn't load for me, but in any case, what tests are we running? check-flag we know can work, are we up to being able to run check-all? (which I think is what this will result in)

Nice milestone if so.

gkistanova requested changes to this revision.Dec 27 2022, 8:19 PM

Thanks for the patch, Muhammad.

If you plan to replace the clang-arm64-windows-msvc builder, then maybe just do that? You can move it to the staging, and change the build config to match what you have for the "quick" builder, make sure it is green, and get the new builder back to production? There is a quite time around the New Year, so it might be a good point in time for that.

buildbot/osuosl/master/config/builders.py
239

The builddir must be unique. The easiest would be just skipping this arg and let the default machinery do its magic. Otherwise, make it unique, please. Currently it is the same as in the clang-arm64-windows-msvc builder.

This revision now requires changes to proceed.Dec 27 2022, 8:19 PM
omjavaid updated this revision to Diff 485879.Jan 2 2023, 12:10 PM
omjavaid retitled this revision from Add clang-arm64-windows-msvc-quick builder to Revamp LLVM WoA buildbots.
omjavaid edited the summary of this revision. (Show Details)

Add more changes updating all LLVM Windows on Arm builders.

omjavaid marked 2 inline comments as done.Jan 2 2023, 12:14 PM
omjavaid added inline comments.
buildbot/osuosl/master/config/builders.py
239

Fixed in latest rev.

omjavaid marked an inline comment as done and an inline comment as not done.Jan 6 2023, 2:48 AM

Thanks for making the changes!

The patch looks good with a nit pick.

Since you replaced clang-arm64-windows-msvc, could you keep the same builder name, please?
The new builder is faster than the old one, which is great. Doesn’t make it a quick one, though. Keeping the same name seems reasonable.

Thanks for making the changes!

The patch looks good with a nit pick.

Since you replaced clang-arm64-windows-msvc, could you keep the same builder name, please?
The new builder is faster than the old one, which is great. Doesn’t make it a quick one, though. Keeping the same name seems reasonable.

Ack I will update the bot name. But Is there a criteria based on speed or configuration to call a bot Quick. This bot that I am adding is doing about 15 builds per day compared to 25 builds per day of LLVM AArch64 Linux quick bot. Most builds run for an Average build time of about 25 - 30 minutes on this new windows bot however some builds do take about 2 hours. The Linux bot with similar configuration take about 10 - 15 minutes and they dont have those 1 - 2 builds per day taking couple of hours.

The meaning is changing over time as we are getting more and more fast builders. For now, I'd call a builder quick if it is able to build each commit and stay current with the build queue in general (something like 3-5 minutes response time or better).

This looks fine but I agree, let's keep the clang-arm64-windows-msvc name.

omjavaid updated this revision to Diff 488932.Jan 13 2023, 3:17 AM
omjavaid edited the summary of this revision. (Show Details)

Rename clang-arm64-windows-msvc-quick back to clang-arm64-windows-msvc.

gkistanova accepted this revision.Jan 13 2023, 12:00 PM

Thanks, Muhammad!
Looks good.

This revision is now accepted and ready to land.Jan 13 2023, 12:00 PM
This revision was landed with ongoing or failed builds.Jan 16 2023, 2:02 AM
This revision was automatically updated to reflect the committed changes.