From: "Roger Pau Monné" <roger.pau@citrix.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: xen-devel@lists.xenproject.org, jgross@suse.com,
stable@vger.kernel.org,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Len Brown <lenb@kernel.org>,
linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/3] acpi/processor: sanitize _PDC buffer bits when running as Xen dom0
Date: Mon, 21 Nov 2022 16:03:40 +0100 [thread overview]
Message-ID: <Y3uTTAWxe/676t3q@Air-de-Roger> (raw)
In-Reply-To: <bac0ed0f-6772-450b-663c-fc0614efa100@suse.com>
On Mon, Nov 21, 2022 at 03:10:36PM +0100, Jan Beulich wrote:
> On 21.11.2022 11:21, Roger Pau Monne wrote:
> > --- a/drivers/acpi/processor_pdc.c
> > +++ b/drivers/acpi/processor_pdc.c
> > @@ -137,6 +137,14 @@ acpi_processor_eval_pdc(acpi_handle handle, struct acpi_object_list *pdc_in)
> > buffer[2] &= ~(ACPI_PDC_C_C2C3_FFH | ACPI_PDC_C_C1_FFH);
> >
> > }
> > + if (xen_initial_domain())
> > + /*
> > + * When Linux is running as Xen dom0 it's the hypervisor the
> > + * entity in charge of the processor power management, and so
> > + * Xen needs to check the OS capabilities reported in the _PDC
> > + * buffer matches what the hypervisor driver supports.
> > + */
> > + xen_sanitize_pdc((uint32_t *)pdc_in->pointer->buffer.pointer);
> > status = acpi_evaluate_object(handle, "_PDC", pdc_in, NULL);
>
> Again looking at our old XenoLinux forward port we had this inside the
> earlier if(), as an _alternative_ to the &= (I don't think it's valid
> to apply both the kernel's and Xen's adjustments). That would also let
> you use "buffer" rather than re-calculating it via yet another (risky
> from an abstract pov) cast.
Hm, I've wondered this and decided it wasn't worth to short-circuit
the boot_option_idle_override conditional because ACPI_PDC_C_C2C3_FFH
and ACPI_PDC_C_C1_FFH will be set anyway by Xen in
arch_acpi_set_pdc_bits() as part of ACPI_PDC_C_CAPABILITY_SMP.
I could re-use some of the code in there, but didn't want to make it
more difficult to read just for the benefit of reusing buffer.
> It was the very nature of requiring Xen-specific conditionals which I
> understand was the reason why so far no attempt was made to get this
> (incl the corresponding logic for patch 1) into any upstream kernel.
Yes, well, it's all kind of ugly. Hence my suggestion to simply avoid
doing any ACPI Processor object handling in Linux with the native code
and handle it all in a Xen specific driver. That requires the Xen
driver being able to fetch more data itself form the ACPI Processor
methods, but also unties it from the dependency on the data being
filled by the generic code, and the 'tricks' is plays into fooling
generic code to think certain processors are online.
Thanks, Roger.
next prev parent reply other threads:[~2022-11-21 15:11 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20221121102113.41893-1-roger.pau@citrix.com>
2022-11-21 10:21 ` [PATCH 1/3] acpi/processor: fix evaluating _PDC method when running as Xen dom0 Roger Pau Monne
2022-11-21 14:02 ` Jan Beulich
2022-11-21 14:29 ` Roger Pau Monné
2022-11-21 14:51 ` Jan Beulich
2022-11-21 15:09 ` Roger Pau Monné
2022-11-29 16:01 ` Roger Pau Monné
2022-11-29 17:43 ` Dave Hansen
2022-11-30 15:53 ` Roger Pau Monné
2022-11-30 16:48 ` Dave Hansen
2022-12-02 12:24 ` Roger Pau Monné
2022-12-02 16:17 ` Dave Hansen
2022-12-02 16:37 ` Roger Pau Monné
2022-12-02 17:06 ` Rafael J. Wysocki
2022-12-09 10:12 ` Roger Pau Monné
2023-01-30 9:21 ` Josef Johansson
2023-02-03 7:05 ` Jan Beulich
2023-02-03 13:58 ` Josef Johansson
2022-11-21 10:21 ` [PATCH 2/3] acpi/processor: sanitize _PDC buffer bits " Roger Pau Monne
2022-11-21 14:10 ` Jan Beulich
2022-11-21 14:13 ` Jan Beulich
2022-11-21 15:03 ` Roger Pau Monné [this message]
2023-06-14 19:57 ` Jason Andryuk
2023-06-16 14:39 ` Roger Pau Monné
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y3uTTAWxe/676t3q@Air-de-Roger \
--to=roger.pau@citrix.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jbeulich@suse.com \
--cc=jgross@suse.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rafael@kernel.org \
--cc=stable@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox