Skip to content

Conversation

@spholz
Copy link
Member

@spholz spholz commented Dec 6, 2025

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 virt machine 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.

@github-actions github-actions bot added the 👀 pr-needs-review PR needs review from a maintainer or community member label Dec 6, 2025
Copy link
Member

@LucasChollet LucasChollet left a 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)
Copy link
Member

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.

Copy link
Member Author

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?

Copy link
Member

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.

Copy link
Member Author

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.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh right, my bad!

@spholz spholz force-pushed the kernel-pci-non-x86-io-bar branch from dde94c9 to e09d5c4 Compare December 7, 2025 11:02
spholz added 12 commits December 7, 2025 12:04
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.
@spholz spholz force-pushed the kernel-pci-non-x86-io-bar branch from e09d5c4 to 80d5847 Compare December 7, 2025 11:05
@spholz spholz changed the title CI: Run on Arch64 and RISC-V in CI CI: Run on AArch64 and RISC-V in CI Dec 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

👀 pr-needs-review PR needs review from a maintainer or community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants