Messages in this thread | | | Date | Mon, 24 Aug 2020 10:11:05 -0500 | From | Yazen Ghannam <> | Subject | Re: [PATCH] x86/mce: Increase maximum number of banks to 64 |
| |
On Thu, Aug 20, 2020 at 06:15:15PM +0000, Luck, Tony wrote: > >> How much does vmlinux size grow with your change? > >> > > > > It seems to get smaller. > > > > -rwxrwxr-x 1 yghannam yghannam 807634088 Aug 20 17:51 vmlinux-32banks > > -rwxrwxr-x 1 yghannam yghannam 807634072 Aug 20 17:50 vmlinux-64banks > > You need to run: > > $ size vmlinux > text data bss dec hex filename > 20334755 12569682 14798924 47703361 2d7e541 vmlinux > > Likely the extra space is added to the third element ("bss"). That doesn't show > up in the vmlinux file, but does add to memory footprint while running.
Thanks. Yeah, they're identical: text data bss dec hex filename 15710076 13519306 5398528 34627910 2106146 vmlinux-32banks 15710076 13519306 5398528 34627910 2106146 vmlinux-64banks
I did a quick audit of the statically allocated data structures which use MAX_NR_BANKS.
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 (I assume), 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
Is this okay?
Thanks, Yazen
| |