On 11/04/2019 11:55, Jan Beulich wrote:
>>>> On 11.04.19 at 12:47, <andrew.coop...@citrix.com> wrote:
>> On 11/04/2019 11:45, Jan Beulich wrote:
>>> @@ -648,6 +646,8 @@ static int cpu_callback(
>>>      case CPU_UP_CANCELED:
>>>      case CPU_DEAD:
>>>      case CPU_RESUME_FAILED:
>>> +        migrate_timers_from_cpu(cpu);
>>> +
>>>          if ( !park_offline_cpus && system_state != SYS_STATE_suspend )
>>>              free_percpu_timers(cpu);
>>>          break;
>> I'm pretty sure you also need a call in the REMOVE_CASE.  The cpu comes
>> online for long enough to potentially gain a timer.
> What do you mean by "comes online for long enough"? There's
> no call site for the notifier with CPU_REMOVE right now, so what
> the eventual behavior is going to be is simply unknown. I for one
> don't expect the CPU to be brought back up again in that case.
> I'm wondering if you're mixing this up with CPU_RESUME_FAILED.

Now I'm even more confused, but yes clearly - it wasn't the CPU_REMOVE case.

That said, by making this adjustment, you are now liable to hit an
assertion in the REMOVE case, which on a release build will result in
complete memory corruption, as it frees an in-use datastructure.

~Andrew

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

Reply via email to