When test tests/kernel/sched/schedule_api, it shows "ASSERTION FAIL: timeslice in ticks much be divisible by two", then break and fail the test. Fixes #44887. On board it8xxx2_evb, it can pass schedule_api test without the assertion, so I add the floating part back to half_slice_cyc when the timeslice in ticks can't be divisible by two. After change, the time slice will be: 1.slice_ticks = (200x8192+999)/1000 = 1639 (not changed) 2.before add the deviation (not handle the floating part): half_slice_cyc = (1639/2) * (32768/8192) = (819) * (32768/8192) = 3276, after add the deviation: half_slice_cyc = 3276 + (32768/8192/2) = 3278, and it's equal (1639/2) * (32768/8192) = 3278. Verified by test pattern: west build -p always -b it8xxx2_evb tests/kernel/sched/schedule_api Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw> |
||
|---|---|---|
| .. | ||
| deadline | ||
| metairq | ||
| preempt | ||
| schedule_api | ||