Re: [PATCH] x86, MCE: Kill CPU_POST_DEAD

From: Srivatsa S. Bhat
Date: Thu May 22 2014 - 17:41:53 EST


On 05/23/2014 03:01 AM, Borislav Petkov wrote:
> On Fri, May 23, 2014 at 02:43:31AM +0530, Srivatsa S. Bhat wrote:
>>>> After you move the cmci_rediscover() call, it is now in a place where we are
>>>> no longer ignoring frozen (i.e. the old placement did the rediscover even if the
>>>> CPU_TASKS_FROZEN bit was set - with the new placement we will skip rediscovery.
>>>>
>>
>> That's not quite true. The existing code already ignores FROZEN for all the cases,
>> by ignoring it at the top of the switch-case itself:
>
> No, Tony's right and you got confused:
>
> Before my change, the code did:
>
> if (action == CPU_POST_DEAD) {
> /* intentionally ignoring frozen here */
> cmci_rediscover();
> }
>
> which is only CPU_POST_DEAD *without* the CPU_TASKS_FROZEN bit.
>
> If I move it in the switch-case, cmci_rediscover() *ignores the FROZEN
> bit and gets executed for both:
>
> CPU_DEAD:
> CPU_DEAD_FROZEN:
>
> because with the FROZEN bit masked out, they're the same.
>
> But we don't want to execute it for the FROZEN bit - look for the other
> two tests for CPU_TASKS_FROZEN in mce.c for an example.
>
> So, before we go and change the FROZEN aspect and break things in
> strange ways, let's keep the _FROZEN ignore. I certainly don't want to
> go down that road and chase why we needed FROZEN or not.
>
> Ok?
>

Right, I got confused about who meant what by the term 'ignore' -
ignore the FROZEN _bit_ as in execute all the time irrespective of that
bit being set or unset, or ignore the FROZEN _case_ as in don't execute
during suspend/resume.

Anyway, sorry for the confusion! Your latest code looks correct to me.

Regards,
Srivatsa S. Bhat

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/