> -----Original Message-----
> From: Borislav Petkov <[email protected]>
> Sent: Tuesday, April 9, 2019 3:34 PM
> To: Ghannam, Yazen <[email protected]>
> Cc: [email protected]; [email protected]; 
> [email protected]; [email protected]
> Subject: Re: [PATCH RESEND 2/5] x86/MCE: Handle MCA controls in a per_cpu way
> 
> On Mon, Apr 08, 2019 at 06:55:59PM +0000, Ghannam, Yazen wrote:
> > We already have the case where some banks are not initialized either
> > due to quirks or because they are Read-as-Zero, but we don't try to
> > skip creating their files. With this full set (see patch 5), an unused
> > bank will return a control value of 0.
> 
> So set_bank() is changed to do:
> 
> @@ -2088,7 +2097,7 @@ static ssize_t set_bank(struct device *s, struct 
> device_attribute *attr,
>         if (kstrtou64(buf, 0, &new) < 0)
>                 return -EINVAL;
> 
> -       if (bank >= mca_cfg.banks)
> +       if (bank >= per_cpu(num_banks, s->id))
>                 return -EINVAL;
> 
> 
> How would that work if the disabled/not-present bank is in the middle?
> The old example: bank3 on CPU5.
> 
> > Would that be sufficient to indicate that a bank is not used?
> 
> Well, it should not allow for any control bits to be set and it should
> have the proper bank number.
> 

We have this case on AMD Family 17h with Bank 4. The hardware enforces this 
bank to be Read-as-Zero/Writes-Ignored.

This behavior is enforced whether the bank is in the middle or at the end.

> > But I do have a couple of thoughts:
> 
> > 1) Will missing banks confuse users? As mentioned, we already have the
> > case of unused/uninitialized banks today, but we don't skip their file
> > creation. a) Will this affect any userspace tools?
> 
> I guess it would be easier if we keep creating all files but denote properly
> which banks are disabled.
> 

I'm thinking to redo the sysfs interface for banks in another patch set. I 
could include a new file to indicate enabled/disabled, or maybe just update the 
documentation to describe this case.

Thanks,
Yazen

Reply via email to