After commit 9cce844abf07 ("MIPS: CPU#0 is not hotpluggable"),
c->hotpluggable is 0 for CPU 0 and it will not generate a control
file in sysfs for this CPU:
[root@linux loongson]# cat /sys/devices/system/cpu/cpu0/online
cat: /sys/devices/system/cpu/cpu0/online: No such file or directory
[root@linux loongson]# echo 0 > /sys/devices/system/cpu/cpu0/online
bash: /sys/devices/system/cpu/cpu0/online: Permission denied
So no need to check CPU 0 in {loongson3,bmips,octeon}_cpu_disable(),
just remove them.
Signed-off-by: Tiezhu Yang <[email protected]>
---
arch/mips/cavium-octeon/smp.c | 3 ---
arch/mips/kernel/smp-bmips.c | 3 ---
arch/mips/loongson64/smp.c | 3 ---
3 files changed, 9 deletions(-)
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
index 076db9a..66ce552 100644
--- a/arch/mips/cavium-octeon/smp.c
+++ b/arch/mips/cavium-octeon/smp.c
@@ -290,9 +290,6 @@ static int octeon_cpu_disable(void)
{
unsigned int cpu = smp_processor_id();
- if (cpu == 0)
- return -EBUSY;
-
if (!octeon_bootloader_entry_addr)
return -ENOTSUPP;
diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c
index 1dbfb5a..359b176 100644
--- a/arch/mips/kernel/smp-bmips.c
+++ b/arch/mips/kernel/smp-bmips.c
@@ -362,9 +362,6 @@ static int bmips_cpu_disable(void)
{
unsigned int cpu = smp_processor_id();
- if (cpu == 0)
- return -EBUSY;
-
pr_info("SMP: CPU%d is offline\n", cpu);
set_cpu_online(cpu, false);
diff --git a/arch/mips/loongson64/smp.c b/arch/mips/loongson64/smp.c
index aa0cd72..b8c1fc3 100644
--- a/arch/mips/loongson64/smp.c
+++ b/arch/mips/loongson64/smp.c
@@ -544,9 +544,6 @@ static int loongson3_cpu_disable(void)
unsigned long flags;
unsigned int cpu = smp_processor_id();
- if (cpu == 0)
- return -EBUSY;
-
set_cpu_online(cpu, false);
calculate_cpu_foreign_map();
local_irq_save(flags);
--
2.1.0
On 11/25/2020 2:11 AM, Tiezhu Yang wrote:
> After commit 9cce844abf07 ("MIPS: CPU#0 is not hotpluggable"),
> c->hotpluggable is 0 for CPU 0 and it will not generate a control
> file in sysfs for this CPU:
>
> [root@linux loongson]# cat /sys/devices/system/cpu/cpu0/online
> cat: /sys/devices/system/cpu/cpu0/online: No such file or directory
> [root@linux loongson]# echo 0 > /sys/devices/system/cpu/cpu0/online
> bash: /sys/devices/system/cpu/cpu0/online: Permission denied
>
> So no need to check CPU 0 in {loongson3,bmips,octeon}_cpu_disable(),
> just remove them.
>
> Signed-off-by: Tiezhu Yang <[email protected]>
> ---
> arch/mips/cavium-octeon/smp.c | 3 ---
> arch/mips/kernel/smp-bmips.c | 3 ---
For smp-bmips.c:
Acked-by: Florian Fainelli <[email protected]>
--
Florian
On Wed, Nov 25, 2020 at 06:11:30PM +0800, Tiezhu Yang wrote:
> After commit 9cce844abf07 ("MIPS: CPU#0 is not hotpluggable"),
> c->hotpluggable is 0 for CPU 0 and it will not generate a control
> file in sysfs for this CPU:
>
> [root@linux loongson]# cat /sys/devices/system/cpu/cpu0/online
> cat: /sys/devices/system/cpu/cpu0/online: No such file or directory
> [root@linux loongson]# echo 0 > /sys/devices/system/cpu/cpu0/online
> bash: /sys/devices/system/cpu/cpu0/online: Permission denied
>
> So no need to check CPU 0 in {loongson3,bmips,octeon}_cpu_disable(),
> just remove them.
>
> Signed-off-by: Tiezhu Yang <[email protected]>
> ---
> arch/mips/cavium-octeon/smp.c | 3 ---
> arch/mips/kernel/smp-bmips.c | 3 ---
> arch/mips/loongson64/smp.c | 3 ---
> 3 files changed, 9 deletions(-)
applied to mips-next.
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
Hi,
On 2020/11/25 18:11, Tiezhu Yang wrote:
> After commit 9cce844abf07 ("MIPS: CPU#0 is not hotpluggable"),
Why CPU#0 is not hotpluggable on MIPS? Does that unrealizable?
> c->hotpluggable is 0 for CPU 0 and it will not generate a control
> file in sysfs for this CPU:
>
> [root@linux loongson]# cat /sys/devices/system/cpu/cpu0/online
> cat: /sys/devices/system/cpu/cpu0/online: No such file or directory
> [root@linux loongson]# echo 0 > /sys/devices/system/cpu/cpu0/online
> bash: /sys/devices/system/cpu/cpu0/online: Permission denied
>
> So no need to check CPU 0 in {loongson3,bmips,octeon}_cpu_disable(),
missing cps_cpu_disable()?
Thanks,
Wei
> just remove them.
>
> Signed-off-by: Tiezhu Yang <[email protected]>
> ---
> arch/mips/cavium-octeon/smp.c | 3 ---
> arch/mips/kernel/smp-bmips.c | 3 ---
> arch/mips/loongson64/smp.c | 3 ---
> 3 files changed, 9 deletions(-)
>
> diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
> index 076db9a..66ce552 100644
> --- a/arch/mips/cavium-octeon/smp.c
> +++ b/arch/mips/cavium-octeon/smp.c
> @@ -290,9 +290,6 @@ static int octeon_cpu_disable(void)
> {
> unsigned int cpu = smp_processor_id();
>
> - if (cpu == 0)
> - return -EBUSY;
> -
> if (!octeon_bootloader_entry_addr)
> return -ENOTSUPP;
>
> diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c
> index 1dbfb5a..359b176 100644
> --- a/arch/mips/kernel/smp-bmips.c
> +++ b/arch/mips/kernel/smp-bmips.c
> @@ -362,9 +362,6 @@ static int bmips_cpu_disable(void)
> {
> unsigned int cpu = smp_processor_id();
>
> - if (cpu == 0)
> - return -EBUSY;
> -
> pr_info("SMP: CPU%d is offline\n", cpu);
>
> set_cpu_online(cpu, false);
> diff --git a/arch/mips/loongson64/smp.c b/arch/mips/loongson64/smp.c
> index aa0cd72..b8c1fc3 100644
> --- a/arch/mips/loongson64/smp.c
> +++ b/arch/mips/loongson64/smp.c
> @@ -544,9 +544,6 @@ static int loongson3_cpu_disable(void)
> unsigned long flags;
> unsigned int cpu = smp_processor_id();
>
> - if (cpu == 0)
> - return -EBUSY;
> -
> set_cpu_online(cpu, false);
> calculate_cpu_foreign_map();
> local_irq_save(flags);
>
On 12/15/2020 11:26 AM, liwei (GF) wrote:
> Hi,
>
> On 2020/11/25 18:11, Tiezhu Yang wrote:
>> After commit 9cce844abf07 ("MIPS: CPU#0 is not hotpluggable"),
> Why CPU#0 is not hotpluggable on MIPS? Does that unrealizable?
The early discussion is here:
https://patchwork.kernel.org/project/linux-mips/patch/[email protected]/
As Jiaxun said, it seems that this is a software limitation.
I think the initial aim of commit 9cce844abf07 ("MIPS: CPU#0 is not
hotpluggable")
is to solve ltp test failure.
>
>> c->hotpluggable is 0 for CPU 0 and it will not generate a control
>> file in sysfs for this CPU:
>>
>> [root@linux loongson]# cat /sys/devices/system/cpu/cpu0/online
>> cat: /sys/devices/system/cpu/cpu0/online: No such file or directory
>> [root@linux loongson]# echo 0 > /sys/devices/system/cpu/cpu0/online
>> bash: /sys/devices/system/cpu/cpu0/online: Permission denied
>>
>> So no need to check CPU 0 in {loongson3,bmips,octeon}_cpu_disable(),
> missing cps_cpu_disable()?
Yes, thank you, let me send a patch to do it.
Thanks,
Tiezhu
>
> Thanks,
> Wei
>
>> just remove them.
>>
>> Signed-off-by: Tiezhu Yang <[email protected]>
>> ---
>> arch/mips/cavium-octeon/smp.c | 3 ---
>> arch/mips/kernel/smp-bmips.c | 3 ---
>> arch/mips/loongson64/smp.c | 3 ---
>> 3 files changed, 9 deletions(-)
>>
>> diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
>> index 076db9a..66ce552 100644
>> --- a/arch/mips/cavium-octeon/smp.c
>> +++ b/arch/mips/cavium-octeon/smp.c
>> @@ -290,9 +290,6 @@ static int octeon_cpu_disable(void)
>> {
>> unsigned int cpu = smp_processor_id();
>>
>> - if (cpu == 0)
>> - return -EBUSY;
>> -
>> if (!octeon_bootloader_entry_addr)
>> return -ENOTSUPP;
>>
>> diff --git a/arch/mips/kernel/smp-bmips.c b/arch/mips/kernel/smp-bmips.c
>> index 1dbfb5a..359b176 100644
>> --- a/arch/mips/kernel/smp-bmips.c
>> +++ b/arch/mips/kernel/smp-bmips.c
>> @@ -362,9 +362,6 @@ static int bmips_cpu_disable(void)
>> {
>> unsigned int cpu = smp_processor_id();
>>
>> - if (cpu == 0)
>> - return -EBUSY;
>> -
>> pr_info("SMP: CPU%d is offline\n", cpu);
>>
>> set_cpu_online(cpu, false);
>> diff --git a/arch/mips/loongson64/smp.c b/arch/mips/loongson64/smp.c
>> index aa0cd72..b8c1fc3 100644
>> --- a/arch/mips/loongson64/smp.c
>> +++ b/arch/mips/loongson64/smp.c
>> @@ -544,9 +544,6 @@ static int loongson3_cpu_disable(void)
>> unsigned long flags;
>> unsigned int cpu = smp_processor_id();
>>
>> - if (cpu == 0)
>> - return -EBUSY;
>> -
>> set_cpu_online(cpu, false);
>> calculate_cpu_foreign_map();
>> local_irq_save(flags);
>>