-
Notifications
You must be signed in to change notification settings - Fork 3.3k
CI: Run on AArch64 and RISC-V in CI #26467
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
base: master
Are you sure you want to change the base?
Conversation
LucasChollet
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice!
|
|
||
| Service::~Service() | ||
| { | ||
| if (m_pid == -1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For a multi-instance services m_pid == -1 but you will still want to remove the notifier_socker, right?
Sorry, I don't have time to look more into this right now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you think of this new approach of storing a SocketDescriptor::was_created flag?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you can use m_fd == -1 to get the same result.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
socket.fd is set before creating the socket file and setup_socket can still fail before running bind(), which creates the file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh right, my bad!
dde94c9 to
e09d5c4
Compare
This mostly inserts some white space, since there currently was none.
I/O BARs are mapped to MMIO on devicetree systems.
We were previously relying on system firmware setting this command register bit.
Instead of always using PCI serial devices for console output, make them usable for other purposes by only enabling kernel log output when 'pci_serial_debug' is passed.
This if is always True since config.machine_type can't be both a Raspberry Pi machine and MachineType.CI. This code is a leftover from using the QEMU raspi3b machine in CI.
On AArch64 and RISC-V we need to use two serial ports (the built-in one and now additionally a PCI-connected one) because QEMU doesn't have something similar to the x86 isa-debugcon for these architectures.
This can happen if the service has never been started, if it is disabled.
Using remove() is unnecessary since sockets should never be directories. Also improve the debug message while here to make it clearer where this error comes from.
Similar to AArch64, multiple test currently fail on RISC-V, mostly due to inaccurate math functions. However, we still want to run RISC-V in CI to ensure that we don't break running SerenityOS on this architecture.
Running tests is still disabled until we fix all tests on these architectures.
e09d5c4 to
80d5847
Compare
Running AArch64 in CI was previously disabled 2 years ago in d8f84ef.
AArch64 should hopefully be more stable now, so try to re-enable running AArch64 in CI.
This time using the
virtmachine instead of a RPi machine. Making our on-target test infrastructure work on this machine type required some more patches to enable PCI serial support on non-x86.Additionally, RISC-V support should now be stable enough that we can try running it CI as well.
But still don't run any tests until we fix them on these architectures.