All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm64: Support hard limit of cpu count by nr_cpus
@ 2016-08-05  6:03 Kefeng Wang
  2016-08-05  8:32 ` Will Deacon
  0 siblings, 1 reply; 11+ messages in thread
From: Kefeng Wang @ 2016-08-05  6:03 UTC (permalink / raw)
  To: linux-arm-kernel

Enable the hard limit of cpu count by nr_cpus on arm64.
The code is borrowed from MIPS.

Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 arch/arm64/kernel/setup.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 536dce2..597b777 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -224,6 +224,21 @@ static void __init request_standard_resources(void)
 
 u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
 
+static void __init prefill_possible_map(void)
+{
+	int i, possible = num_possible_cpus();
+
+	if (possible > nr_cpu_ids)
+		possible = nr_cpu_ids;
+
+	for (i = 0; i < possible; i++)
+		set_cpu_possible(i, true);
+	for (; i < NR_CPUS; i++)
+		set_cpu_possible(i, false);
+
+	nr_cpu_ids = possible;
+}
+
 void __init setup_arch(char **cmdline_p)
 {
 	pr_info("Boot CPU: AArch64 Processor [%08x]\n", read_cpuid_id());
@@ -285,6 +300,7 @@ void __init setup_arch(char **cmdline_p)
 	cpu_read_bootcpu_ops();
 	smp_init_cpus();
 	smp_build_mpidr_hash();
+	prefill_possible_map();
 
 #ifdef CONFIG_VT
 #if defined(CONFIG_VGA_CONSOLE)
-- 
1.7.12.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-05  6:03 [PATCH] arm64: Support hard limit of cpu count by nr_cpus Kefeng Wang
@ 2016-08-05  8:32 ` Will Deacon
  2016-08-05  9:58   ` Kefeng Wang
  0 siblings, 1 reply; 11+ messages in thread
From: Will Deacon @ 2016-08-05  8:32 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Aug 05, 2016 at 02:03:55PM +0800, Kefeng Wang wrote:
> Enable the hard limit of cpu count by nr_cpus on arm64.
> The code is borrowed from MIPS.
> 
> Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> ---
>  arch/arm64/kernel/setup.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
> index 536dce2..597b777 100644
> --- a/arch/arm64/kernel/setup.c
> +++ b/arch/arm64/kernel/setup.c
> @@ -224,6 +224,21 @@ static void __init request_standard_resources(void)
>  
>  u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
>  
> +static void __init prefill_possible_map(void)
> +{
> +	int i, possible = num_possible_cpus();
> +
> +	if (possible > nr_cpu_ids)
> +		possible = nr_cpu_ids;
> +
> +	for (i = 0; i < possible; i++)
> +		set_cpu_possible(i, true);
> +	for (; i < NR_CPUS; i++)
> +		set_cpu_possible(i, false);
> +
> +	nr_cpu_ids = possible;
> +}

Shouldn't we just avoid marking those CPUs as possible in smp_cpu_setup,
rather than rewriting things later on?

Also, can you explain exactly what functionality is missing at the moment,
please? I assume it's the nr_cpus= option not working correctly?

Will

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-05  8:32 ` Will Deacon
@ 2016-08-05  9:58   ` Kefeng Wang
  2016-08-05 10:19     ` Suzuki K Poulose
  0 siblings, 1 reply; 11+ messages in thread
From: Kefeng Wang @ 2016-08-05  9:58 UTC (permalink / raw)
  To: linux-arm-kernel



On 2016/8/5 16:32, Will Deacon wrote:
> On Fri, Aug 05, 2016 at 02:03:55PM +0800, Kefeng Wang wrote:
>> Enable the hard limit of cpu count by nr_cpus on arm64.
>> The code is borrowed from MIPS.
>>
>> Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
>> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
>> ---
>>  arch/arm64/kernel/setup.c | 16 ++++++++++++++++
>>  1 file changed, 16 insertions(+)
>>
>> diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
>> index 536dce2..597b777 100644
>> --- a/arch/arm64/kernel/setup.c
>> +++ b/arch/arm64/kernel/setup.c
>> @@ -224,6 +224,21 @@ static void __init request_standard_resources(void)
>>  
>>  u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
>>  
>> +static void __init prefill_possible_map(void)
>> +{
>> +	int i, possible = num_possible_cpus();
>> +
>> +	if (possible > nr_cpu_ids)
>> +		possible = nr_cpu_ids;
>> +
>> +	for (i = 0; i < possible; i++)
>> +		set_cpu_possible(i, true);
>> +	for (; i < NR_CPUS; i++)
>> +		set_cpu_possible(i, false);
>> +
>> +	nr_cpu_ids = possible;
>> +}
> 
> Shouldn't we just avoid marking those CPUs as possible in smp_cpu_setup,
> rather than rewriting things later on?

How about this one,

>From 0965eebecbc5aea0473df0cb45d32b2fccf72a9a Mon Sep 17 00:00:00 2001
From: Kefeng Wang <wangkefeng.wang@huawei.com>
Date: Fri, 5 Aug 2016 17:44:33 +0800
Subject: [PATCH v2] arm64: Support hard limit of cpu count by nr_cpus

Enable the hard limit of cpu count by set boot options nr_cpus=x
on arm64.

Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 arch/arm64/kernel/smp.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 76a6d92..0ac3ff5 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -496,7 +496,10 @@ static int __init smp_cpu_setup(int cpu)
 	if (cpu_ops[cpu]->cpu_init(cpu))
 		return -ENODEV;

-	set_cpu_possible(cpu, true);
+	if (cpu < nr_cpu_ids)
+		set_cpu_possible(cpu, true);
+	else
+		return -EINVAL;

 	return 0;
 }
-- 
1.7.12.4


> 
> Also, can you explain exactly what functionality is missing at the moment,
> please? I assume it's the nr_cpus= option not working correctly?

Yes. they use same bootargs nr_cpus=1 on both arm64 and x86, but find it can't work in arm64.

> 
> Will
> 
> .
> 

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-05  9:58   ` Kefeng Wang
@ 2016-08-05 10:19     ` Suzuki K Poulose
  2016-08-08  5:29       ` Kefeng Wang
  2016-08-08  6:05       ` [PATCH v2] " Kefeng Wang
  0 siblings, 2 replies; 11+ messages in thread
From: Suzuki K Poulose @ 2016-08-05 10:19 UTC (permalink / raw)
  To: linux-arm-kernel

On 05/08/16 10:58, Kefeng Wang wrote:
>
>
> On 2016/8/5 16:32, Will Deacon wrote:
>> On Fri, Aug 05, 2016 at 02:03:55PM +0800, Kefeng Wang wrote:
>>> Enable the hard limit of cpu count by nr_cpus on arm64.
>>> The code is borrowed from MIPS.
>>>
>>> Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
>>> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
>>> ---
>>>  arch/arm64/kernel/setup.c | 16 ++++++++++++++++
>>>  1 file changed, 16 insertions(+)
>>>
>>> diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
>>> index 536dce2..597b777 100644
>>> --- a/arch/arm64/kernel/setup.c
>>> +++ b/arch/arm64/kernel/setup.c
>>> @@ -224,6 +224,21 @@ static void __init request_standard_resources(void)
>>>
>>>  u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
>>>
>>> +static void __init prefill_possible_map(void)
>>> +{
>>> +	int i, possible = num_possible_cpus();
>>> +
>>> +	if (possible > nr_cpu_ids)
>>> +		possible = nr_cpu_ids;
>>> +
>>> +	for (i = 0; i < possible; i++)
>>> +		set_cpu_possible(i, true);
>>> +	for (; i < NR_CPUS; i++)
>>> +		set_cpu_possible(i, false);
>>> +
>>> +	nr_cpu_ids = possible;
>>> +}
>>
>> Shouldn't we just avoid marking those CPUs as possible in smp_cpu_setup,
>> rather than rewriting things later on?
>
> How about this one,
>
> From 0965eebecbc5aea0473df0cb45d32b2fccf72a9a Mon Sep 17 00:00:00 2001
> From: Kefeng Wang <wangkefeng.wang@huawei.com>
> Date: Fri, 5 Aug 2016 17:44:33 +0800
> Subject: [PATCH v2] arm64: Support hard limit of cpu count by nr_cpus
>
> Enable the hard limit of cpu count by set boot options nr_cpus=x
> on arm64.
>
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> ---
>  arch/arm64/kernel/smp.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
> index 76a6d92..0ac3ff5 100644
> --- a/arch/arm64/kernel/smp.c
> +++ b/arch/arm64/kernel/smp.c
> @@ -496,7 +496,10 @@ static int __init smp_cpu_setup(int cpu)
>  	if (cpu_ops[cpu]->cpu_init(cpu))
>  		return -ENODEV;
>
> -	set_cpu_possible(cpu, true);
> +	if (cpu < nr_cpu_ids)
> +		set_cpu_possible(cpu, true);
> +	else
> +		return -EINVAL;
>
>  	return 0;
>  }
>

Or is this even better ?

diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 490db85..dbd6a5e 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -659,9 +659,9 @@ void __init smp_init_cpus(void)
                 acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
                                       acpi_parse_gic_cpu_interface, 0);
  
-       if (cpu_count > NR_CPUS)
+       if (cpu_count > nr_cpu_ids)
                 pr_warn("no. of cores (%d) greater than configured maximum of %d - clipping\n",
-                       cpu_count, NR_CPUS);
+                       cpu_count, nr_cpu_ids);
  
         if (!bootcpu_valid) {
                 pr_err("missing boot CPU MPIDR, not enabling secondaries\n");
@@ -675,7 +675,7 @@ void __init smp_init_cpus(void)
          * with entries in cpu_logical_map while initializing the cpus.
          * If the cpu set-up fails, invalidate the cpu_logical_map entry.
          */
-       for (i = 1; i < NR_CPUS; i++) {
+       for (i = 1; i < nr_cpu_ids; i++) {
                 if (cpu_logical_map(i) != INVALID_HWID) {
                         if (smp_cpu_setup(i))
                                 cpu_logical_map(i) = INVALID_HWID;


Cheers
Suzuki

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-05 10:19     ` Suzuki K Poulose
@ 2016-08-08  5:29       ` Kefeng Wang
  2016-08-08  6:05       ` [PATCH v2] " Kefeng Wang
  1 sibling, 0 replies; 11+ messages in thread
From: Kefeng Wang @ 2016-08-08  5:29 UTC (permalink / raw)
  To: linux-arm-kernel



On 2016/8/5 18:19, Suzuki K Poulose wrote:
> On 05/08/16 10:58, Kefeng Wang wrote:
>>
>>
>> On 2016/8/5 16:32, Will Deacon wrote:
>>> On Fri, Aug 05, 2016 at 02:03:55PM +0800, Kefeng Wang wrote:
>>>> Enable the hard limit of cpu count by nr_cpus on arm64.
>>>> The code is borrowed from MIPS.
>>>>
[...]
> 
> Or is this even better ?

Agree, and let's show a better warning.

> 
> diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
> index 490db85..dbd6a5e 100644
> --- a/arch/arm64/kernel/smp.c
> +++ b/arch/arm64/kernel/smp.c
> @@ -659,9 +659,9 @@ void __init smp_init_cpus(void)
>                 acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
>                                       acpi_parse_gic_cpu_interface, 0);
>  
> -       if (cpu_count > NR_CPUS)
> +       if (cpu_count > nr_cpu_ids)
>                 pr_warn("no. of cores (%d) greater than configured maximum of %d - clipping\n",

  change to 	  pr_warn("%d cores exceeds configured maximum of %d - clipping\n",

Thanks,
Kefeng

> -                       cpu_count, NR_CPUS);
> +                       cpu_count, nr_cpu_ids);
>  
>         if (!bootcpu_valid) {
>                 pr_err("missing boot CPU MPIDR, not enabling secondaries\n");
> @@ -675,7 +675,7 @@ void __init smp_init_cpus(void)
>          * with entries in cpu_logical_map while initializing the cpus.
>          * If the cpu set-up fails, invalidate the cpu_logical_map entry.
>          */
> -       for (i = 1; i < NR_CPUS; i++) {
> +       for (i = 1; i < nr_cpu_ids; i++) {
>                 if (cpu_logical_map(i) != INVALID_HWID) {
>                         if (smp_cpu_setup(i))
>                                 cpu_logical_map(i) = INVALID_HWID;
> 
> 
> Cheers
> Suzuki
> 
> .
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-05 10:19     ` Suzuki K Poulose
  2016-08-08  5:29       ` Kefeng Wang
@ 2016-08-08  6:05       ` Kefeng Wang
  2016-08-08 10:50         ` Suzuki K Poulose
  1 sibling, 1 reply; 11+ messages in thread
From: Kefeng Wang @ 2016-08-08  6:05 UTC (permalink / raw)
  To: linux-arm-kernel

Enable the hard limit of cpu count by set boot options nr_cpus=x
on arm64, and show a better warning when cpu number exceeds the limit.

Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---

Changed since v1:
- clip cpu number in smp_init_cpus suggested-by Will and Suzuki, and update
  the warning.

 arch/arm64/kernel/smp.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 76a6d92..cbfc31c 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -661,9 +661,9 @@ void __init smp_init_cpus(void)
 		acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
 				      acpi_parse_gic_cpu_interface, 0);
 
-	if (cpu_count > NR_CPUS)
-		pr_warn("no. of cores (%d) greater than configured maximum of %d - clipping\n",
-			cpu_count, NR_CPUS);
+	if (cpu_count > nr_cpu_ids)
+		pr_warn("%d cores exceeds configured maximum of %d - clipping\n",
+			cpu_count, nr_cpu_ids);
 
 	if (!bootcpu_valid) {
 		pr_err("missing boot CPU MPIDR, not enabling secondaries\n");
@@ -677,7 +677,7 @@ void __init smp_init_cpus(void)
 	 * with entries in cpu_logical_map while initializing the cpus.
 	 * If the cpu set-up fails, invalidate the cpu_logical_map entry.
 	 */
-	for (i = 1; i < NR_CPUS; i++) {
+	for (i = 1; i < nr_cpu_ids; i++) {
 		if (cpu_logical_map(i) != INVALID_HWID) {
 			if (smp_cpu_setup(i))
 				cpu_logical_map(i) = INVALID_HWID;
-- 
1.7.12.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-08  6:05       ` [PATCH v2] " Kefeng Wang
@ 2016-08-08 10:50         ` Suzuki K Poulose
  2016-08-08 11:28           ` Kefeng Wang
  0 siblings, 1 reply; 11+ messages in thread
From: Suzuki K Poulose @ 2016-08-08 10:50 UTC (permalink / raw)
  To: linux-arm-kernel

On 08/08/16 07:05, Kefeng Wang wrote:
> Enable the hard limit of cpu count by set boot options nr_cpus=x
> on arm64, and show a better warning when cpu number exceeds the limit.
>
> Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> ---
>
> Changed since v1:
> - clip cpu number in smp_init_cpus suggested-by Will and Suzuki, and update
>   the warning.
>
>  arch/arm64/kernel/smp.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
> index 76a6d92..cbfc31c 100644
> --- a/arch/arm64/kernel/smp.c
> +++ b/arch/arm64/kernel/smp.c
> @@ -661,9 +661,9 @@ void __init smp_init_cpus(void)
>  		acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
>  				      acpi_parse_gic_cpu_interface, 0);
>
> -	if (cpu_count > NR_CPUS)
> -		pr_warn("no. of cores (%d) greater than configured maximum of %d - clipping\n",
> -			cpu_count, NR_CPUS);
> +	if (cpu_count > nr_cpu_ids)
> +		pr_warn("%d cores exceeds configured maximum of %d - clipping\n",
> +			cpu_count, nr_cpu_ids);

I think we should leave the message as it was, and is better than what you have
changed it to.


With that change,

Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-08 10:50         ` Suzuki K Poulose
@ 2016-08-08 11:28           ` Kefeng Wang
  2016-08-08 12:52             ` Suzuki K Poulose
  0 siblings, 1 reply; 11+ messages in thread
From: Kefeng Wang @ 2016-08-08 11:28 UTC (permalink / raw)
  To: linux-arm-kernel



On 2016/8/8 18:50, Suzuki K Poulose wrote:
> On 08/08/16 07:05, Kefeng Wang wrote:
>> Enable the hard limit of cpu count by set boot options nr_cpus=x
>> on arm64, and show a better warning when cpu number exceeds the limit.
>>
>> Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
>> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
>> ---
>>
>> Changed since v1:
>> - clip cpu number in smp_init_cpus suggested-by Will and Suzuki, and update
>>   the warning.
>>
>>  arch/arm64/kernel/smp.c | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
>> index 76a6d92..cbfc31c 100644
>> --- a/arch/arm64/kernel/smp.c
>> +++ b/arch/arm64/kernel/smp.c
>> @@ -661,9 +661,9 @@ void __init smp_init_cpus(void)
>>          acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
>>                        acpi_parse_gic_cpu_interface, 0);
>>
>> -    if (cpu_count > NR_CPUS)
>> -        pr_warn("no. of cores (%d) greater than configured maximum of %d - clipping\n",
>> -            cpu_count, NR_CPUS);
>> +    if (cpu_count > nr_cpu_ids)
>> +        pr_warn("%d cores exceeds configured maximum of %d - clipping\n",
>> +            cpu_count, nr_cpu_ids);
> 
> I think we should leave the message as it was, and is better than what you have
> changed it to.

The old message is OF only and the old logic shows message when the first cpu number greater than NR_CPUS.
But now the cpu_count is the total cpu counts(get from DT or ACPI), so I change the message.


> 
> 
> With that change,
> 
> Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> 
> 
> .
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-08 11:28           ` Kefeng Wang
@ 2016-08-08 12:52             ` Suzuki K Poulose
  2016-08-09  1:15               ` Kefeng Wang
  2016-08-09  2:30               ` [PATCH v3] " Kefeng Wang
  0 siblings, 2 replies; 11+ messages in thread
From: Suzuki K Poulose @ 2016-08-08 12:52 UTC (permalink / raw)
  To: linux-arm-kernel

On 08/08/16 12:28, Kefeng Wang wrote:
>
>
> On 2016/8/8 18:50, Suzuki K Poulose wrote:
>> On 08/08/16 07:05, Kefeng Wang wrote:
>>> Enable the hard limit of cpu count by set boot options nr_cpus=x
>>> on arm64, and show a better warning when cpu number exceeds the limit.
>>>
>>> Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
>>> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
>>> ---
>>>
>>> Changed since v1:
>>> - clip cpu number in smp_init_cpus suggested-by Will and Suzuki, and update
>>>   the warning.
>>>
>>>  arch/arm64/kernel/smp.c | 8 ++++----
>>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
>>> index 76a6d92..cbfc31c 100644
>>> --- a/arch/arm64/kernel/smp.c
>>> +++ b/arch/arm64/kernel/smp.c
>>> @@ -661,9 +661,9 @@ void __init smp_init_cpus(void)
>>>          acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
>>>                        acpi_parse_gic_cpu_interface, 0);
>>>
>>> -    if (cpu_count > NR_CPUS)
>>> -        pr_warn("no. of cores (%d) greater than configured maximum of %d - clipping\n",
>>> -            cpu_count, NR_CPUS);
>>> +    if (cpu_count > nr_cpu_ids)
>>> +        pr_warn("%d cores exceeds configured maximum of %d - clipping\n",
>>> +            cpu_count, nr_cpu_ids);
>>
>> I think we should leave the message as it was, and is better than what you have
>> changed it to.
>
> The old message is OF only and the old logic shows message when the first cpu number greater than NR_CPUS.

I think you misunderstood "of" (as in plain english) with OF (as in Open Firmware). To avoid
the confusion, how about making it :

"Number of cores (%d) exceeds configured maximum of %d - clipping\n" ?

Certainly a message like :

"5 cores exceeds configured maximum of %d..." doesn't look nice.


Suzuki

> But now the cpu_count is the total cpu counts(get from DT or ACPI), so I change the message.
>
>
>>
>>
>> With that change,
>>
>> Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>>
>>
>> .
>>
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-08 12:52             ` Suzuki K Poulose
@ 2016-08-09  1:15               ` Kefeng Wang
  2016-08-09  2:30               ` [PATCH v3] " Kefeng Wang
  1 sibling, 0 replies; 11+ messages in thread
From: Kefeng Wang @ 2016-08-09  1:15 UTC (permalink / raw)
  To: linux-arm-kernel



On 2016/8/8 20:52, Suzuki K Poulose wrote:
> On 08/08/16 12:28, Kefeng Wang wrote:
>>
>>
>> On 2016/8/8 18:50, Suzuki K Poulose wrote:
>>> On 08/08/16 07:05, Kefeng Wang wrote:
>>>> Enable the hard limit of cpu count by set boot options nr_cpus=x
>>>> on arm64, and show a better warning when cpu number exceeds the limit.
>>>>
>>>> Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
>>>> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
>>>> ---
>>>>
>>>> Changed since v1:
>>>> - clip cpu number in smp_init_cpus suggested-by Will and Suzuki, and update
>>>>   the warning.
>>>>
>>>>  arch/arm64/kernel/smp.c | 8 ++++----
>>>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
>>>> index 76a6d92..cbfc31c 100644
>>>> --- a/arch/arm64/kernel/smp.c
>>>> +++ b/arch/arm64/kernel/smp.c
>>>> @@ -661,9 +661,9 @@ void __init smp_init_cpus(void)
>>>>          acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
>>>>                        acpi_parse_gic_cpu_interface, 0);
>>>>
>>>> -    if (cpu_count > NR_CPUS)
>>>> -        pr_warn("no. of cores (%d) greater than configured maximum of %d - clipping\n",
>>>> -            cpu_count, NR_CPUS);
>>>> +    if (cpu_count > nr_cpu_ids)
>>>> +        pr_warn("%d cores exceeds configured maximum of %d - clipping\n",
>>>> +            cpu_count, nr_cpu_ids);
>>>
>>> I think we should leave the message as it was, and is better than what you have
>>> changed it to.
>>
>> The old message is OF only and the old logic shows message when the first cpu number greater than NR_CPUS.
> 
> I think you misunderstood "of" (as in plain english) with OF (as in Open Firmware). To avoid
> the confusion, how about making it :
> 
> "Number of cores (%d) exceeds configured maximum of %d - clipping\n" ?

Er, I do misunderstood it, my bad, will use this one, thanks :)

Kefeng
> 
> Certainly a message like :
> 
> "5 cores exceeds configured maximum of %d..." doesn't look nice.
> 
> 
> Suzuki
> 
>> But now the cpu_count is the total cpu counts(get from DT or ACPI), so I change the message.
>>
>>
>>>
>>>
>>> With that change,
>>>
>>> Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>>>
>>>
>>> .
>>>
>>
> 
> 
> .
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v3] arm64: Support hard limit of cpu count by nr_cpus
  2016-08-08 12:52             ` Suzuki K Poulose
  2016-08-09  1:15               ` Kefeng Wang
@ 2016-08-09  2:30               ` Kefeng Wang
  1 sibling, 0 replies; 11+ messages in thread
From: Kefeng Wang @ 2016-08-09  2:30 UTC (permalink / raw)
  To: linux-arm-kernel

Enable the hard limit of cpu count by set boot options nr_cpus=x
on arm64, and make a minor change about message when total number
of cpu exceeds the limit.

Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reported-by: Shiyuan Hu <hushiyuan@huawei.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---

Change since v2:
- change the warning message suggested-by Suzuki, and Suzuki's reviewed-by 
Change since v1:
- clip cpu number in smp_init_cpus suggested-by Will and Suzuki, and update
  the warning.

 arch/arm64/kernel/smp.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 76a6d92..d93d433 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -661,9 +661,9 @@ void __init smp_init_cpus(void)
 		acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_INTERRUPT,
 				      acpi_parse_gic_cpu_interface, 0);
 
-	if (cpu_count > NR_CPUS)
-		pr_warn("no. of cores (%d) greater than configured maximum of %d - clipping\n",
-			cpu_count, NR_CPUS);
+	if (cpu_count > nr_cpu_ids)
+		pr_warn("Number of cores (%d) exceeds configured maximum of %d - clipping\n",
+			cpu_count, nr_cpu_ids);
 
 	if (!bootcpu_valid) {
 		pr_err("missing boot CPU MPIDR, not enabling secondaries\n");
@@ -677,7 +677,7 @@ void __init smp_init_cpus(void)
 	 * with entries in cpu_logical_map while initializing the cpus.
 	 * If the cpu set-up fails, invalidate the cpu_logical_map entry.
 	 */
-	for (i = 1; i < NR_CPUS; i++) {
+	for (i = 1; i < nr_cpu_ids; i++) {
 		if (cpu_logical_map(i) != INVALID_HWID) {
 			if (smp_cpu_setup(i))
 				cpu_logical_map(i) = INVALID_HWID;
-- 
1.7.12.4

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-08-09  2:30 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-05  6:03 [PATCH] arm64: Support hard limit of cpu count by nr_cpus Kefeng Wang
2016-08-05  8:32 ` Will Deacon
2016-08-05  9:58   ` Kefeng Wang
2016-08-05 10:19     ` Suzuki K Poulose
2016-08-08  5:29       ` Kefeng Wang
2016-08-08  6:05       ` [PATCH v2] " Kefeng Wang
2016-08-08 10:50         ` Suzuki K Poulose
2016-08-08 11:28           ` Kefeng Wang
2016-08-08 12:52             ` Suzuki K Poulose
2016-08-09  1:15               ` Kefeng Wang
2016-08-09  2:30               ` [PATCH v3] " Kefeng Wang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.