-
Notifications
You must be signed in to change notification settings - Fork 61
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
hifive on MSC+SMP too often fails IPC0001 #64
Comments
Instead of "too often", I should say "almost always". I think I have seen it pass once, but some other board had a problem for that test run. |
Just confirming that this is indeed related to the build environment. The tests pass fine for the same configuration if the image was built with the old docker images. |
So, it looks like something might actually be properly broken in SMP on RISCV: I've upgraded to gcc-11 temporarily, and now we're getting a consistent failure (timeout) on We also have Here is an example run. The docker container with gcc 11.1.0 for riscv64 is |
I think this issue is because on SMP there is a chance that the kernel thinks the HART ID for HART 1 is actually HART 0 on the hifive because of this line: https://github.com/seL4/seL4_tools/blob/master/elfloader-tool/src/arch-riscv/crt0.S#L92 which should be CONFIG_FIRST_HART_ID instead of 0, and I think that the comment should refer to a0 instead of a1. |
Very nice find! |
This is a bit wrong. The cause of the test failure is due to the elfloader thinking that one of the cores has hart ID 0 when the valid range of IDs that can run in smode is 1-4 inclusive. At some point the ID gets lost:
And when it works:
This corruption is due to register seL4/seL4_tools#135 solves this issue as it sets the stack pointer before |
There are more issues with the multicore boot when switching the hart actually. I've tried to fix them in the last commit in seL4/seL4_tools#132 and will put this on top of seL4/seL4_tools#135 becuase the fix for the stack setup comes handy then also. |
I moved the changes to resolve early boot issues into it's own PR: seL4/seL4_tools#136 |
This should now be resolved. |
Yes, tests on the hifive seem to be running smoothly now again. Thanks for figuring that one out! |
The config
HIFIVE_verification_SMP_MCS_gcc_64
seem to now very often fail the testIPC0001
by hanging at that test.This may be a result of the new build environment with downgrades riscv-gcc from version 10 to version 8 (as opposed to the upgrade from 8 to 10 on all other platforms).
The other configurations on hifive pass and this configuration passes on other boards.
For a sample, see https://github.com/seL4/seL4/runs/4494651972?check_suite_focus=true#step:4:12004
The text was updated successfully, but these errors were encountered: