RE: [PATCH v2 1/3] ACPI: Resolve objects on host-directed table loads

From: Moore, Robert
Date: Tue Jun 18 2019 - 15:40:24 EST


I'm looking at this. We've changed the initialization of objects in the namespace recently, so I'm checking this out.


> -----Original Message-----
> From: Nikolaus Voss [mailto:nv@xxxxxxx]
> Sent: Tuesday, June 18, 2019 2:22 AM
> To: Moore, Robert <robert.moore@xxxxxxxxx>
> Cc: Rafael J. Wysocki <rafael@xxxxxxxxxx>; Rafael J. Wysocki
> <rjw@xxxxxxxxxxxxx>; Len Brown <lenb@xxxxxxxxxx>; Schmauss, Erik
> <erik.schmauss@xxxxxxxxx>; Jacek Anaszewski
> <jacek.anaszewski@xxxxxxxxx>; Pavel Machek <pavel@xxxxxx>; Dan Murphy
> <dmurphy@xxxxxx>; Thierry Reding <thierry.reding@xxxxxxxxx>; ACPI Devel
> Maling List <linux-acpi@xxxxxxxxxxxxxxx>; open list:ACPI COMPONENT
> ARCHITECTURE (ACPICA) <devel@xxxxxxxxxx>; linux-leds@xxxxxxxxxxxxxxx;
> Linux PWM List <linux-pwm@xxxxxxxxxxxxxxx>; Linux Kernel Mailing List
> <linux-kernel@xxxxxxxxxxxxxxx>
> Subject: RE: [PATCH v2 1/3] ACPI: Resolve objects on host-directed table
> loads
>
> On Mon, 17 Jun 2019, Moore, Robert wrote:
> >> -----Original Message-----
> >> From: Nikolaus Voss [mailto:nv@xxxxxxx]
> >> Sent: Sunday, June 16, 2019 11:24 PM
> >> To: Moore, Robert <robert.moore@xxxxxxxxx>
> >> Cc: Rafael J. Wysocki <rafael@xxxxxxxxxx>; Rafael J. Wysocki
> >> <rjw@xxxxxxxxxxxxx>; Len Brown <lenb@xxxxxxxxxx>; Schmauss, Erik
> >> <erik.schmauss@xxxxxxxxx>; Jacek Anaszewski
> >> <jacek.anaszewski@xxxxxxxxx>; Pavel Machek <pavel@xxxxxx>; Dan Murphy
> >> <dmurphy@xxxxxx>; Thierry Reding <thierry.reding@xxxxxxxxx>; ACPI
> >> Devel Maling List <linux-acpi@xxxxxxxxxxxxxxx>; open list:ACPI
> >> COMPONENT ARCHITECTURE (ACPICA) <devel@xxxxxxxxxx>;
> >> linux-leds@xxxxxxxxxxxxxxx; Linux PWM List
> >> <linux-pwm@xxxxxxxxxxxxxxx>; Linux Kernel Mailing List
> >> <linux-kernel@xxxxxxxxxxxxxxx>; nikolaus.voss@xxxxxxxxxxxxxxxxxxxxx
> >> Subject: RE: [PATCH v2 1/3] ACPI: Resolve objects on host-directed
> >> table loads
> >>
> >> Bob,
> >>
> >> On Fri, 14 Jun 2019, Moore, Robert wrote:
> >>>
> >>>
> >>> -----Original Message-----
> >>> From: Nikolaus Voss [mailto:nv@xxxxxxx]
> >>> Sent: Friday, June 14, 2019 2:26 AM
> >>> To: Rafael J. Wysocki <rafael@xxxxxxxxxx>
> >>> Cc: Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>; Len Brown
> >>> <lenb@xxxxxxxxxx>; Moore, Robert <robert.moore@xxxxxxxxx>; Schmauss,
> >>> Erik <erik.schmauss@xxxxxxxxx>; Jacek Anaszewski
> >>> <jacek.anaszewski@xxxxxxxxx>; Pavel Machek <pavel@xxxxxx>; Dan
> >>> Murphy <dmurphy@xxxxxx>; Thierry Reding <thierry.reding@xxxxxxxxx>;
> >>> ACPI Devel Maling List <linux-acpi@xxxxxxxxxxxxxxx>; open list:ACPI
> >>> COMPONENT ARCHITECTURE (ACPICA) <devel@xxxxxxxxxx>;
> >>> linux-leds@xxxxxxxxxxxxxxx; Linux PWM List
> >>> <linux-pwm@xxxxxxxxxxxxxxx>; Linux Kernel Mailing List
> >>> <linux-kernel@xxxxxxxxxxxxxxx>
> >>> Subject: Re: [PATCH v2 1/3] ACPI: Resolve objects on host-directed
> >>> table loads
> >>>
> >>> Hi Rafael,
> >>>
> >>> On Fri, 14 Jun 2019, Rafael J. Wysocki wrote:
> >>>> On Wed, Jun 12, 2019 at 10:36 AM Nikolaus Voss
> >>>> <nikolaus.voss@xxxxxxxxxxxxxxxxxxxxx> wrote:
> >>>>>
> >>>>> If an ACPI SSDT overlay is loaded after built-in tables have been
> >>>>> loaded e.g. via configfs or efivar_ssdt_load() it is necessary to
> >>>>> rewalk the namespace to resolve references. Without this, relative
> >>>>> and absolute paths like ^PCI0.SBUS or \_SB.PCI0.SBUS are not
> >>>>> resolved correctly.
> >>>>>
> >>>>> Make configfs load use the same method as efivar_ssdt_load().
> >>>>>
> >>>>> Signed-off-by: Nikolaus Voss <nikolaus.voss@xxxxxxxxxxxxxxxxxxxxx>
> >>>>
> >>>> This is fine by me, so
> >>>>
> >>>> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> >>>>
> >>>> Or if you want me to take this patch (without the other two in the
> >>>> series), please let me know.
> >>>
> >>> thanks. I think it would be the best if you take up this patch as it
> >>> is an independent topic. In retrospect it wasn't a good idea to put
> >>> it into this series.
> >>>
> >>> Kind regards,
> >>> Niko
> >>>
> >>> I would have to ask, why is additional code needed for package
> >>> initialization/resolution? It already happens elsewhere in acpica.
> >>> Bob
> >>
> >> for built-in tables loaded via acpi_ex_load_table_op() everything is
> >> fine, because after acpi_tb_load_table() acpi_ns_walk_namespace() is
> >> called to resolve references.
> >>
> >> My fix only affects tables loaded dynamically via either
> >> acpi_configfs driver (for debugging purposes) or efivar_ssdt_load()
> >> (to specify a table on the kernel's command line). They use
> >> acpi_load_table() to load the table from a caller-owned buffer. To
> >> resolve the references, it is again necessary to rewalk the
> >> namespace, which was simply missing in acpi_load_table().
> >>
> > [Moore, Robert]
> >
> > Perhaps you should call AcpiInitializeObjects after the call to
> > AcpiLoadTable, but I will check.
>
> My usage of acpi_load_table() is to load a SSDT which is the intended
> use of this method according to its description. And my expectation is
> that the package objects of the loaded table are initialized when this
> function successfully returns so it aligns with the behavior of
> acpi_ex_load_table_op() for built-in SSDTs. Otherwise there would be no
> point in having this function at all, because
> acpi_tb_install_and_load_table() could be called directly without any
> difference.
>
> Niko