summaryrefslogtreecommitdiff
path: root/src/utest/smp
AgeCommit message (Collapse)Author
2026-06-17fix: stabilize smp_bind_affinity_tc on SMP CIGuEe-GUI
This change fixes intermittent failures of the `core.smp_bind_affinity` utest across SMP CI targets. The original failure was a flaky assertion on unbound threads (`thread_inc[x] != thread_tic[x]` in thread_entry), not incorrect bind_cpu behavior. CI logs already showed T0 binding worked (thread_inc[0] == thread_tic[0] == 100) while the not_equal check failed. The root issue is that unbound-thread CPU placement is platform-dependent and outside the bind_cpu contract. On dual-core RISC-V/ARMv7 CI, an unbound thread may legitimately run all iterations on core 0 while T0 delays on the same core, so any assertion requiring cross-core migration (thread_inc != thread_tic, or core_mask with multiple bits) remains flaky. This patch narrows the test to what bind_affinity actually verifies: T0 bound to core 0 must always execute on core 0. Unbound threads only add scheduling pressure; their core_mask is printed for observation but not asserted. Changes: - Sample `rt_hw_cpu_id()` and update counters under `rt_sched_lock` to avoid migration skew between counting and CPU sampling. - Track `thread_core_mask` for diagnostics; assert only T0 binding via `thread_inc[0] == thread_tic[0]` and `thread_core_mask[0] == 1`. - Remove flaky unbound-thread assertions (`thread_inc != thread_tic` and multi-core core_mask checks). - Move T0 assertions to the main test thread after all workers finish. - Use atomic `finsh_flag`; reset counters and `threads[]` in `utest_tc_init`. - Spin in worker loops after `run_num` until cleanup deletes them (do not return from thread_entry or use `RT_WAITING_FOREVER` with `rt_thread_delay`). - Guard `rt_thread_delete` in cleanup with non-NULL checks. Signed-off-by: GuEe-GUI <[email protected]>
2026-06-08[bsp][zynqmp-a53-dfzu2eg] enable full dmGuEe-GUI
This is a builtin fdt example BSP Signed-off-by: GuEe-GUI <[email protected]>
2025-12-11 [utest][smp]Add descriptions for the SMP test cases (interrupt_pri and ↵Teng mengchen
spinlock) #11011
2025-12-10[docs][utest]:Add comments for smp_thread_preemptionTm-C-mT
Add comments for smp_thread_preemption. Signed-off-by: Mengchen Teng <[email protected]>
2025-12-10[utest]:Modify the execution logic of smp_thread_preemptionsTm-C-mT
Currently, the print information of this test case fails to demonstrate that the high-priority thread has preempted the low-priority thread. This is because when the high-priority thread prints the thread list, there is no information about the low-priority thread (tlow), as tlow has already completed execution and been destroyed. Therefore, the current execution logic cannot confirm the successful completion of the preemption operation. Solution: After the low-priority thread (tlow) releases the lock, add a busy-wait loop while(!finish_flag);. At this point, when the high-priority thread (thigh) prints the thread list information, tlow can be observed in the ready state, indicating that it has been preempted by thigh. Signed-off-by: Mengchen Teng <[email protected]>
2025-12-04[utest]: Solve the address misalignment issue of atomic operationsTm-C-mT
In smp_assigned_idle_cores_tc, the finish_flag involves atomic operations and thus requires address alignment. Signed-off-by: Mengchen Teng <[email protected]>
2025-11-26[docs][utest]:Add comments for smp_bind_affinityTm-C-mT
Add comments for smp_bind_affinity, And fixed some comment issues in smp_affinity_pri2_tc. Signed-off-by: Mengchen Teng <[email protected]>
2025-11-26[docs][utest]:Add comments for smp_affinity_pri2Tm-C-mT
Add comments for smp_affinity_pri2 Signed-off-by: Mengchen Teng <[email protected]>
2025-11-26[docs][utest]:Add comments for smp_affinity_pri1Tm-C-mT
Add comments for smp_affinity_pri1 Signed-off-by: Mengchen Teng <[email protected]>
2025-11-19[docs][utest]:Add explanatory comments for the utest of thread allocation ↵Tm-C-mT
for idle harts Add explanatory comments for the utest of smp_assigned_idle_cores. Signed-off-by: Mengchen Teng <[email protected]>
2025-11-19[utest]: Modify the utest logic for thread allocation of idle hartsTm-C-mT
Currently, this utest cannot determine whether threads are evenly distributed across idle harts by observing the result of list_thread(). This is because the presence of rt_thread_delay(5); causes all other threads to be in the suspended state when thread information is printed. For example, if RT_CPUS_NR=4, T0 executes list_thread() to print information, while T1~T3 are in hibernation and thus it is impossible to observe which hart they are running on. Solution:Here, the completion judgment condition has been modified. For example, when RT_CPUS_NR=4, only RT_CPUS_NR-1 threads will be created (i.e., T0 to T2), because running the utest occupies one hart. The execution is judged as completed when finish_flag=0x0007, and the thread running the utest will call list_thread() to print the information. Observe whether T0 to T2 are running on different harts simultaneously. Signed-off-by: Mengchen Teng <[email protected]>
2025-11-18[utest]Fixed assertion failure in the smp_affinity_pri2_tc use case caused ↵R b b666
by improper priority configuration. (#10956)
2025-11-18[utest]Fixed assertion failure in the smp_affinity_pri1_tc use case caused ↵Rbb666
by improper priority configuration.
2025-11-18[utest]Fixed compilation warning issues in smp/smp_affinity_prix_tc.Rbb666
2025-10-16utest: Improve the strings displayed in the menuChen Wang
Use "Test" instead of "Unit Testcases" to make string shorter. Use uppercase to make it look more eye-catching. Signed-off-by: Chen Wang <[email protected]>
2025-10-15utest: UTEST_SMP_THREAD_PREEMPTION_TC -> RT_UTEST_SMP_THREAD_PREEMPTIONChen Wang
Signed-off-by: Chen Wang <[email protected]>
2025-10-15utest: UTEST_SMP_SPINLOCK_TC -> RT_UTEST_SMP_SPINLOCKChen Wang
Signed-off-by: Chen Wang <[email protected]>
2025-10-15utest: UTEST_SMP_INTERRUPT_PRI_TC -> RT_UTEST_SMP_INTERRUPT_PRIChen Wang
Signed-off-by: Chen Wang <[email protected]>
2025-10-15utest: UTEST_SMP_ASSIGNED_IDLE_CORE_TC -> RT_UTEST_SMP_ASSIGNED_IDLE_COREChen Wang
Signed-off-by: Chen Wang <[email protected]>
2025-10-15utest: UTEST_SMP_AFFFINITY_TC -> RT_UTEST_SMP_AFFFINITYChen Wang
Signed-off-by: Chen Wang <[email protected]>
2025-09-26utest: core: unify case namesChen Wang
Signed-off-by: Chen Wang <[email protected]>
2025-09-26utest: move core tesetcases under to directiry "src"Chen Wang
Signed-off-by: Chen Wang <[email protected]>