On Fri, Jun 21, 2013 at 02:52:25AM +0530, Naveen N. Rao wrote:Exactly, but mce_poll_banks also doesn't have bits set for banks on
which CMCI is enabled.
Let's say we have a cpu with 2 banks (not shared), none of which work
in FF mode. Both these banks support CMCI, so mce_poll_banks won't
have these bits set.
On cpu offline, we call cmci_clear() which disables CMCI on these two
banks before offlining it. When this cpu is brought online again, we
call cmci_discover() which sees that mce_poll_banks doesn't have these
two banks enabled and will skip enabling CMCI thinking these are in
Hmm, mce_intel has yet another bitfield - mce_banks_owned. (Btw, this is
why I have a problem with adding yet another bitfield).
The way I understand it is, if a bit is set in the owned bitfield, those
banks belong to CMCI and are not polled.
Now, can we use both mce_banks_owned and mce_poll_banks? If a bit in
both bifields is cleared, the corresponding bank is not polled *and* is
not owned by CMCI => it is in FF mode.