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

From: Yasuaki Ishimatsu
Date: Tue Oct 21 2014 - 00:48:31 EST


(2014/10/21 12:36), Neil Zhang wrote:


-----Original Message-----
From: Yasuaki Ishimatsu [mailto:isimatu.yasuaki@xxxxxxxxxxxxxx]
Sent: 2014å10æ21æ 11:27
To: Neil Zhang; Dan Streetman
Cc: Greg KH; linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH] drivers: base: update cpu offline info when do hotplug

(2014/10/21 12:18), Neil Zhang wrote:
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.

Thank you for the information. But I don't know the in kernel governor?
Could you point a documentation of it?



Simply means that you call cpu_down / cpu_up directly in kernel base on the profiler.

I understood it.
When using sysfs, device_online/offline() changes dev->offline.
Therefore, this problem did not occur in my previous test.

Thanks,
Yasuaki Ishimatsu



Thanks,
Yasuaki Ishimatsu


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
 {.n + +% lzwm b ë r zX  w {ay ÊÚ ,j
f h z  w

j:+v w j m zZ+ Ýj" ! iO z v ^ m
nÆ Y&




Best Regards,
Neil Zhang
ïïìï&ï~ï&ïïï+-ïïÝïïwïïËïïïmïbïïdzïÞ)ïïïw*jgïïïïïïïïÝj/ïïïzïÞïï2ïÞïïï&ï)ßïaïïïïïGïïïhïïj:+vïïïwïÙ>WïïïïiïaxPjïmïïïï -ï+ïïdï_



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