On Fri, 29 Oct 2021 12:51:27 -0700 Dan Williams <dan.j.williams@xxxxxxxxx> wrote: > Hi Rafael, > > While reviewing "[PATCH v3] ACPI: NUMA: Add a node and memblk for each > CFMWS not in SRAT" [1]. I noticed that it was open coding CEDT sub-table > parsing in a similar fashion as drivers/cxl/acpi.c. The driver open > coded the parsing because the ACPI sub-table helpers are marked __init. > In order to avoid the ongoing maintenance burden of a split between > "early" and "late" ACPI sub-table parsing this series proposes to make > those helpers available to drivers. > > The savings in drivers/cxl/ are: > > drivers/cxl/Kconfig | 1 > drivers/cxl/acpi.c | 234 +++++++++++++++++++-------------------------------- > 2 files changed, 88 insertions(+), 147 deletions(-) > > ...and 15 lines new code not added are saved in this new version of > "ACPI: NUMA: Add a node and memblk for each CFMWS not in SRAT". > > Let me know if this looks ok to you and I can carry it in the CXL tree > (i.e. after the merge window, for v5.17 consideration). > > [1]: https://lore.kernel.org/r/20211019050908.449231-1-alison.schofield@xxxxxxxxx Is it worth the complexity of the __init_or_acpilib and export part? Seems like a fiddly dance for what looks to be minor savings... Jonathan > > --- > > Alison Schofield (1): > ACPI: NUMA: Add a node and memblk for each CFMWS not in SRAT > > Dan Williams (5): > ACPI: Keep sub-table parsing infrastructure available for modules > ACPI: Teach ACPI table parsing about the CEDT header format > ACPI: Add a context argument for table parsing handlers > cxl/acpi: Convert CFMWS parsing to ACPI sub-table helpers > cxl/test: Mock acpi_table_parse_cedt() > > > drivers/acpi/Kconfig | 3 + > drivers/acpi/numa/srat.c | 59 ++++++++++ > drivers/acpi/tables.c | 87 +++++++++++---- > drivers/cxl/Kconfig | 1 > drivers/cxl/acpi.c | 237 ++++++++++++++++------------------------- > include/linux/acpi.h | 34 +++++- > tools/testing/cxl/Kbuild | 3 - > tools/testing/cxl/test/cxl.c | 68 ++++++++---- > tools/testing/cxl/test/mock.c | 30 ++--- > tools/testing/cxl/test/mock.h | 6 + > 10 files changed, 304 insertions(+), 224 deletions(-) > > base-commit: c6d7e1341cc99ba49df1384c8c5b3f534a5463b1