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

GitHub: Cross build full matrix #18

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

jlduran
Copy link
Owner

@jlduran jlduran commented Mar 25, 2023

Interesting exercise of testing a full matrix of supported clang versions on different OSs.

Random timeouts, specifically on macOS were noticed, there are just too many options.

Suggestion: Remove amd64 on macOS, as this will soon disappear.

@jlduran jlduran self-assigned this Mar 25, 2023
@jlduran
Copy link
Owner Author

jlduran commented Mar 25, 2023

OS Architecture clang-12 clang-13 clang-14 clang-15
macOS aarch64 Cross-build Kernel Cross-build Kernel Cross-build Kernel Cross-build Kernel
Ubuntu amd64 Cross-build Kernel Cross-build Kernel Cross-build Kernel Cross-build Kernel
Ubuntu aarch64 Cross-build Kernel Cross-build Kernel Cross-build Kernel Cross-build Kernel

@jlduran jlduran force-pushed the github-cross-build-full-matrix branch 6 times, most recently from 2c2a8f7 to 086c275 Compare March 28, 2023 01:41
@jlduran
Copy link
Owner Author

jlduran commented Mar 28, 2023

Or maybe just oldest & newest (12 & 15)?

OS Architecture clang-12 clang-15
macOS aarch64 Cross-build Kernel Cross-build Kernel
Ubuntu aarch64 Cross-build Kernel Cross-build Kernel
Ubuntu amd64 Cross-build Kernel Cross-build Kernel

@jlduran jlduran force-pushed the github-cross-build-full-matrix branch from 086c275 to 7aa78e4 Compare March 30, 2023 22:41
jlduran pushed a commit that referenced this pull request Sep 11, 2023
netlink(4) calls back into the driver during detach and it attempts to
start an internal synchronized op recursively, causing an interruptible
hang.  Fix it by failing the ioctl if the VI has been marked as DOOMED
by cxgbe_detach.

Here's the stack for the hang for reference.
 #6  begin_synchronized_op
 #7  cxgbe_media_status
 #8  ifmedia_ioctl
 #9  cxgbe_ioctl
 #10 if_ioctl
 #11 get_operstate_ether
 #12 get_operstate
 #13 dump_iface
 #14 rtnl_handle_ifevent
 #15 rtnl_handle_ifnet_event
 #16 rt_ifmsg
 #17 if_unroute
 #18 if_down
 #19 if_detach_internal
 #20 if_detach
 #21 ether_ifdetach
 #22 cxgbe_vi_detach
 #23 cxgbe_detach
 #24 DEVICE_DETACH

MFC after:	3 days
Sponsored by:	Chelsio Communications
Add this branch to the list just to test it.
Implement a full cross-build matrix using all supported Clang versions
using the latest versions of GitHub-hosted runners.

The following additional changes were made:

- Split the "Create environment" step, one for each OS.  Though, more
  verbose, it facilitates customization and readability.
- The mechanism to detect the number of processors was dropped to set a
  fixed number based on current GitHub runner's documentation [1].
- Consistent naming convention/capitalization.

[1]: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
Test displaying a matrix (e.g., useful when one of the builds fail for a
particular tuple of OS, architecture, and LLVM version).
It is bound to happen at some point.
@jlduran jlduran force-pushed the github-cross-build-full-matrix branch from 7aa78e4 to 0013cde Compare September 21, 2024 22:11
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.

1 participant