Linux-parisc archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 06/12] parisc: Replace cpu_up/down with device_online/offline
       [not found] <20191030153837.18107-1-qais.yousef@arm.com>
@ 2019-10-30 15:38 ` Qais Yousef
  2019-11-20 11:09   ` Qais Yousef
  0 siblings, 1 reply; 4+ messages in thread
From: Qais Yousef @ 2019-10-30 15:38 UTC (permalink / raw)
  To: Thomas Gleixner, Greg Kroah-Hartman
  Cc: Qais Yousef, James E.J. Bottomley, Helge Deller, Richard Fontana,
	Armijn Hemel, linux-parisc, linux-kernel

The core device API performs extra housekeeping bits that are missing
from directly calling cpu_up/down.

See commit a6717c01ddc2 ("powerpc/rtas: use device model APIs and
serialization during LPM") for an example description of what might go
wrong.

This also prepares to make cpu_up/down a private interface for anything
but the cpu subsystem.

Signed-off-by: Qais Yousef <qais.yousef@arm.com>
CC: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
CC: Helge Deller <deller@gmx.de>
CC: Richard Fontana <rfontana@redhat.com>
CC: Armijn Hemel <armijn@tjaldur.nl>
CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: linux-parisc@vger.kernel.org
CC: linux-kernel@vger.kernel.org
---

Couldn't compile test this one.

I'm not confident that this is a correct patch to be honest. This __init
indicates we're booting the secondary cpus and that might be too early in the
process to use the core API..?


 arch/parisc/kernel/processor.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c
index 13f771f74ee3..4dde5fe78f0c 100644
--- a/arch/parisc/kernel/processor.c
+++ b/arch/parisc/kernel/processor.c
@@ -212,7 +212,9 @@ static int __init processor_probe(struct parisc_device *dev)
 #ifdef CONFIG_SMP
 	if (cpuid) {
 		set_cpu_present(cpuid, true);
-		cpu_up(cpuid);
+		lock_device_hotplug();
+		device_online(get_cpu_device(cpuid));
+		unlock_device_hotplug();
 	}
 #endif
 
-- 
2.17.1


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

* Re: [PATCH 06/12] parisc: Replace cpu_up/down with device_online/offline
  2019-10-30 15:38 ` [PATCH 06/12] parisc: Replace cpu_up/down with device_online/offline Qais Yousef
@ 2019-11-20 11:09   ` Qais Yousef
  2019-11-22 19:51     ` Helge Deller
  0 siblings, 1 reply; 4+ messages in thread
From: Qais Yousef @ 2019-11-20 11:09 UTC (permalink / raw)
  To: James E.J. Bottomley, Helge Deller
  Cc: Richard Fontana, Armijn Hemel, linux-parisc, linux-kernel,
	Thomas Gleixner, Greg Kroah-Hartman

On 10/30/19 15:38, Qais Yousef wrote:
> The core device API performs extra housekeeping bits that are missing
> from directly calling cpu_up/down.
> 
> See commit a6717c01ddc2 ("powerpc/rtas: use device model APIs and
> serialization during LPM") for an example description of what might go
> wrong.
> 
> This also prepares to make cpu_up/down a private interface for anything
> but the cpu subsystem.
> 
> Signed-off-by: Qais Yousef <qais.yousef@arm.com>
> CC: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
> CC: Helge Deller <deller@gmx.de>
> CC: Richard Fontana <rfontana@redhat.com>
> CC: Armijn Hemel <armijn@tjaldur.nl>
> CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> CC: Thomas Gleixner <tglx@linutronix.de>
> CC: linux-parisc@vger.kernel.org
> CC: linux-kernel@vger.kernel.org
> ---
> 
> Couldn't compile test this one.
> 
> I'm not confident that this is a correct patch to be honest. This __init
> indicates we're booting the secondary cpus and that might be too early in the
> process to use the core API..?

Helge, James

Do you have any comment on this? I have no means to test it and I'd
appreciate if you can spin it through one of your systems.

Thanks

--
Qais Yousef

> 
> 
>  arch/parisc/kernel/processor.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c
> index 13f771f74ee3..4dde5fe78f0c 100644
> --- a/arch/parisc/kernel/processor.c
> +++ b/arch/parisc/kernel/processor.c
> @@ -212,7 +212,9 @@ static int __init processor_probe(struct parisc_device *dev)
>  #ifdef CONFIG_SMP
>  	if (cpuid) {
>  		set_cpu_present(cpuid, true);
> -		cpu_up(cpuid);
> +		lock_device_hotplug();
> +		device_online(get_cpu_device(cpuid));
> +		unlock_device_hotplug();
>  	}
>  #endif
>  
> -- 
> 2.17.1
> 

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

* Re: [PATCH 06/12] parisc: Replace cpu_up/down with device_online/offline
  2019-11-20 11:09   ` Qais Yousef
@ 2019-11-22 19:51     ` Helge Deller
  2019-11-24 10:20       ` Qais Yousef
  0 siblings, 1 reply; 4+ messages in thread
From: Helge Deller @ 2019-11-22 19:51 UTC (permalink / raw)
  To: Qais Yousef, James E.J. Bottomley
  Cc: Richard Fontana, Armijn Hemel, linux-parisc, linux-kernel,
	Thomas Gleixner, Greg Kroah-Hartman

On 20.11.19 12:09, Qais Yousef wrote:
> On 10/30/19 15:38, Qais Yousef wrote:
>> The core device API performs extra housekeeping bits that are missing
>> from directly calling cpu_up/down.
>>
>> See commit a6717c01ddc2 ("powerpc/rtas: use device model APIs and
>> serialization during LPM") for an example description of what might go
>> wrong.
>>
>> This also prepares to make cpu_up/down a private interface for anything
>> but the cpu subsystem.
>>
>> Signed-off-by: Qais Yousef <qais.yousef@arm.com>
>> CC: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
>> CC: Helge Deller <deller@gmx.de>
>> CC: Richard Fontana <rfontana@redhat.com>
>> CC: Armijn Hemel <armijn@tjaldur.nl>
>> CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> CC: Thomas Gleixner <tglx@linutronix.de>
>> CC: linux-parisc@vger.kernel.org
>> CC: linux-kernel@vger.kernel.org
>> ---
>>
>> Couldn't compile test this one.
>>
>> I'm not confident that this is a correct patch to be honest. This __init
>> indicates we're booting the secondary cpus and that might be too early in the
>> process to use the core API..?
>
> Helge, James
>
> Do you have any comment on this? I have no means to test it and I'd
> appreciate if you can spin it through one of your systems.

I pulled your cpu-hp-cleanup branch from git://linux-arm.org/linux-qy
and compiled a 32- and a 64-bit parisc kernel.

I faced one compile warning:
linux-2.6/kernel/cpu.c: In function ‘hibernation_bringup_sleep_cpu’:
linux-2.6/kernel/cpu.c:1237:1: warning: control reaches end of non-void function [-Wreturn-type]

Other than that the 32- and 64-bit SMP kernel booted nicely.
You may add to the series:
Acked-by: Helge Deller <deller@gmx.de>   # parisc

Thanks,
Helge


>>
>>  arch/parisc/kernel/processor.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c
>> index 13f771f74ee3..4dde5fe78f0c 100644
>> --- a/arch/parisc/kernel/processor.c
>> +++ b/arch/parisc/kernel/processor.c
>> @@ -212,7 +212,9 @@ static int __init processor_probe(struct parisc_device *dev)
>>  #ifdef CONFIG_SMP
>>  	if (cpuid) {
>>  		set_cpu_present(cpuid, true);
>> -		cpu_up(cpuid);
>> +		lock_device_hotplug();
>> +		device_online(get_cpu_device(cpuid));
>> +		unlock_device_hotplug();
>>  	}
>>  #endif
>>
>> --
>> 2.17.1
>>


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

* Re: [PATCH 06/12] parisc: Replace cpu_up/down with device_online/offline
  2019-11-22 19:51     ` Helge Deller
@ 2019-11-24 10:20       ` Qais Yousef
  0 siblings, 0 replies; 4+ messages in thread
From: Qais Yousef @ 2019-11-24 10:20 UTC (permalink / raw)
  To: Helge Deller
  Cc: James E.J. Bottomley, Richard Fontana, Armijn Hemel,
	linux-parisc, linux-kernel, Thomas Gleixner, Greg Kroah-Hartman

On 11/22/19 20:51, Helge Deller wrote:
> On 20.11.19 12:09, Qais Yousef wrote:
> > On 10/30/19 15:38, Qais Yousef wrote:
> >> The core device API performs extra housekeeping bits that are missing
> >> from directly calling cpu_up/down.
> >>
> >> See commit a6717c01ddc2 ("powerpc/rtas: use device model APIs and
> >> serialization during LPM") for an example description of what might go
> >> wrong.
> >>
> >> This also prepares to make cpu_up/down a private interface for anything
> >> but the cpu subsystem.
> >>
> >> Signed-off-by: Qais Yousef <qais.yousef@arm.com>
> >> CC: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
> >> CC: Helge Deller <deller@gmx.de>
> >> CC: Richard Fontana <rfontana@redhat.com>
> >> CC: Armijn Hemel <armijn@tjaldur.nl>
> >> CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> >> CC: Thomas Gleixner <tglx@linutronix.de>
> >> CC: linux-parisc@vger.kernel.org
> >> CC: linux-kernel@vger.kernel.org
> >> ---
> >>
> >> Couldn't compile test this one.
> >>
> >> I'm not confident that this is a correct patch to be honest. This __init
> >> indicates we're booting the secondary cpus and that might be too early in the
> >> process to use the core API..?
> >
> > Helge, James
> >
> > Do you have any comment on this? I have no means to test it and I'd
> > appreciate if you can spin it through one of your systems.
> 
> I pulled your cpu-hp-cleanup branch from git://linux-arm.org/linux-qy
> and compiled a 32- and a 64-bit parisc kernel.
> 
> I faced one compile warning:
> linux-2.6/kernel/cpu.c: In function ‘hibernation_bringup_sleep_cpu’:
> linux-2.6/kernel/cpu.c:1237:1: warning: control reaches end of non-void function [-Wreturn-type]
> 
> Other than that the 32- and 64-bit SMP kernel booted nicely.
> You may add to the series:
> Acked-by: Helge Deller <deller@gmx.de>   # parisc

Great! Thanks for testing it and reporting the warning.

Cheers

--
Qais Yousef

> 
> Thanks,
> Helge
> 
> 
> >>
> >>  arch/parisc/kernel/processor.c | 4 +++-
> >>  1 file changed, 3 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c
> >> index 13f771f74ee3..4dde5fe78f0c 100644
> >> --- a/arch/parisc/kernel/processor.c
> >> +++ b/arch/parisc/kernel/processor.c
> >> @@ -212,7 +212,9 @@ static int __init processor_probe(struct parisc_device *dev)
> >>  #ifdef CONFIG_SMP
> >>  	if (cpuid) {
> >>  		set_cpu_present(cpuid, true);
> >> -		cpu_up(cpuid);
> >> +		lock_device_hotplug();
> >> +		device_online(get_cpu_device(cpuid));
> >> +		unlock_device_hotplug();
> >>  	}
> >>  #endif
> >>
> >> --
> >> 2.17.1
> >>
> 

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

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20191030153837.18107-1-qais.yousef@arm.com>
2019-10-30 15:38 ` [PATCH 06/12] parisc: Replace cpu_up/down with device_online/offline Qais Yousef
2019-11-20 11:09   ` Qais Yousef
2019-11-22 19:51     ` Helge Deller
2019-11-24 10:20       ` Qais Yousef

Linux-parisc archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-parisc/0 linux-parisc/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-parisc linux-parisc/ https://lore.kernel.org/linux-parisc \
		linux-parisc@vger.kernel.org
	public-inbox-index linux-parisc

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-parisc


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git