• Akshay Gupta's avatar
    x86/mce: Increase maximum number of banks to 64 · a0bc32b3
    Akshay Gupta authored
    ...because future AMD systems will support up to 64 MCA banks per CPU.
    
    MAX_NR_BANKS is used to allocate a number of data structures, and it is
    used as a ceiling for values read from MCG_CAP[Count]. Therefore, this
    change will have no functional effect on existing systems with 32 or
    fewer MCA banks per CPU.
    
    However, this will increase the size of the following structures:
    
    Global bitmaps:
    - core.c / mce_banks_ce_disabled
    - core.c / all_banks
    - core.c / valid_banks
    - core.c / toclear
    - Total: 32 new bits * 4 bitmaps = 16 new bytes
    
    Per-CPU bitmaps:
    - core.c / mce_poll_banks
    - intel.c / mce_banks_owned
    - Total: 32 new bits * 2 bitmaps = 8 new bytes
    
    The bitmaps are arrays of longs. So this change will only affect 32-bit
    execution, since there will be one additional long used. There will be
    no additional memory use on 64-bit execution, because the size of long
    is 64 bits.
    
    Global structs:
    - amd.c / struct smca_bank smca_banks[]: 16 bytes per bank
    - core.c / struct mce_bank_dev mce_bank_devs[]: 56 bytes per bank
    - Total: 32 new banks * (16 + 56) bytes = 2304 new bytes
    
    Per-CPU structs:
    - core.c / struct mce_bank mce_banks_array[]: 16 bytes per bank
    - Total: 32 new banks * 16 bytes = 512 new bytes
    
    32-bit
    Total global size increase: 2320 bytes
    Total per-CPU size increase: 520 bytes
    
    64-bit
    Total global size increase: 2304 bytes
    Total per-CPU size increase: 512 bytes
    
    This additional memory should still fit within the existing .data
    section of the kernel binary. However, in the case where it doesn't
    fit, an additional page (4kB) of memory will be added to the binary to
    accommodate the extra data which will be the maximum size increase of
    vmlinux.
    Signed-off-by: default avatarAkshay Gupta <Akshay.Gupta@amd.com>
    [ Adjust commit message and code comment. ]
    Signed-off-by: default avatarYazen Ghannam <yazen.ghannam@amd.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Link: https://lkml.kernel.org/r/20200828192412.320052-1-Yazen.Ghannam@amd.com
    a0bc32b3
mce.h 12.3 KB