On Fri, Dec 02, 2022 at 06:06:26PM +0100, Rafael J. Wysocki wrote: > On Fri, Dec 2, 2022 at 5:37 PM Roger Pau Monné <roger.pau@xxxxxxxxxx> wrote: > > > > On Fri, Dec 02, 2022 at 08:17:56AM -0800, Dave Hansen wrote: > > > On 12/2/22 04:24, Roger Pau Monné wrote: > > > > On the implementation side, is the proposed approach acceptable? > > > > Mostly asking because it adds Xen conditionals to otherwise generic > > > > ACPI code. > > > > > > That's a good Rafael question. > > Sorry for joining late, but first off _PDC has been deprecated since > ACPI 3.0 (2004) and it is not even present in ACPI 6.5 any more. > > It follows from your description that _PDC is still used in the field, > though, after 18 years of deprecation. Who uses it, if I may know? I saw this issue on a Sapphire Rapids SDP from Intel, but I would think there are other platforms affected. > > > But, how do other places in the ACPI code handle things like this? > > > > Hm, I don't know of other places in the Xen case, the only resource > > in ACPI AML tables managed by Xen are Processor objects/devices AFAIK. > > The rest of devices are fully managed by the dom0 guest. > > > > I think such special handling is very specific to Xen, but maybe I'm > > wrong and there are similar existing cases in ACPI code already. > > > > We could add some kind of hook (iow: a function pointer in some struct > > that could be filled on a implementation basis?) but I didn't want > > overengineering this if adding a conditional was deemed OK. > > What _PDC capabilities specifically do you need to pass to the > firmware for things to work correctly? I'm not sure what capabilities do I need to pass explicitly to _PSD, but the call to _PDC as done by Linux currently changes the reported _PSD Coordination Field (vs not doing the call). Thanks, Roger.