|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH V3 2/3] Tool/ACPI: DSDT extension to support more vcpus
On Wed, Sep 13, 2017 at 12:52:48AM -0400, Lan Tianyu wrote:
> This patch is to change DSDT table for processor object to support >128 vcpus
> accroding to ACPI spec 8.4 Declaring Processors
>
> Signed-off-by: Lan Tianyu <tianyu.lan@xxxxxxxxx>
> ---
> tools/libacpi/mk_dsdt.c | 31 +++++++++++++++++++++++++------
> 1 file changed, 25 insertions(+), 6 deletions(-)
>
> diff --git a/tools/libacpi/mk_dsdt.c b/tools/libacpi/mk_dsdt.c
> index 2daf32c..09c1529 100644
> --- a/tools/libacpi/mk_dsdt.c
> +++ b/tools/libacpi/mk_dsdt.c
> @@ -24,6 +24,8 @@
> #include <xen/arch-arm.h>
> #endif
>
> +#define CPU_NAME_FMT "P%.03X"
> +
> static unsigned int indent_level;
> static bool debug = false;
>
> @@ -196,10 +198,27 @@ int main(int argc, char **argv)
> /* Define processor objects and control methods. */
> for ( cpu = 0; cpu < max_cpus; cpu++)
> {
> - push_block("Processor", "PR%02X, %d, 0x0000b010, 0x06", cpu, cpu);
>
> - stmt("Name", "_HID, \"ACPI0007\"");
> +#ifdef CONFIG_X86
> + unsigned int apic_id = cpu * 2;
As said earlier, I don't like have some many places where apic id is
calculated. Please look into unifying those.
Also, declaring a new variable here is wrong.
> +
> + if ( apic_id > 254 )
255? An APIC ID of 255 should still be fine.
> + {
> + push_block("Device", CPU_NAME_FMT, cpu);
> + }
> + else
> +#endif
> + {
> + if (cpu > 255)
> + {
> + fprintf(stderr, "Exceed the range of processor ID \n");
> + return -1;
> + }
I'm not sure whether ARM shoudln't just use Device processor objects
directly. x86 has to use Processor because of compatibility reasons,
but I guess that's not an issue for ARM.
Thanks, Roger.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |