Re: [PATCH 2/6] x86-mce: Modify CMCI storm exit to reenable instead of rediscover banks.

From: Havard Skinnemoen
Date: Wed Jul 09 2014 - 17:34:44 EST


On Wed, Jul 9, 2014 at 1:20 PM, Luck, Tony <tony.luck@xxxxxxxxx> wrote:
>> The CMCI storm handler previously called cmci_reenable() when exiting a
>> CMCI storm. However, when entering a CMCI storm the bank ownership was
>> not relinquished by the affected CPUs. The CMCIs were only disabled via
>> cmci_storm_disable_banks(). The handler was updated to instead call a
>> new function, cmci_storm_enable_banks(), to reenable CMCI on the already
>> owned banks instead of rediscovering CMCI banks (which were still owned
>> but disabled).
>
> Won't this cause problems if we online a cpu during the storm. We will
> re-run the discovery algorithm and some other cpu that shares the bank
> will see MCi_CTL2{30} is zero and claim ownership.

Yes, I think you're right. We didn't test this with CPU hotplugging.

I'm at loss about how to fix it though. We need the CMCI bits to
detect shared banks, but they're not reflecting the actual state of
things at that point. If the CPU gives up ownership of the banks, then
we might just see the storm move from CPU to CPU, right?

We could keep a separate bitmask somewhere to indicate ownership, but
even if we can see that the bank is shared with some other CPU, we
don't know if it will be shared with a new CPU which we've never seen
before...

Perhaps we need to temporarily disable the storm handling when we're
bringing up a new CPU?

Havard
--
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/