On 08/04/2019 12:38, Julien Grall wrote:
> Hi,
>
> On 4/8/19 11:47 AM, Andrew Cooper wrote:
>> On 08/04/2019 11:39, Julien Grall wrote:
>>> Hi,
>>>
>>> On 4/8/19 10:39 AM, Andrew Cooper wrote:
>>>> +    case CPU_RESUME_FAILED:
>>>> +        if ( !park_offline_cpus && system_state !=
>>>> SYS_STATE_suspend )
>>>
>>> This patch breaks compilation on arm32/arm64 because park_offline_cpus
>>> is not defined:
>>>
>>> timer.c: In function 'cpu_callback':
>>> timer.c:651:15: error: 'park_offline_cpus' undeclared (first use in
>>> this function)
>>>           if ( !park_offline_cpus && system_state !=
>>> SYS_STATE_suspend )
>>>                 ^~~~~~~~~~~~~~~~~
>>>
>>> What is the purpose of park_offline_cpus?
>>
>> Sorry.  I should have waited for a full build test first.
>>
>> park_offline_cpus is a workaround for Intel's MCE behaviour, where the
>> system will shut down rather than deliver an #MC if machine checking
>> isn't configured on all CPUs.
>>
>> As a result, we have to start all CPUs, even beyond maxcpus= and set up
>> machine check handling, and never ever free their stacks, even if we'd
>> prefer the CPUs to be offline.
>
> I am a bit confused, why this is necessary now for the timer and not
> in other places of the common code?
>
>>
>> Are you happy with a
>>
>> #define park_offline_cpus false >
>> in ARM?
>
> The name is fairly confusing if you don't know the background.
>
> But I have to admit that even with your explanation above, I still
> don't understand why you need to check park_offline_cpus in the timers.

It is all to do with how/when we free per-cpu data.

Technically speaking (with the memory leak fixed) the old arrangement
ought to function correctly, but the new arrangement is more efficient.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to