diff mbox series

[v7] xen: allow up to 16383 cpus

Message ID 20240510141636.20543-1-jgross@suse.com (mailing list archive)
State New
Headers show
Series [v7] xen: allow up to 16383 cpus | expand

Commit Message

Jürgen Groß May 10, 2024, 2:16 p.m. UTC
With lock handling now allowing up to 16384 cpus (spinlocks can handle
65535 cpus, rwlocks can handle 16384 cpus), raise the allowed limit for
the number of cpus to be configured to 16383.

The new limit is imposed by IOMMU_CMD_BUFFER_MAX_ENTRIES and
QINVAL_MAX_ENTRY_NR required to be larger than 2 * CONFIG_NR_CPUS.

Add a support limit of physical CPUs to SUPPORT.md (4096 on x86, 128
on ARM).

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
V5:
- new patch (Jan Beulich)
V7:
- add SUPPORT.md and CHANGELOG.md entries
---
 CHANGELOG.md     | 2 ++
 SUPPORT.md       | 5 +++++
 xen/arch/Kconfig | 2 +-
 3 files changed, 8 insertions(+), 1 deletion(-)

Comments

Julien Grall May 10, 2024, 9:08 p.m. UTC | #1
Hi Juergen,

On 10/05/2024 15:16, Juergen Gross wrote:
> With lock handling now allowing up to 16384 cpus (spinlocks can handle
> 65535 cpus, rwlocks can handle 16384 cpus), raise the allowed limit for
> the number of cpus to be configured to 16383.
> 
> The new limit is imposed by IOMMU_CMD_BUFFER_MAX_ENTRIES and
> QINVAL_MAX_ENTRY_NR required to be larger than 2 * CONFIG_NR_CPUS.
> 
> Add a support limit of physical CPUs to SUPPORT.md (4096 on x86, 128
> on ARM).
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> Acked-by: Jan Beulich <jbeulich@suse.com>

I am a bit surprised that this is kept given you added SUPPORT.md. I'd 
like Jan (or other x86 maintainers) to confirm they are happy with the 
proposed x86 security supported limit the SUPPORT.md.

For Arm (only):

Acked-by: Julien Grall <jgrall@amazon.com>

> ---
> V5:
> - new patch (Jan Beulich)
> V7:
> - add SUPPORT.md and CHANGELOG.md entries
> ---
>   CHANGELOG.md     | 2 ++
>   SUPPORT.md       | 5 +++++
>   xen/arch/Kconfig | 2 +-
>   3 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/CHANGELOG.md b/CHANGELOG.md
> index 8041cfb7d2..c43c45d8d4 100644
> --- a/CHANGELOG.md
> +++ b/CHANGELOG.md
> @@ -14,6 +14,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
>      - HVM PIRQs are disabled by default.
>      - Reduce IOMMU setup time for hardware domain.
>    - xl/libxl configures vkb=[] for HVM domains with priority over vkb_device.
> + - Increase the maximum number of CPUs Xen can be built for from 4095 to
> +   16383.
>   
>   ### Added
>    - On x86:
> diff --git a/SUPPORT.md b/SUPPORT.md
> index e10d46d924..d5d60c62ec 100644
> --- a/SUPPORT.md
> +++ b/SUPPORT.md
> @@ -61,6 +61,11 @@ For the Cortex A77 r0p0 - r1p0, see Errata 1508412.
>   
>       Status, x86: Supported
>   
> +### Physical CPUs
> +
> +    Status, x86: Supported up to 4096
> +    Status, ARM: Supported up to 128
> +
>   ### Host ACPI (via Domain 0)
>   
>       Status, x86 PV: Supported
> diff --git a/xen/arch/Kconfig b/xen/arch/Kconfig
> index 67ba38f32f..308ce129a8 100644
> --- a/xen/arch/Kconfig
> +++ b/xen/arch/Kconfig
> @@ -6,7 +6,7 @@ config PHYS_ADDR_T_32
>   
>   config NR_CPUS
>   	int "Maximum number of CPUs"
> -	range 1 4095
> +	range 1 16383
>   	default "256" if X86
>   	default "8" if ARM && RCAR3
>   	default "4" if ARM && QEMU

Cheers,
Andrew Cooper May 10, 2024, 9:11 p.m. UTC | #2
On 10/05/2024 10:08 pm, Julien Grall wrote:
> Hi Juergen,
>
> On 10/05/2024 15:16, Juergen Gross wrote:
>> With lock handling now allowing up to 16384 cpus (spinlocks can handle
>> 65535 cpus, rwlocks can handle 16384 cpus), raise the allowed limit for
>> the number of cpus to be configured to 16383.
>>
>> The new limit is imposed by IOMMU_CMD_BUFFER_MAX_ENTRIES and
>> QINVAL_MAX_ENTRY_NR required to be larger than 2 * CONFIG_NR_CPUS.
>>
>> Add a support limit of physical CPUs to SUPPORT.md (4096 on x86, 128
>> on ARM).
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> Acked-by: Jan Beulich <jbeulich@suse.com>
>
> I am a bit surprised that this is kept given you added SUPPORT.md. I'd
> like Jan (or other x86 maintainers) to confirm they are happy with the
> proposed x86 security supported limit the SUPPORT.md.
>
> For Arm (only):
>
> Acked-by: Julien Grall <jgrall@amazon.com>

XenServer is currently at 2k and we're waiting on this series to move to 4k.

I'm happy with this being the security statement for now.

~Andrew
Julien Grall May 10, 2024, 9:16 p.m. UTC | #3
On 10/05/2024 22:11, Andrew Cooper wrote:
> On 10/05/2024 10:08 pm, Julien Grall wrote:
>> Hi Juergen,
>>
>> On 10/05/2024 15:16, Juergen Gross wrote:
>>> With lock handling now allowing up to 16384 cpus (spinlocks can handle
>>> 65535 cpus, rwlocks can handle 16384 cpus), raise the allowed limit for
>>> the number of cpus to be configured to 16383.
>>>
>>> The new limit is imposed by IOMMU_CMD_BUFFER_MAX_ENTRIES and
>>> QINVAL_MAX_ENTRY_NR required to be larger than 2 * CONFIG_NR_CPUS.
>>>
>>> Add a support limit of physical CPUs to SUPPORT.md (4096 on x86, 128
>>> on ARM).
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> Acked-by: Jan Beulich <jbeulich@suse.com>
>>
>> I am a bit surprised that this is kept given you added SUPPORT.md. I'd
>> like Jan (or other x86 maintainers) to confirm they are happy with the
>> proposed x86 security supported limit the SUPPORT.md.
>>
>> For Arm (only):
>>
>> Acked-by: Julien Grall <jgrall@amazon.com>
> 
> XenServer is currently at 2k and we're waiting on this series to move to 4k.
> 
> I'm happy with this being the security statement for now.

Thanks for confirming :). Committed.

Cheers,
diff mbox series

Patch

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8041cfb7d2..c43c45d8d4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,8 @@  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
    - HVM PIRQs are disabled by default.
    - Reduce IOMMU setup time for hardware domain.
  - xl/libxl configures vkb=[] for HVM domains with priority over vkb_device.
+ - Increase the maximum number of CPUs Xen can be built for from 4095 to
+   16383.
 
 ### Added
  - On x86:
diff --git a/SUPPORT.md b/SUPPORT.md
index e10d46d924..d5d60c62ec 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -61,6 +61,11 @@  For the Cortex A77 r0p0 - r1p0, see Errata 1508412.
 
     Status, x86: Supported
 
+### Physical CPUs
+
+    Status, x86: Supported up to 4096
+    Status, ARM: Supported up to 128
+
 ### Host ACPI (via Domain 0)
 
     Status, x86 PV: Supported
diff --git a/xen/arch/Kconfig b/xen/arch/Kconfig
index 67ba38f32f..308ce129a8 100644
--- a/xen/arch/Kconfig
+++ b/xen/arch/Kconfig
@@ -6,7 +6,7 @@  config PHYS_ADDR_T_32
 
 config NR_CPUS
 	int "Maximum number of CPUs"
-	range 1 4095
+	range 1 16383
 	default "256" if X86
 	default "8" if ARM && RCAR3
 	default "4" if ARM && QEMU