public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] patches for stop_machine
@ 2008-04-29  1:25 Hidetoshi Seto
  2008-04-29  1:29 ` [PATCH 1/3] stop_machine: short exit path for if we cannot create enough threads Hidetoshi Seto
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Hidetoshi Seto @ 2008-04-29  1:25 UTC (permalink / raw)
  To: Rusty Russell, linux-kernel

Hi Rusty and all,

This is a proposal of minor improvement for kernel/stop_machine.c

[PATCH 1/3] stop_machine: short exit path for if we cannot create enough threads
[PATCH 2/3] stop_machine: add timeout for child thread deployment
[PATCH 3/3] stop_machine: add stopmachine_timeout sysctl entry

The main topic is "how about adding timeout for stop_machine?"
I think it will act as a safety net.

For example (of silly situation), system can hung with following way:

  # ./silly.sh
  run an evil loop task on AP
   pid 6138's current affinity mask: ff
   pid 6138's new affinity mask: fe
   to pretend lock up, chrt -f -p 99 6138
   loop[6138] is on CPU #4
  to do stopmachine, try to off #7
  echo 0 > /sys/devices/system/cpu/cpu7/online
  (never return)

After applying patch set here, it can be prevented.

  # ./silly.sh
   :
  echo 0 > /sys/devices/system/cpu/cpu7/online
  stopmachine: Failed to stop machine in time(5s). Are there any CPUs on file?
  ./silly.sh: line 22: echo: write error: Device or resource busy
  offline is failed
  OK, kill evil loop[6138]
  try to off #7 again
  echo 0 > /sys/devices/system/cpu/cpu7/online
  CPU #7 is now offline
  done!

Please refer description of each patch for the detail.
All comments are welcomed.

Thanks,
H.Seto

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-05-06  5:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-29  1:25 [PATCH 0/3] patches for stop_machine Hidetoshi Seto
2008-04-29  1:29 ` [PATCH 1/3] stop_machine: short exit path for if we cannot create enough threads Hidetoshi Seto
2008-05-06  2:57   ` Rusty Russell
2008-04-29  1:31 ` [PATCH 2/3] stop_machine: add timeout for child thread deployment Hidetoshi Seto
2008-04-29  1:33 ` [PATCH 3/3] stop_machine: add stopmachine_timeout sysctl entry Hidetoshi Seto
2008-04-29  2:25 ` [PATCH 0/3] patches for stop_machine Hidetoshi Seto
2008-05-02 20:33 ` Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox