RE: [PATCH] drivers: base: update cpu offline info when do hotplug

From: Neil Zhang
Date: Mon Oct 20 2014 - 23:19:21 EST


Yasuaki,

> -----Original Message-----
> From: Yasuaki Ishimatsu [mailto:isimatu.yasuaki@xxxxxxxxxxxxxx]
> Sent: 2014å10æ21æ 10:57
> To: Dan Streetman; Neil Zhang
> Cc: Greg KH; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] drivers: base: update cpu offline info when do hotplug
>
> Hi Neil and Dan,
>
> (2014/10/21 2:02), Dan Streetman wrote:
> > On Mon, Oct 20, 2014 at 3:40 AM, Neil Zhang <zhangwm@xxxxxxxxxxx> wrote:
> >> Greg,
> >>
> >>
> >> -----Original Message-----
> >> From: Greg KH [mailto:gregkh@xxxxxxxxxxxxxxxxxxx]
> >> Sent: 2014å10æ20æ 14:48
> >> To: Neil Zhang
> >> Cc: linux-kernel@xxxxxxxxxxxxxxx
> >> Subject: Re: [PATCH] drivers: base: update cpu offline info when do
> >> hotplug
> >>
> >> On Sun, Oct 19, 2014 at 11:39:23PM -0700, Neil Zhang wrote:
> >>>> How much noise is this going to cause on a big/little system that
> >>>> constantly hot unplug/plugs processors all of the time?
> >>>
> >>> Can you explain more what kind of noise will be introduced on a big/little
> system?
> >>
> >> Have you tested this on such a machine?
> >>
> >> I didn't have such kind of machine on hand.
> >> Can anyone has such machine to verify it?
> >> Thanks!
> >
> > I tested this on a ppc PowerVM system, using dlpar operations to
> > remove/add cpus.
> >
> > Without this patch the cpu online nodes get out of sync with the main
> > online node (and the actual state of the cpus), because they aren't
> > updated as the cpus are brought up/down:
> >
>
> > [root@br10p02 cpu]$ pwd
> > /sys/devices/system/cpu
> > [root@br10p02 cpu]$ cat online
> > 0-39
> > [root@br10p02 cpu]$ for n in {0..47} ; do test $( cat cpu$n/online )
> > -eq 1 && echo -n "$n " ; done ; echo ""
> > 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
> > 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
>
> How is the issue reproduced.
>
> Here is a result on my x86 box with linux-3.18-rc1.
>
> - before offline CPU
> # cd /sys/devices/system/cpu/
> # cat online
> 0-59
> # for n in {0..59} ; do test $( cat cpu$n/online ) -eq 1 && echo -n "$n " ;
> done ; echo ""
> 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
> 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
> 55
> 56 57 58 59
>
> - after offline CPU{1..59}
> # for n in {1..59} ; do echo 0 > cpu$n/online; done # cat online
> 0
> # for n in {0..59} ; do test $( cat cpu$n/online ) -eq 1 && echo -n "$n " ;
> done ; echo ""
> 0
>
> It seems that dev->offline is set to correct valute.
>

Please use an in kernel governor to up / down a core instead of sysfs interface.

> Thanks,
> Yasuaki Ishimatsu
>
> >
> >
> > While with the patch, the cpu online nodes are kept up to date as the
> > cpus are brought up/down:
> >
> > [root@br10p02 cpu]$ pwd
> > /sys/devices/system/cpu
> > [root@br10p02 cpu]$ cat online
> > 0-39
> > [root@br10p02 cpu]$ for n in {0..47} ; do test $( cat cpu$n/online )
> > -eq 1 && echo -n "$n " ; done ; echo ""
> > 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
> > 27 28 29 30 31 32 33 34 35 36 37 38 39
> >
> >
> > Feel free to add
> >
> > Tested-by: Dan Streetman <ddstreet@xxxxxxxx>
> >
> >>
> >>> As I know IKS on arm will use cpu_suspend way to power down a core.
> >>
> >> Are you sure that it also doesn't use that same functionality to drop a
> processor to save power?
> >>
> >> As I know it use cpu_suspend to switch out a processor in IKS and there is
> no cpu hotplug notifier in this procedure.
> >>
> >>
> >> Why do you need/want this notification? What are you going to do with this
> information that you don't already have?
> >>
> >> The offline won't be updated if an in kernel hotplug governor plug in / out
> a core which cause the sysfs interface report a wrong status.
> >>
> >>
> >> thanks,
> >>
> >> greg k-h
> >>
> >>
> >> Best Regards,
> >> Neil Zhang
> > --
> > To unsubscribe from this list: send the line "unsubscribe
> > linux-kernel" in the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
>


Best Regards,
Neil Zhang