Juergen,
> On 13.03.25 07:51, Choi, Anderson wrote:
>> We are observing an incorrect or unexpected behavior with ARINC653
> scheduler when we set up multiple ARINC653 CPU pools and assign a
> different number of domains to each CPU pool.
>
> ...
>
>> It seems there's a corner condition in using the global variables
>> "sched_index"
> and "next_switch_time" when multiple ARINC653 cpupools are running on
> different physical CPUs
>>
>> The variables sched_index and next_switch_time are defined as static
>> at xen/common/sched/arinc653.c as shown below.
>>
>> static void cf_check
>> a653sched_do_schedule(
>> const struct scheduler *ops, struct sched_unit *prev, s_time_t
>> now, bool tasklet_work_scheduled) { struct sched_unit *new_task =
>> NULL; static unsigned int sched_index = 0; <== static s_time_t
>> next_switch_time; <==
>
> Thanks for the report!
>
> Could you please verify the attached patch is fixing your problem?
>
> And please tell me whether adding you as "Reported-by:" is fine with you!
>
> Juergen
Thanks for the quick patch. I have verified the patch fixes the issue and I can
see domains are running at the programmed interval.
And I am totally fine with "Reported-by".
May I know when you think it would be mainlined? And will it be applied to all
branches, like 4.19 and 4.20?
Regards,
Anderson