Messages in this thread | | | Date | Fri, 23 May 2014 03:10:33 +0530 | From | "Srivatsa S. Bhat" <> | Subject | Re: [PATCH] x86, MCE: Kill CPU_POST_DEAD |
| |
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
| |