All of lore.kernel.org
 help / color / mirror / Atom feed
From: holt@sgi.com (Robin Holt)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH -v7 0/11] Shutdown from reboot_cpuid without stopping other cpus.
Date: Wed, 1 May 2013 22:39:52 -0500	[thread overview]
Message-ID: <20130502033952.GU3658@sgi.com> (raw)
In-Reply-To: <20130501231347.GT14496@n2100.arm.linux.org.uk>

On Thu, May 02, 2013 at 12:13:47AM +0100, Russell King - ARM Linux wrote:
> On Wed, May 01, 2013 at 12:06:40PM -0500, Robin Holt wrote:
> > Andrew, Please do _NOT_ take this patch series yet.  I am sending this
> > to you because you had comments on my -v6 submission.
> 
> Another reason for not applying this is that I believe it wilfully breaks
> a bunch of ARM platforms - such as removing the 'g' reboot mode (for gpio
> based reboot on PXA), and removing the 's' reboot mode off a bunch of ARM
> platforms which have no way to do a hard reboot.

I am not sure what your basis for this statement is.

First, let me look at the GPIO question.
 - The pxa_restart() function was changed to use REBOOT_GPIO instead of
   'g'.

 - The tosa_poweroff() and spitz_poweroff() functions were changed to
   pass REBOOT_GPIO instead of 'g' to pxa_restart().

 - The "SHARP Tosa" machine description was setting restart_mode to 'g',
   and setting the restart function to tosa_restart() which ignored the
   'g' so I eliminated setting restart_mode to 'g' in the first place.

 - The equivalent held true for the "SHARP Spitz", "SHARP Borzoi", and
   "SHARP Akita" machines.

 - I see no other uses of 'g' for a mode being passed to a restart
   function.

Second, the restart_mode = 's' cases:
 - The "EBSA110" machine was setting it, but ebsa110_restart does not use
   the reboot mode parameter so I eliminated it.

 - The "Chalice-CATS" machine was converted from setting restart_mode = 's'
   to setting reboot_mode = REBOOT_WARM and footbridge_restart was converted
   to checking for REBOOT_WARM.

 - The "MIO A701" machine was setting it, but the mioa701_restart() function
   does not use the parameter so I eliminated it.

Of the 418 machines with ".restart =" being set, there are 73 uniq
functions being utilized.  Here is the summary of those functions:
bcm2835_restart                 mode param not used.
clps711x_restart                mode param not used.
cns3xxx_restart                 mode param not used.
corgi_restart                   mode param not used.
cpu8815_restart                 mode param not used.
da8xx_restart                   mode param not used.
davinci_restart                 mode param not used.
dove_restart                    mode param not used.
ebsa110_restart                 mode param not used.
ep93xx_restart                  mode param not used.
eva_restart                     mode param not used.
exynos4_restart                 mode param not used.
exynos5_restart                 mode param not used.
footbridge_restart              Adapted to use REBOOT_WARM instead of 's'
h720x_restart                   mode param not used.
highbank_restart                Adapted to use REBOOT_COLD instead of 'h'
imx6q_restart                   mode param not used.
integrator_restar               mode param not used.
iop13xx_restart                 mode param not used.
iop3xx_restart                  mode param not used.
ixp4xx_restart                  Adapted to use REBOOT_WARM instead of 's'
kirkwood_restart                mode param not used.
ks8695_restart                  Adapted to use REBOOT_WARM instead of 's'
kzm9g_restart                   mode param not used.
lpc23xx_restart                 Adapted to use REBOOT_WARM and REBOOT_COLD
mioa701_restart                 mode param not used.
mmp_restart                     mode param not used.
mv78xx0_restart                 mode param not used.
mvebu_restart                   mode param not used.
mxc_restart                     mode param not used.
mxs_restart                     mode param not used.
n2100_restart                   mode param not used.
netwinder_restart               Adapted to use REBOOT_WARM instead of 's'
netx_restart                    mode param not used.
nuc9xx_restart                  Adapted to use REBOOT_WARM instead of 's'
omap1_restart                   mode param not used.
omap2xxx_restart                mode param not used.
omap3xxx_restart                mode param not used.
omap44xx_restart                mode param not used.
orion5x_restart                 mode param not used.
picoxcell_wdt_restart           mode param not used.
pxa168_restart                  mode param not used.
pxa_restart                     Adapted to use REBOOT_WARM, REBOOT_COLD, and REBOOT_GPIO.
realview_eb_restart             mode param not used.
realview_pb1176_restart         mode param not used.
realview_pb11mp_restart         mode param not used.
realview_pba8_restart           mode param not used.
realview_pbx_restart            mode param not used.
rpc_restart                     mode param not used.
s3c2410_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c2412_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c2416_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c2443_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c244x_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c64xx_restart                 Adapted to use REBOOT_WARM instead of 's'
s5p64x0_restart                 Adapted to use REBOOT_WARM instead of 's'
s5pc100_restart                 Adapted to use REBOOT_WARM instead of 's'
s5pv210_restart                 mode param not used.
sa11x0_restart                  Adapted to use REBOOT_WARM instead of 's'
shark_restart                   mode param not used.
sirfsoc_restart                 mode param not used.
socfpga_cyclone5_restart        mode param not used.
spear_restart                   Adapted to use REBOOT_WARM instead of 's'
spitz_restart                   mode param not used.
sunxi_restart                   mode param not used.
tegra_assert_system_reset       mode param not used.
tnetv107x_restart               mode param not used.
tosa_restart                    mode param not used.
u300_restart                    Adapted to use REBOOT_WARM and REBOOT_COLD
versatile_restart               mode param not used.
voiceblue_restart               mode param not used.
vt8500_restart                  mode param not used.

Callers to pxa_restart were converted as follows:
 - corgi_poweroff(), corgi_restart(), and poodle_poweroff() were converted
   from passing 'h' to passing REBOOT_COLD.

 - mioa701_poweroff() and mioa701_restart() were converted from passing
   's' to passing REBOOT_WARM.

 - As discussed above, tosa_poweroff() and spitz_poweroff() were converted
  from using 'g' to passing REBOOT_GPIO.

>From the above list, no other functions which utilized the mode
parameter were found being called from anything other than their machine
desription's .restart callout.

I _THOUGHT_ I had checked each and every one fairly thoroughly to
ensure all callers were converted as appropriate to pass in REBOOT_COLD,
REBOOT_WARM, or REBOOT_GPIO instead of 'h', 's', or 'g'.  It was a lot of
code to look over with no strong familiarity so I likely missed something,
but I did put an honest effort into doing this right.  If you could point
to a specific problem, I will address it.

Thanks,
Robin

WARNING: multiple messages have this Message-ID (diff)
From: Robin Holt <holt@sgi.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Robin Holt <holt@sgi.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Guan Xuetao <gxt@mprc.pku.edu.cn>,
	Miguel Boton <mboton.lkml@gmail.com>, Russ Anderson <rja@sgi.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	the arch/x86 maintainers <x86@kernel.org>,
	Arm Mailing List <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH -v7 0/11] Shutdown from reboot_cpuid without stopping other cpus.
Date: Wed, 1 May 2013 22:39:52 -0500	[thread overview]
Message-ID: <20130502033952.GU3658@sgi.com> (raw)
In-Reply-To: <20130501231347.GT14496@n2100.arm.linux.org.uk>

On Thu, May 02, 2013 at 12:13:47AM +0100, Russell King - ARM Linux wrote:
> On Wed, May 01, 2013 at 12:06:40PM -0500, Robin Holt wrote:
> > Andrew, Please do _NOT_ take this patch series yet.  I am sending this
> > to you because you had comments on my -v6 submission.
> 
> Another reason for not applying this is that I believe it wilfully breaks
> a bunch of ARM platforms - such as removing the 'g' reboot mode (for gpio
> based reboot on PXA), and removing the 's' reboot mode off a bunch of ARM
> platforms which have no way to do a hard reboot.

I am not sure what your basis for this statement is.

First, let me look at the GPIO question.
 - The pxa_restart() function was changed to use REBOOT_GPIO instead of
   'g'.

 - The tosa_poweroff() and spitz_poweroff() functions were changed to
   pass REBOOT_GPIO instead of 'g' to pxa_restart().

 - The "SHARP Tosa" machine description was setting restart_mode to 'g',
   and setting the restart function to tosa_restart() which ignored the
   'g' so I eliminated setting restart_mode to 'g' in the first place.

 - The equivalent held true for the "SHARP Spitz", "SHARP Borzoi", and
   "SHARP Akita" machines.

 - I see no other uses of 'g' for a mode being passed to a restart
   function.

Second, the restart_mode = 's' cases:
 - The "EBSA110" machine was setting it, but ebsa110_restart does not use
   the reboot mode parameter so I eliminated it.

 - The "Chalice-CATS" machine was converted from setting restart_mode = 's'
   to setting reboot_mode = REBOOT_WARM and footbridge_restart was converted
   to checking for REBOOT_WARM.

 - The "MIO A701" machine was setting it, but the mioa701_restart() function
   does not use the parameter so I eliminated it.

Of the 418 machines with ".restart =" being set, there are 73 uniq
functions being utilized.  Here is the summary of those functions:
bcm2835_restart                 mode param not used.
clps711x_restart                mode param not used.
cns3xxx_restart                 mode param not used.
corgi_restart                   mode param not used.
cpu8815_restart                 mode param not used.
da8xx_restart                   mode param not used.
davinci_restart                 mode param not used.
dove_restart                    mode param not used.
ebsa110_restart                 mode param not used.
ep93xx_restart                  mode param not used.
eva_restart                     mode param not used.
exynos4_restart                 mode param not used.
exynos5_restart                 mode param not used.
footbridge_restart              Adapted to use REBOOT_WARM instead of 's'
h720x_restart                   mode param not used.
highbank_restart                Adapted to use REBOOT_COLD instead of 'h'
imx6q_restart                   mode param not used.
integrator_restar               mode param not used.
iop13xx_restart                 mode param not used.
iop3xx_restart                  mode param not used.
ixp4xx_restart                  Adapted to use REBOOT_WARM instead of 's'
kirkwood_restart                mode param not used.
ks8695_restart                  Adapted to use REBOOT_WARM instead of 's'
kzm9g_restart                   mode param not used.
lpc23xx_restart                 Adapted to use REBOOT_WARM and REBOOT_COLD
mioa701_restart                 mode param not used.
mmp_restart                     mode param not used.
mv78xx0_restart                 mode param not used.
mvebu_restart                   mode param not used.
mxc_restart                     mode param not used.
mxs_restart                     mode param not used.
n2100_restart                   mode param not used.
netwinder_restart               Adapted to use REBOOT_WARM instead of 's'
netx_restart                    mode param not used.
nuc9xx_restart                  Adapted to use REBOOT_WARM instead of 's'
omap1_restart                   mode param not used.
omap2xxx_restart                mode param not used.
omap3xxx_restart                mode param not used.
omap44xx_restart                mode param not used.
orion5x_restart                 mode param not used.
picoxcell_wdt_restart           mode param not used.
pxa168_restart                  mode param not used.
pxa_restart                     Adapted to use REBOOT_WARM, REBOOT_COLD, and REBOOT_GPIO.
realview_eb_restart             mode param not used.
realview_pb1176_restart         mode param not used.
realview_pb11mp_restart         mode param not used.
realview_pba8_restart           mode param not used.
realview_pbx_restart            mode param not used.
rpc_restart                     mode param not used.
s3c2410_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c2412_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c2416_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c2443_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c244x_restart                 Adapted to use REBOOT_WARM instead of 's'
s3c64xx_restart                 Adapted to use REBOOT_WARM instead of 's'
s5p64x0_restart                 Adapted to use REBOOT_WARM instead of 's'
s5pc100_restart                 Adapted to use REBOOT_WARM instead of 's'
s5pv210_restart                 mode param not used.
sa11x0_restart                  Adapted to use REBOOT_WARM instead of 's'
shark_restart                   mode param not used.
sirfsoc_restart                 mode param not used.
socfpga_cyclone5_restart        mode param not used.
spear_restart                   Adapted to use REBOOT_WARM instead of 's'
spitz_restart                   mode param not used.
sunxi_restart                   mode param not used.
tegra_assert_system_reset       mode param not used.
tnetv107x_restart               mode param not used.
tosa_restart                    mode param not used.
u300_restart                    Adapted to use REBOOT_WARM and REBOOT_COLD
versatile_restart               mode param not used.
voiceblue_restart               mode param not used.
vt8500_restart                  mode param not used.

Callers to pxa_restart were converted as follows:
 - corgi_poweroff(), corgi_restart(), and poodle_poweroff() were converted
   from passing 'h' to passing REBOOT_COLD.

 - mioa701_poweroff() and mioa701_restart() were converted from passing
   's' to passing REBOOT_WARM.

 - As discussed above, tosa_poweroff() and spitz_poweroff() were converted
  from using 'g' to passing REBOOT_GPIO.

>From the above list, no other functions which utilized the mode
parameter were found being called from anything other than their machine
desription's .restart callout.

I _THOUGHT_ I had checked each and every one fairly thoroughly to
ensure all callers were converted as appropriate to pass in REBOOT_COLD,
REBOOT_WARM, or REBOOT_GPIO instead of 'h', 's', or 'g'.  It was a lot of
code to look over with no strong familiarity so I likely missed something,
but I did put an honest effort into doing this right.  If you could point
to a specific problem, I will address it.

Thanks,
Robin

  parent reply	other threads:[~2013-05-02  3:39 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-01 17:06 [PATCH -v7 0/11] Shutdown from reboot_cpuid without stopping other cpus Robin Holt
2013-05-01 17:06 ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 01/11] CPU hotplug: Provide a generic helper to disable/enable CPU hotplug Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 02/11] Migrate shutdown/reboot to boot cpu Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 03/11] Remove -stable friendly PF_THREAD_BOUND define Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 04/11] Move shutdown/reboot related functions to kernel/reboot.c Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 05/11] checkpatch.pl the new kernel/reboot.c file Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 06/11] x86, prepare reboot_mode for moving to generic kernel code Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 07/11] unicore32, " Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 08/11] arm, Remove unused restart_mode fields from some arm subarchs Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-01 23:09   ` Russell King - ARM Linux
2013-05-01 23:09     ` Russell King - ARM Linux
2013-05-01 17:06 ` [PATCH -v7 09/11] arm, prepare reboot_mode for moving to generic kernel code Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 10/11] arm, change reboot_mode to use enum reboot_mode Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-02  7:30   ` Ingo Molnar
2013-05-02  7:30     ` Ingo Molnar
2013-05-02 12:49     ` Robin Holt
2013-05-02 12:49       ` Robin Holt
2013-05-01 17:06 ` [PATCH -v7 11/11] Move arch/x86 reboot= handling to generic kernel Robin Holt
2013-05-01 17:06   ` Robin Holt
2013-05-02  7:34   ` Ingo Molnar
2013-05-02  7:34     ` Ingo Molnar
2013-05-01 23:13 ` [PATCH -v7 0/11] Shutdown from reboot_cpuid without stopping other cpus Russell King - ARM Linux
2013-05-01 23:13   ` Russell King - ARM Linux
2013-05-02  2:19   ` Robin Holt
2013-05-02  2:19     ` Robin Holt
2013-05-02  3:39   ` Robin Holt [this message]
2013-05-02  3:39     ` Robin Holt
2013-05-02 18:05     ` Russell King - ARM Linux
2013-05-02 18:05       ` Russell King - ARM Linux
2013-05-03 19:05       ` Robin Holt
2013-05-03 19:05         ` Robin Holt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130502033952.GU3658@sgi.com \
    --to=holt@sgi.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.