RE: [PATCHv2 01/12] acpi: Create subtable parsing infrastructure

From: Schmauss, Erik
Date: Thu Dec 20 2018 - 14:00:09 EST




> -----Original Message-----
> From: Rafael J. Wysocki [mailto:rafael@xxxxxxxxxx]
> Sent: Thursday, December 20, 2018 12:57 AM
> To: Schmauss, Erik <erik.schmauss@xxxxxxxxx>
> Cc: Williams, Dan J <dan.j.williams@xxxxxxxxx>; Rafael J. Wysocki
> <rafael@xxxxxxxxxx>; Busch, Keith <keith.busch@xxxxxxxxx>; Moore,
> Robert <robert.moore@xxxxxxxxx>; Linux Kernel Mailing List <linux-
> kernel@xxxxxxxxxxxxxxx>; ACPI Devel Maling List <linux-
> acpi@xxxxxxxxxxxxxxx>; Linux Memory Management List <linux-
> mm@xxxxxxxxx>; Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx>; Hansen, Dave
> <dave.hansen@xxxxxxxxx>
> Subject: Re: [PATCHv2 01/12] acpi: Create subtable parsing
> infrastructure
>
> On Thu, Dec 20, 2018 at 2:15 AM Schmauss, Erik
> <erik.schmauss@xxxxxxxxx> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: linux-acpi-owner@xxxxxxxxxxxxxxx [mailto:linux-acpi-
> > > owner@xxxxxxxxxxxxxxx] On Behalf Of Dan Williams
> > > Sent: Wednesday, December 19, 2018 4:00 PM
> > > To: Schmauss, Erik <erik.schmauss@xxxxxxxxx>
> > > Cc: Rafael J. Wysocki <rafael@xxxxxxxxxx>; Busch, Keith
> > > <keith.busch@xxxxxxxxx>; Moore, Robert
> <robert.moore@xxxxxxxxx>;
> > > Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>; ACPI
> Devel
> > > Maling List <linux-acpi@xxxxxxxxxxxxxxx>; Linux Memory
> Management
> > > List <linux-mm@xxxxxxxxx>; Greg Kroah-Hartman
> > > <gregkh@xxxxxxxxxxxxxxxxxxx>; Hansen, Dave
> <dave.hansen@xxxxxxxxx>
> > > Subject: Re: [PATCHv2 01/12] acpi: Create subtable parsing
> > > infrastructure
> > >
> > > On Wed, Dec 19, 2018 at 3:19 PM Schmauss, Erik
> > > <erik.schmauss@xxxxxxxxx> wrote:
> > > >
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: linux-acpi-owner@xxxxxxxxxxxxxxx [mailto:linux-acpi-
> > > > > owner@xxxxxxxxxxxxxxx] On Behalf Of Rafael J. Wysocki
> > > > > Sent: Tuesday, December 11, 2018 1:45 AM
> > > > > To: Busch, Keith <keith.busch@xxxxxxxxx>
> > > > > Cc: Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>;
> > > > > ACPI Devel Maling List <linux-acpi@xxxxxxxxxxxxxxx>; Linux
> > > > > Memory Management List <linux-mm@xxxxxxxxx>; Greg
> Kroah-Hartman
> > > > > <gregkh@xxxxxxxxxxxxxxxxxxx>; Rafael J. Wysocki
> > > <rafael@xxxxxxxxxx>;
> > > > > Hansen, Dave <dave.hansen@xxxxxxxxx>; Williams, Dan J
> > > > > <dan.j.williams@xxxxxxxxx>
> > > > > Subject: Re: [PATCHv2 01/12] acpi: Create subtable parsing
> > > > > infrastructure
> > > > >
> > > > > On Tue, Dec 11, 2018 at 2:05 AM Keith Busch
> > > <keith.busch@xxxxxxxxx>
> > > > > wrote:
> > > > > >
> > > >
> > > > Hi Rafael and Bob,
> > > >
> > > > > > Parsing entries in an ACPI table had assumed a generic header
> > > > > > structure that is most common. There is no standard ACPI
> > > header,
> > > > > > though, so less common types would need custom parsers if
> they
> > > > > > want go through their sub-table entry list.
> > > > >
> > > > > It looks like the problem at hand is that acpi_hmat_structure is
> > > > > incompatible with acpi_subtable_header because of the
> different
> > > layout and field sizes.
> > > >
> > > > Just out of curiosity, why don't we use ACPICA code to parse
> > > > static ACPI tables in Linux?
> > > >
> > > > We have a disassembler for static tables that parses all supported
> > > > tables. This seems like a duplication of code/effort...
> > >
> > Hi Dan,
> >
> > > Oh, I thought acpi_table_parse_entries() was the common code.
> > > What's the ACPICA duplicate?
> >
> > I was thinking AcpiDmDumpTable(). After looking at this ACPICA
> code, I
> > realized that the this ACPICA doesn't actually build a parse tree or
> data structure.
> > It loops over the data structure to format the input ACPI table to a
> file.
> >
> > To me, it seems like a good idea for Linux and ACPICA to share the
> > same code when parsing and analyzing these structures. I know that
> > Linux may emit warnings that are specific to Linux but there are
> > structural analyses that should be the same (such as checking lengths
> of tables and subtables so that we don't have out of bounds access).
>
> I agree.
>
> I guess the reason why it has not been done this way was because
> nobody thought about it. :-)
>
> So a project to consolidate these things might be a good one.

Ok, I'll talk to Bob about it and see what we can do