mbox series

[v2,00/22] AMD64 EDAC Cleanup and Refactor

Message ID 20230127170419.1824692-1-yazen.ghannam@amd.com (mailing list archive)
Headers show
Series AMD64 EDAC Cleanup and Refactor | expand

Message

Yazen Ghannam Jan. 27, 2023, 5:03 p.m. UTC
Hi Boris,

This set removes a good amount of code that is no longer useful. Also,
this set splits the module initialization more clearly between legacy
and modern systems. The original intention was to prep for adding GPU
support, but I think the split is worthwhile on its own.

Patches 1-4 remove useless code for Family 17h and later systems.

Patch 5 removes code that is no longer needed for all systems.

Patches 6-22 merge, split, and rename various functions and structures
to have clear legacy and modern initialization paths. A future patch
set will add a third "GPU" path.

The basis of the first revision of this set was to make a function
pointer for each legacy/modern split in the code path. This resulted in
16 function pointers. And, in my mind, it was still hard to follow.

The basis of this revision is to diverge early during initialization,
and then follow separate paths. This results in 7 functions pointers
including 2 used only for legacy systems and 1 used only for modern
systems. I think this is much easier to follow as each path has a clear
set of helper functions.

Also, I dropped a lot of the boiler plate commit messages. Most are now
fairly terse though I did try to add extra details in some cases.

Thanks!

-Yazen

Link:
https://lore.kernel.org/r/20220509145534.44912-1-yazen.ghannam@amd.com

Muralidhara M K (11):
  EDAC/amd64: Merge struct amd64_family_type into struct amd64_pvt
  EDAC/amd64: Split prep_chip_selects() into dct/umc functions
  EDAC/amd64: Split read_base_mask() into dct/umc functions
  EDAC/amd64: Split determine_memory_type() into dct/umc functions
  EDAC/amd64: Split read_mc_regs() into dct/umc functions
  EDAC/amd64: Split ecc_enabled() into dct/umc functions
  EDAC/amd64: Split setup_mci_misc_attrs() into dct/umc functions
  EDAC/amd64: Split determine_edac_cap() into dct/umc functions
  EDAC/amd64: Split init_csrows() into dct/umc functions
  EDAC/amd64: Split dump_misc_regs() into dct/umc functions
  EDAC/amd64: Add get_err_info() to pvt->ops

Yazen Ghannam (11):
  EDAC/amd64: Don't set up EDAC PCI control on Family 17h+
  EDAC/amd64: Remove scrub rate control for Family 17h and later
  EDAC/amd64: Remove PCI Function 6
  EDAC/amd64: Remove PCI Function 0
  EDAC/amd64: Remove early_channel_count()
  EDAC/amd64: Rename debug_display_dimm_sizes()
  EDAC/amd64: Split get_csrow_nr_pages() into dct/umc functions
  EDAC/amd64: Drop dbam_to_cs() for Family 17h and later
  EDAC/amd64: Don't find ECC symbol size for Family 17h and later
  EDAC/amd64: Rework hw_info_{get,put}
  EDAC/amd64: Rename f17h_determine_edac_ctl_cap()

 drivers/edac/amd64_edac.c | 1221 ++++++++++++++-----------------------
 drivers/edac/amd64_edac.h |   89 +--
 2 files changed, 483 insertions(+), 827 deletions(-)

Comments

Borislav Petkov March 23, 2023, 11:01 a.m. UTC | #1
On Fri, Jan 27, 2023 at 05:03:57PM +0000, Yazen Ghannam wrote:
> Muralidhara M K (11):
>   EDAC/amd64: Merge struct amd64_family_type into struct amd64_pvt
>   EDAC/amd64: Split prep_chip_selects() into dct/umc functions
>   EDAC/amd64: Split read_base_mask() into dct/umc functions
>   EDAC/amd64: Split determine_memory_type() into dct/umc functions
>   EDAC/amd64: Split read_mc_regs() into dct/umc functions
>   EDAC/amd64: Split ecc_enabled() into dct/umc functions
>   EDAC/amd64: Split setup_mci_misc_attrs() into dct/umc functions
>   EDAC/amd64: Split determine_edac_cap() into dct/umc functions
>   EDAC/amd64: Split init_csrows() into dct/umc functions
>   EDAC/amd64: Split dump_misc_regs() into dct/umc functions
>   EDAC/amd64: Add get_err_info() to pvt->ops
> 
> Yazen Ghannam (11):
>   EDAC/amd64: Don't set up EDAC PCI control on Family 17h+
>   EDAC/amd64: Remove scrub rate control for Family 17h and later
>   EDAC/amd64: Remove PCI Function 6
>   EDAC/amd64: Remove PCI Function 0
>   EDAC/amd64: Remove early_channel_count()
>   EDAC/amd64: Rename debug_display_dimm_sizes()
>   EDAC/amd64: Split get_csrow_nr_pages() into dct/umc functions
>   EDAC/amd64: Drop dbam_to_cs() for Family 17h and later
>   EDAC/amd64: Don't find ECC symbol size for Family 17h and later
>   EDAC/amd64: Rework hw_info_{get,put}
>   EDAC/amd64: Rename f17h_determine_edac_ctl_cap()
> 
>  drivers/edac/amd64_edac.c | 1221 ++++++++++++++-----------------------
>  drivers/edac/amd64_edac.h |   89 +--
>  2 files changed, 483 insertions(+), 827 deletions(-)

All small issues fixed up and applied.

Thx.
Yazen Ghannam March 23, 2023, 3:19 p.m. UTC | #2
On Thu, Mar 23, 2023 at 12:01:50PM +0100, Borislav Petkov wrote:
> On Fri, Jan 27, 2023 at 05:03:57PM +0000, Yazen Ghannam wrote:
> > Muralidhara M K (11):
> >   EDAC/amd64: Merge struct amd64_family_type into struct amd64_pvt
> >   EDAC/amd64: Split prep_chip_selects() into dct/umc functions
> >   EDAC/amd64: Split read_base_mask() into dct/umc functions
> >   EDAC/amd64: Split determine_memory_type() into dct/umc functions
> >   EDAC/amd64: Split read_mc_regs() into dct/umc functions
> >   EDAC/amd64: Split ecc_enabled() into dct/umc functions
> >   EDAC/amd64: Split setup_mci_misc_attrs() into dct/umc functions
> >   EDAC/amd64: Split determine_edac_cap() into dct/umc functions
> >   EDAC/amd64: Split init_csrows() into dct/umc functions
> >   EDAC/amd64: Split dump_misc_regs() into dct/umc functions
> >   EDAC/amd64: Add get_err_info() to pvt->ops
> > 
> > Yazen Ghannam (11):
> >   EDAC/amd64: Don't set up EDAC PCI control on Family 17h+
> >   EDAC/amd64: Remove scrub rate control for Family 17h and later
> >   EDAC/amd64: Remove PCI Function 6
> >   EDAC/amd64: Remove PCI Function 0
> >   EDAC/amd64: Remove early_channel_count()
> >   EDAC/amd64: Rename debug_display_dimm_sizes()
> >   EDAC/amd64: Split get_csrow_nr_pages() into dct/umc functions
> >   EDAC/amd64: Drop dbam_to_cs() for Family 17h and later
> >   EDAC/amd64: Don't find ECC symbol size for Family 17h and later
> >   EDAC/amd64: Rework hw_info_{get,put}
> >   EDAC/amd64: Rename f17h_determine_edac_ctl_cap()
> > 
> >  drivers/edac/amd64_edac.c | 1221 ++++++++++++++-----------------------
> >  drivers/edac/amd64_edac.h |   89 +--
> >  2 files changed, 483 insertions(+), 827 deletions(-)
> 
> All small issues fixed up and applied.
>

Thank you!

-Yazen