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


Reply via email to