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

Adding the assembly yeild command to support noop for ARM #421

Merged
merged 1 commit into from
Sep 26, 2024

Conversation

flynn378
Copy link
Contributor

This fixes and error when cross-compiling for ARM processors. The ARM asm equivalent to rep/nnop is yield.

Copy link
Member

@RalphSteinhagen RalphSteinhagen left a comment

Choose a reason for hiding this comment

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

@flynn378 thanks for this PR and making the checks on ARM. Much appreciated! 👍

@all-contributors please add @flynn378 for bug and maintenance

@RalphSteinhagen
Copy link
Member

RalphSteinhagen commented Sep 26, 2024

@all-contributors please add @flynn378 for bug and maintenance

@RalphSteinhagen RalphSteinhagen merged commit 1e41e38 into fair-acc:main Sep 26, 2024
10 of 11 checks passed
#elif defined(DISRUPTOR_CPU_ARM)
static void yieldProcessor() noexcept { asm volatile("yield"); }
#else
static void yieldProcessor() noexcept { asm volatile("rep\nnop"); }
Copy link
Contributor

Choose a reason for hiding this comment

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

Out of curiosity, are the tests working for you? I've tried this a half a year or soago on my M3 mac (Linux VM), but the tests took forever (like 30 minutes) to run, with many failing, so I didn't pursue this further, at the time.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am cross-compiling using Yocto. There were a few other issues that I worked around, but the fixes for them are too bad to use. I will probably create some issues for them soon. There are things like mtune native in some Cmakefiles for example. I also have a powerful laptop for building, I had to add a 64GB swap drive, in addition to 64GB of RAM to complete the build.

Copy link
Contributor

Choose a reason for hiding this comment

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

Actually I ran the tests again, and it looks much better now, only one failing test (qa_buffer), and all of them completing in a somewhat reasonable time (120s).

@RalphSteinhagen
Copy link
Member

@all-contributors please add @flynn378 for bug and maintenance

Copy link
Contributor

@RalphSteinhagen

I've put up a pull request to add @flynn378! 🎉

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.

3 participants