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

From: Neil Zhang
Date: Sun Oct 26 2014 - 21:43:20 EST


Greg,


> -----Original Message-----
> From: ddstreet@xxxxxxxxx [mailto:ddstreet@xxxxxxxxx] On Behalf Of Dan
> Streetman
> Sent: 2014å10æ21æ 1:03
> To: Neil Zhang
> Cc: Greg KH; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] drivers: base: update cpu offline info when do hotplug
>
> 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
>
>
> 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>
>

It's a real bug in the kernel.
What's your comments about this patch?

> >
> >> 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

Best Regards,
Neil Zhang