mbox series

[v3,0/4] acpi: Add CDAT parsing support to ACPI tables code

Message ID 168565502116.1098279.131831312990693128.stgit@djiang5-mobl3
Headers show
Series acpi: Add CDAT parsing support to ACPI tables code | expand

Message

Dave Jiang June 1, 2023, 9:31 p.m. UTC
v3:
- Move common code to lib/fw_table.c
v2:
- Split out with CONFIG_ACPI_TABLES_LIB to be independent
- Fixed 0-day issues
- Change CDAT releveant names to prefix with cdat/CDAT instead of
  acpi/ACPI. (Jonathan)
- Make table_header a union with cdat table header instead of
  'acpi_table_header'. (Jonathan)
- Removed ACPI_SIG_CDAT, already defined.

Hi Rafael,
Please consider ack these patches. Dan can take these through the CXL tree. After
attempting to rename the cxl_ prefixes of functions and non ACPICA data structures
to something more common, it seems that significant amount of ACPI code would be
touched for the rename. For this series I left it alone in order to have the minimal
changes to ACPI code.

I've broken out the "cxl: Add support for QTG ID retrieval for CXL subsystem" [1]
series in order to make it more manageable. Here's the first part of the ACPI
changes. These changes are added to allow reuse of ACPI tables code to parse
the CDAT tables. While CDAT is not part of ACPI, the table structures are similar
to ACPI layouts that the code can be reused with some small modifications.

However, in order to be properly utilized by CXL users, the tables code needs
to be refactored out to be independent of ACPI. For example, a PPC BE host may
have CXL and does not have ACPI support. But it will have CDAT to read from
devices and switches. I have created CONFIG_ACPI_TABLES_LIB in order to allow
the common code to be independent. 0-day seems to be happy now for all the
different configs and archs.

1/4: Split out the common code from drivers/acpi/tables.c to lib/fw_table.c
2/4: Add CDAT support
3,4/4: These two are minor patches that has ACPICA impact. Has been merged into
       the ACPICA git repo [3].

The whole series is at [2] for convenience.

[1]: https://lore.kernel.org/linux-cxl/168193556660.1178687.15477509915255912089.stgit@djiang5-mobl3/T/#t
[2]: https://git.kernel.org/pub/scm/linux/kernel/git/djiang/linux.git/log/?h=cxl-qtg
[3]: https://github.com/acpica/acpica/pull/874

---

Dave Jiang (4):
      acpi: Move common tables helper functions to common lib
      lib/firmware_table: tables: Add CDAT table parsing support
      acpi: fix misnamed define for CDAT DSMAS
      acpi: Add defines for CDAT SSLBIS


 drivers/acpi/Kconfig     |   1 +
 drivers/acpi/tables.c    | 178 +----------------------------
 include/acpi/actbl1.h    |   5 +-
 include/linux/acpi.h     |  22 +---
 include/linux/fw_table.h |  52 +++++++++
 lib/Kconfig              |   3 +
 lib/Makefile             |   2 +
 lib/fw_table.c           | 236 +++++++++++++++++++++++++++++++++++++++
 8 files changed, 302 insertions(+), 197 deletions(-)
 create mode 100644 include/linux/fw_table.h
 create mode 100644 lib/fw_table.c

--

Comments

Rafael J. Wysocki June 4, 2023, 4:09 p.m. UTC | #1
On Thu, Jun 1, 2023 at 11:31 PM Dave Jiang <dave.jiang@intel.com> wrote:
>
> v3:
> - Move common code to lib/fw_table.c
> v2:
> - Split out with CONFIG_ACPI_TABLES_LIB to be independent
> - Fixed 0-day issues
> - Change CDAT releveant names to prefix with cdat/CDAT instead of
>   acpi/ACPI. (Jonathan)
> - Make table_header a union with cdat table header instead of
>   'acpi_table_header'. (Jonathan)
> - Removed ACPI_SIG_CDAT, already defined.
>
> Hi Rafael,
> Please consider ack these patches. Dan can take these through the CXL tree. After
> attempting to rename the cxl_ prefixes of functions and non ACPICA data structures
> to something more common, it seems that significant amount of ACPI code would be
> touched for the rename. For this series I left it alone in order to have the minimal
> changes to ACPI code.
>
> I've broken out the "cxl: Add support for QTG ID retrieval for CXL subsystem" [1]
> series in order to make it more manageable. Here's the first part of the ACPI
> changes. These changes are added to allow reuse of ACPI tables code to parse
> the CDAT tables. While CDAT is not part of ACPI, the table structures are similar
> to ACPI layouts that the code can be reused with some small modifications.
>
> However, in order to be properly utilized by CXL users, the tables code needs
> to be refactored out to be independent of ACPI. For example, a PPC BE host may
> have CXL and does not have ACPI support. But it will have CDAT to read from
> devices and switches. I have created CONFIG_ACPI_TABLES_LIB in order to allow
> the common code to be independent. 0-day seems to be happy now for all the
> different configs and archs.
>
> 1/4: Split out the common code from drivers/acpi/tables.c to lib/fw_table.c
> 2/4: Add CDAT support
> 3,4/4: These two are minor patches that has ACPICA impact. Has been merged into
>        the ACPICA git repo [3].
>
> The whole series is at [2] for convenience.
>
> [1]: https://lore.kernel.org/linux-cxl/168193556660.1178687.15477509915255912089.stgit@djiang5-mobl3/T/#t
> [2]: https://git.kernel.org/pub/scm/linux/kernel/git/djiang/linux.git/log/?h=cxl-qtg
> [3]: https://github.com/acpica/acpica/pull/874
>
> ---
>
> Dave Jiang (4):
>       acpi: Move common tables helper functions to common lib
>       lib/firmware_table: tables: Add CDAT table parsing support
>       acpi: fix misnamed define for CDAT DSMAS
>       acpi: Add defines for CDAT SSLBIS
>
>
>  drivers/acpi/Kconfig     |   1 +
>  drivers/acpi/tables.c    | 178 +----------------------------
>  include/acpi/actbl1.h    |   5 +-
>  include/linux/acpi.h     |  22 +---
>  include/linux/fw_table.h |  52 +++++++++
>  lib/Kconfig              |   3 +
>  lib/Makefile             |   2 +
>  lib/fw_table.c           | 236 +++++++++++++++++++++++++++++++++++++++
>  8 files changed, 302 insertions(+), 197 deletions(-)
>  create mode 100644 include/linux/fw_table.h
>  create mode 100644 lib/fw_table.c
>
> --

I think that this series can go in via the CXL tree and I'm expecting
ACPICA to make a new release including the counterparts of patches
[3-4/4] shortly.

Please feel free to add

Acled-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

to the series.

Thanks!
Hanjun Guo June 6, 2023, 1:36 a.m. UTC | #2
On 2023/6/2 5:31, Dave Jiang wrote:
> v3:
> - Move common code to lib/fw_table.c
> v2:
> - Split out with CONFIG_ACPI_TABLES_LIB to be independent
> - Fixed 0-day issues
> - Change CDAT releveant names to prefix with cdat/CDAT instead of
>    acpi/ACPI. (Jonathan)
> - Make table_header a union with cdat table header instead of
>    'acpi_table_header'. (Jonathan)
> - Removed ACPI_SIG_CDAT, already defined.
> 
> Hi Rafael,
> Please consider ack these patches. Dan can take these through the CXL tree. After
> attempting to rename the cxl_ prefixes of functions and non ACPICA data structures
> to something more common, it seems that significant amount of ACPI code would be
> touched for the rename. For this series I left it alone in order to have the minimal
> changes to ACPI code.
> 
> I've broken out the "cxl: Add support for QTG ID retrieval for CXL subsystem" [1]
> series in order to make it more manageable. Here's the first part of the ACPI
> changes. These changes are added to allow reuse of ACPI tables code to parse
> the CDAT tables. While CDAT is not part of ACPI, the table structures are similar
> to ACPI layouts that the code can be reused with some small modifications.
> 
> However, in order to be properly utilized by CXL users, the tables code needs
> to be refactored out to be independent of ACPI. For example, a PPC BE host may
> have CXL and does not have ACPI support. But it will have CDAT to read from
> devices and switches. I have created CONFIG_ACPI_TABLES_LIB in order to allow
> the common code to be independent. 0-day seems to be happy now for all the
> different configs and archs.
> 
> 1/4: Split out the common code from drivers/acpi/tables.c to lib/fw_table.c
> 2/4: Add CDAT support
> 3,4/4: These two are minor patches that has ACPICA impact. Has been merged into
>         the ACPICA git repo [3].
> 
> The whole series is at [2] for convenience.
> 
> [1]: https://lore.kernel.org/linux-cxl/168193556660.1178687.15477509915255912089.stgit@djiang5-mobl3/T/#t
> [2]: https://git.kernel.org/pub/scm/linux/kernel/git/djiang/linux.git/log/?h=cxl-qtg
> [3]: https://github.com/acpica/acpica/pull/874
> 
> ---
> 
> Dave Jiang (4):
>        acpi: Move common tables helper functions to common lib
>        lib/firmware_table: tables: Add CDAT table parsing support
>        acpi: fix misnamed define for CDAT DSMAS
>        acpi: Add defines for CDAT SSLBIS
> 
> 
>   drivers/acpi/Kconfig     |   1 +
>   drivers/acpi/tables.c    | 178 +----------------------------
>   include/acpi/actbl1.h    |   5 +-
>   include/linux/acpi.h     |  22 +---
>   include/linux/fw_table.h |  52 +++++++++
>   lib/Kconfig              |   3 +
>   lib/Makefile             |   2 +
>   lib/fw_table.c           | 236 +++++++++++++++++++++++++++++++++++++++

Who will maintain this file? since it's the core function of parsing
ACPI tables, I would like the update of this file in the future will
Cc ACPI mailing list.

Thanks
Hanjun
Dave Jiang June 12, 2023, 8:16 p.m. UTC | #3
On 6/4/23 09:09, Rafael J. Wysocki wrote:
> On Thu, Jun 1, 2023 at 11:31 PM Dave Jiang <dave.jiang@intel.com> wrote:
>> v3:
>> - Move common code to lib/fw_table.c
>> v2:
>> - Split out with CONFIG_ACPI_TABLES_LIB to be independent
>> - Fixed 0-day issues
>> - Change CDAT releveant names to prefix with cdat/CDAT instead of
>>    acpi/ACPI. (Jonathan)
>> - Make table_header a union with cdat table header instead of
>>    'acpi_table_header'. (Jonathan)
>> - Removed ACPI_SIG_CDAT, already defined.
>>
>> Hi Rafael,
>> Please consider ack these patches. Dan can take these through the CXL tree. After
>> attempting to rename the cxl_ prefixes of functions and non ACPICA data structures
>> to something more common, it seems that significant amount of ACPI code would be
>> touched for the rename. For this series I left it alone in order to have the minimal
>> changes to ACPI code.
>>
>> I've broken out the "cxl: Add support for QTG ID retrieval for CXL subsystem" [1]
>> series in order to make it more manageable. Here's the first part of the ACPI
>> changes. These changes are added to allow reuse of ACPI tables code to parse
>> the CDAT tables. While CDAT is not part of ACPI, the table structures are similar
>> to ACPI layouts that the code can be reused with some small modifications.
>>
>> However, in order to be properly utilized by CXL users, the tables code needs
>> to be refactored out to be independent of ACPI. For example, a PPC BE host may
>> have CXL and does not have ACPI support. But it will have CDAT to read from
>> devices and switches. I have created CONFIG_ACPI_TABLES_LIB in order to allow
>> the common code to be independent. 0-day seems to be happy now for all the
>> different configs and archs.
>>
>> 1/4: Split out the common code from drivers/acpi/tables.c to lib/fw_table.c
>> 2/4: Add CDAT support
>> 3,4/4: These two are minor patches that has ACPICA impact. Has been merged into
>>         the ACPICA git repo [3].
>>
>> The whole series is at [2] for convenience.
>>
>> [1]: https://lore.kernel.org/linux-cxl/168193556660.1178687.15477509915255912089.stgit@djiang5-mobl3/T/#t
>> [2]: https://git.kernel.org/pub/scm/linux/kernel/git/djiang/linux.git/log/?h=cxl-qtg
>> [3]: https://github.com/acpica/acpica/pull/874
>>
>> ---
>>
>> Dave Jiang (4):
>>        acpi: Move common tables helper functions to common lib
>>        lib/firmware_table: tables: Add CDAT table parsing support
>>        acpi: fix misnamed define for CDAT DSMAS
>>        acpi: Add defines for CDAT SSLBIS
>>
>>
>>   drivers/acpi/Kconfig     |   1 +
>>   drivers/acpi/tables.c    | 178 +----------------------------
>>   include/acpi/actbl1.h    |   5 +-
>>   include/linux/acpi.h     |  22 +---
>>   include/linux/fw_table.h |  52 +++++++++
>>   lib/Kconfig              |   3 +
>>   lib/Makefile             |   2 +
>>   lib/fw_table.c           | 236 +++++++++++++++++++++++++++++++++++++++
>>   8 files changed, 302 insertions(+), 197 deletions(-)
>>   create mode 100644 include/linux/fw_table.h
>>   create mode 100644 lib/fw_table.c
>>
>> --
> I think that this series can go in via the CXL tree and I'm expecting
> ACPICA to make a new release including the counterparts of patches
> [3-4/4] shortly.
>
> Please feel free to add
>
> Acled-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> to the series.

Thank you Rafael!


> Thanks!
Dave Jiang June 12, 2023, 8:17 p.m. UTC | #4
On 6/5/23 18:36, Hanjun Guo wrote:
> On 2023/6/2 5:31, Dave Jiang wrote:
>> v3:
>> - Move common code to lib/fw_table.c
>> v2:
>> - Split out with CONFIG_ACPI_TABLES_LIB to be independent
>> - Fixed 0-day issues
>> - Change CDAT releveant names to prefix with cdat/CDAT instead of
>>    acpi/ACPI. (Jonathan)
>> - Make table_header a union with cdat table header instead of
>>    'acpi_table_header'. (Jonathan)
>> - Removed ACPI_SIG_CDAT, already defined.
>>
>> Hi Rafael,
>> Please consider ack these patches. Dan can take these through the CXL 
>> tree. After
>> attempting to rename the cxl_ prefixes of functions and non ACPICA 
>> data structures
>> to something more common, it seems that significant amount of ACPI 
>> code would be
>> touched for the rename. For this series I left it alone in order to 
>> have the minimal
>> changes to ACPI code.
>>
>> I've broken out the "cxl: Add support for QTG ID retrieval for CXL 
>> subsystem" [1]
>> series in order to make it more manageable. Here's the first part of 
>> the ACPI
>> changes. These changes are added to allow reuse of ACPI tables code 
>> to parse
>> the CDAT tables. While CDAT is not part of ACPI, the table structures 
>> are similar
>> to ACPI layouts that the code can be reused with some small 
>> modifications.
>>
>> However, in order to be properly utilized by CXL users, the tables 
>> code needs
>> to be refactored out to be independent of ACPI. For example, a PPC BE 
>> host may
>> have CXL and does not have ACPI support. But it will have CDAT to 
>> read from
>> devices and switches. I have created CONFIG_ACPI_TABLES_LIB in order 
>> to allow
>> the common code to be independent. 0-day seems to be happy now for 
>> all the
>> different configs and archs.
>>
>> 1/4: Split out the common code from drivers/acpi/tables.c to 
>> lib/fw_table.c
>> 2/4: Add CDAT support
>> 3,4/4: These two are minor patches that has ACPICA impact. Has been 
>> merged into
>>         the ACPICA git repo [3].
>>
>> The whole series is at [2] for convenience.
>>
>> [1]: 
>> https://lore.kernel.org/linux-cxl/168193556660.1178687.15477509915255912089.stgit@djiang5-mobl3/T/#t
>> [2]: 
>> https://git.kernel.org/pub/scm/linux/kernel/git/djiang/linux.git/log/?h=cxl-qtg
>> [3]: https://github.com/acpica/acpica/pull/874
>>
>> ---
>>
>> Dave Jiang (4):
>>        acpi: Move common tables helper functions to common lib
>>        lib/firmware_table: tables: Add CDAT table parsing support
>>        acpi: fix misnamed define for CDAT DSMAS
>>        acpi: Add defines for CDAT SSLBIS
>>
>>
>>   drivers/acpi/Kconfig     |   1 +
>>   drivers/acpi/tables.c    | 178 +----------------------------
>>   include/acpi/actbl1.h    |   5 +-
>>   include/linux/acpi.h     |  22 +---
>>   include/linux/fw_table.h |  52 +++++++++
>>   lib/Kconfig              |   3 +
>>   lib/Makefile             |   2 +
>>   lib/fw_table.c           | 236 +++++++++++++++++++++++++++++++++++++++
>
> Who will maintain this file? since it's the core function of parsing
> ACPI tables, I would like the update of this file in the future will
> Cc ACPI mailing list.

I can add a MAINTAINERS entry. Since the original code is from ACPI, it 
can be maintained by ACPI subsystem.



>
> Thanks
> Hanjun