Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1545974 > unrolled thread

[patch 00/10] cpu/hotplug: Final cleanup

Started byThomas Gleixner <tglx@linutronix.de>
First post2016-12-21 20:40 +0100
Last post2016-12-27 21:00 +0100
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [patch 00/10] cpu/hotplug: Final cleanup Thomas Gleixner <tglx@linutronix.de> - 2016-12-21 20:40 +0100
    Re: [patch 00/10] cpu/hotplug: Final cleanup Sam Ravnborg <sam@ravnborg.org> - 2016-12-22 19:00 +0100
      Re: [patch 00/10] cpu/hotplug: Final cleanup Thomas Gleixner <tglx@linutronix.de> - 2016-12-27 12:30 +0100
        Re: [patch 00/10] cpu/hotplug: Final cleanup Sam Ravnborg <sam@ravnborg.org> - 2016-12-27 21:00 +0100

#1545974 — [patch 00/10] cpu/hotplug: Final cleanup

FromThomas Gleixner <tglx@linutronix.de>
Date2016-12-21 20:40 +0100
Subject[patch 00/10] cpu/hotplug: Final cleanup
Message-ID<sQUKm-7uR-5@gated-at.bofh.it>
The following series completes the cpuhotplug rework stage ONE.

 - Fix a completely broken new user of the state machine

 - Prevent overwriting existing states

 - Convert the last left over drivers to the state machine

 - Remove the notifiers and related code

 - Cleanup the state names (tree wide)

 - Consolidate a few hotplug states

It's also available from:

  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.hotplug

Thanks,

	tglx
---
 a/lib/cpu-notifier-error-inject.c                    |   84 ---------
 arch/arm/kernel/smp_twd.c                            |    2 
 arch/arm/mach-imx/mmdc.c                             |   34 ++-
 arch/arm/mach-mvebu/coherency.c                      |    2 
 arch/arm/mm/cache-l2x0-pmu.c                         |    2 
 arch/arm/mm/cache-l2x0.c                             |    2 
 arch/arm/vfp/vfpmodule.c                             |    2 
 arch/arm/xen/enlighten.c                             |    2 
 arch/arm64/kernel/armv8_deprecated.c                 |    2 
 arch/arm64/kernel/debug-monitors.c                   |    2 
 arch/arm64/kernel/hw_breakpoint.c                    |    2 
 arch/blackfin/kernel/perf_event.c                    |    2 
 arch/mips/kernel/pm-cps.c                            |    2 
 arch/mips/oprofile/op_model_loongson3.c              |    2 
 arch/powerpc/mm/numa.c                               |    2 
 arch/powerpc/perf/core-book3s.c                      |    2 
 arch/s390/kernel/perf_cpum_cf.c                      |    2 
 arch/s390/kernel/perf_cpum_sf.c                      |    2 
 arch/x86/entry/vdso/vma.c                            |    2 
 arch/x86/events/amd/ibs.c                            |    2 
 arch/x86/events/amd/power.c                          |    2 
 arch/x86/events/amd/uncore.c                         |    6 
 arch/x86/events/core.c                               |    6 
 arch/x86/events/intel/cqm.c                          |    4 
 arch/x86/events/intel/cstate.c                       |    5 
 arch/x86/events/intel/rapl.c                         |    4 
 arch/x86/events/intel/uncore.c                       |   10 -
 arch/x86/kernel/apb_timer.c                          |    2 
 arch/x86/kernel/apic/x2apic_cluster.c                |    2 
 arch/x86/kernel/hpet.c                               |    4 
 arch/x86/kernel/tboot.c                              |    2 
 arch/x86/kvm/x86.c                                   |    2 
 arch/x86/xen/enlighten.c                             |    4 
 arch/xtensa/kernel/perf_event.c                      |    2 
 b/arch/metag/kernel/perf/perf_event.c                |    2 
 drivers/bus/arm-cci.c                                |    2 
 drivers/bus/arm-ccn.c                                |    2 
 drivers/clocksource/arc_timer.c                      |    2 
 drivers/clocksource/arm_arch_timer.c                 |    2 
 drivers/clocksource/arm_global_timer.c               |    2 
 drivers/clocksource/dummy_timer.c                    |    2 
 drivers/clocksource/exynos_mct.c                     |    2 
 drivers/clocksource/jcore-pit.c                      |    2 
 drivers/clocksource/metag_generic.c                  |    2 
 drivers/clocksource/mips-gic-timer.c                 |    4 
 drivers/clocksource/qcom-timer.c                     |    2 
 drivers/clocksource/time-armada-370-xp.c             |    2 
 drivers/clocksource/timer-atlas7.c                   |    2 
 drivers/hwtracing/coresight/coresight-etm3x.c        |    4 
 drivers/hwtracing/coresight/coresight-etm4x.c        |    8 
 drivers/irqchip/irq-armada-370-xp.c                  |    6 
 drivers/irqchip/irq-bcm2836.c                        |    2 
 drivers/irqchip/irq-gic-v3.c                         |    6 
 drivers/irqchip/irq-gic.c                            |    2 
 drivers/irqchip/irq-hip04.c                          |    2 
 drivers/leds/trigger/ledtrig-cpu.c                   |    2 
 drivers/net/virtio_net.c                             |    4 
 drivers/perf/arm_pmu.c                               |    2 
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c                    |   81 +++-----
 drivers/scsi/bnx2i/bnx2i_init.c                      |   80 +++-----
 drivers/staging/lustre/lnet/libcfs/linux/linux-cpu.c |   85 ++++-----
 drivers/xen/events/events_fifo.c                     |    2 
 include/linux/cpu.h                                  |   90 ---------
 include/linux/cpuhotplug.h                           |    9 
 kernel/cpu.c                                         |  172 ++-----------------
 lib/Kconfig.debug                                    |   24 --
 lib/Makefile                                         |    1 
 virt/kvm/arm/arch_timer.c                            |    2 
 virt/kvm/arm/vgic/vgic-init.c                        |    2 
 virt/kvm/kvm_main.c                                  |    2 
 70 files changed, 240 insertions(+), 587 deletions(-)

[toc] | [next] | [standalone]


#1546518

FromSam Ravnborg <sam@ravnborg.org>
Date2016-12-22 19:00 +0100
Message-ID<sRfON-45E-5@gated-at.bofh.it>
In reply to#1545974
Hi Thomas.

On Wed, Dec 21, 2016 at 08:19:47PM +0100, Thomas Gleixner wrote:
> The following series completes the cpuhotplug rework stage ONE.

Just curious - what is the stage TWO (and onwards) plan?
lwn had some coverage of this work but I assume the
article is somewhat outdated.

	Sam

[toc] | [prev] | [next] | [standalone]


#1547561

FromThomas Gleixner <tglx@linutronix.de>
Date2016-12-27 12:30 +0100
Message-ID<sSY77-1nC-7@gated-at.bofh.it>
In reply to#1546518
On Thu, 22 Dec 2016, Sam Ravnborg wrote:
> Hi Thomas.
> 
> On Wed, Dec 21, 2016 at 08:19:47PM +0100, Thomas Gleixner wrote:
> > The following series completes the cpuhotplug rework stage ONE.
> 
> Just curious - what is the stage TWO (and onwards) plan?
> lwn had some coverage of this work but I assume the
> article is somewhat outdated.

Stage 2 is to consolidate all the archictecture code, i.e. reduce it to
really arch specific callbacks and keep all the other things
(synchronization, state settings etc.) in the core code.

After that we can do smart things like speed up the boot hotplug process:

prepare CPU1
kick CPU1

prepare CPU2
kick CPU2

....

prepare CPUN
kick CPUN

check CPU1 alive
bringup CPU1

...

check CPUN alive
bringup CPUN

That saves ~200ms per CPU on x86, which we now spend busy waiting for the
CPU to come alive.

There is more stuff which we can do in the long run like synchrounosly
letting CPUs bring up themself after the basic init/sync checks, but that
needs lot of surgery all over the place.

Thanks,

	tglx

[toc] | [prev] | [next] | [standalone]


#1547737

FromSam Ravnborg <sam@ravnborg.org>
Date2016-12-27 21:00 +0100
Message-ID<sT64G-6lY-7@gated-at.bofh.it>
In reply to#1547561
> > Just curious - what is the stage TWO (and onwards) plan?
> > lwn had some coverage of this work but I assume the
> > article is somewhat outdated.
> 
> Stage 2 is to consolidate all the archictecture code, i.e. reduce it to
> really arch specific callbacks and keep all the other things
> (synchronization, state settings etc.) in the core code.
> 
> After that we can do smart things like speed up the boot hotplug process:
> 
> prepare CPU1
> kick CPU1
> 
> prepare CPU2
> kick CPU2
> 
> ....
> 
> prepare CPUN
> kick CPUN
> 
> check CPU1 alive
> bringup CPU1
> 
> ...
> 
> check CPUN alive
> bringup CPUN
> 
> That saves ~200ms per CPU on x86, which we now spend busy waiting for the
> CPU to come alive.
> 
> There is more stuff which we can do in the long run like synchrounosly
> letting CPUs bring up themself after the basic init/sync checks, but that
> needs lot of surgery all over the place.

Thanks for the update - looking forward to follow this great clean-up!

	Sam

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web