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
Suspected problem in the Zephyr SDK 0.16.1 ARC 64 compiler or QEMU #61087
Comments
Hi @peter-mitsis, I'll look into the issue, but may I firstly ask you to check (preferably with same Zephyr binary) if this is still an issue when you are using updated ARC QEMU from zephyrproject-rtos/sdk-ng#692. There are lot's of fixes (including fix of buggy delay slot implementation which was causing multiple tricky runtime isssues). You can download SDK with this update from artefacts (https://github.com/zephyrproject-rtos/sdk-ng/suites/14655986494/artifacts/831708523) or you can download only hosttools (https://github.com/zephyrproject-rtos/sdk-ng/suites/14655986494/artifacts/831708481) Thanks! |
@evgeniy-paltsev - I downloaded and installed the SDK as indicated and set ZEPHYR_SDK_INSTALL_DIR to point the installation and re-ran the test. With that particular SDK, it could not find QEMU, so I manually ran the zephyr.elf generated with the downloaded SDK on the 0.16.1 QEMU for arc64. In this hybrid setup, I observed the same original error. |
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in #61087. Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
Changing the name of the routine test_obj_core_stats_deregister() to something shorter (test_obj_core_stats_dereg) has been found to be a workaround to the issue identified in zephyrproject-rtos#61087. (cherry picked from commit 13712db) Original-Signed-off-by: Peter Mitsis <peter.mitsis@intel.com> GitOrigin-RevId: 13712db Change-Id: I1af5821d36701c0a04f5b098c417b65290bab6f7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/zephyr/+/4906990 Reviewed-by: Fabio Baltieri <fabiobaltieri@google.com> Commit-Queue: Fabio Baltieri <fabiobaltieri@google.com> Tested-by: ChromeOS Prod (Robot) <chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com> Tested-by: Fabio Baltieri <fabiobaltieri@google.com>
This issue has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this issue will automatically be closed in 14 days. Note, that you can always re-open a closed issue at any time. |
Fixed with Zephyr-sdk 0.16.3 |
Tests introduced as part of PR #59075 (Introducing Object Cores) have been failing in an unusual manner on the qemu_arc_hs6x board. After an otherwise successful test run, the obj_core_stats_api test fails with the following error message being reported.
Observed Error
To duplicate
west build -p -b qemu_arc_hs6x ./tests/kernel/obj_core/obj_core_stats_api/ -t run
Zephyr SDK Version: 0.16.1
Host machine: Ubuntu 22.04
The adventure so far ...
This error message comes from the ztest routine ztest_verify_all_test_suites_ran() in subsys/testsuite/ztest/src/ztest_new.c after the call to
ztest_find_test_suite(test->test_suite_name);
returns NULL. For convenience, the relevant code is pasted below.Adding
printk("'%s'(%p) vs '%s'(%p)\n", name, name, node->name, node->name);
within ztest_find_test_suite() shows the following when the test is executed ...The address 0x804075d0 is of particular significance. It corresponds to _ztest_unit_test_list_end -- the address used in the comparison that terminates the for-loop that has been pasted above.
Getting down into the generated assembly, we can observe the following ...
I am interpreting the above as indicating that register R0 contains the parameter to ztest_find_test_suite() which on the first pass is
_ztest_unit_test_list_end
(something consistent with the previous observations). Today is admittedly the first day that I have tried my hand at parsing ARC64 assembly, so there are likely subtleties of which I am unaware. That being said, the instructions at addresses 0x80402126 and 0x8040212a to my eye look like candidates for being out-of-order (either being placed out of order by the compiler, or via QEMU being executed out of order).Additional Note
Although I have note included the details here, I have observed that if I place a printk() statement before the call to ztest_find_test_suite(), that the tests pass.
The text was updated successfully, but these errors were encountered: