CPU hotplug error handling fixes
Get series with b4
b4 am 20070716134855.GA1858@APFDCB5CVersions newest first
- v1 Latest10 patches 13 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/10 | sysfs: fix kmem_cache_free(NULL)fs/ | +7 | 3 replies | |
| 2/10 | sysdev: add error check in sysdev_register()drivers/ | +38 | 2 replies | |
| 3/10 | sysfs: fix error handling in create_files()fs/ | +12 | 4 replies | |
| 4/10 | cpu: deliver CPU_UP_CANCELED only to NOTIFY_OKed callbacks with CPU_UP_PREPAREkernel/ | +2 | 4 replies | |
| 5/10 | topology: remove topology_dev_mapdrivers/ | +1 | 0 replies | |
| 6/10 | thermal_throttle: fix cpu hotplug error handlingarch/ | +6 | 0 replies | |
| 7/10 | msr: fix cpu hotplug error handlingarch/ | +19 | 0 replies | |
| 8/10 | cpuid: fix cpu hotplug error handlingarch/ | +19 | 0 replies | |
| 9/10 | mce: fix cpu hotplug error handlingarch/ | +24 | 0 replies | |
| 10/10 | intel_cacheinfo: fix cpu hotplug error handlingarch/ | +40 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/10] CPU hotplug error handling fixes
This series of patches fixes the error handling for cpu hotplug. The problem is revealed by CPU hotplug/unplug test with fault-injection.
The patch 1-3 are sysfs or driver core related error handling fixes. These are not directly related to cpu hotplug. But these are needed to pass the stress test.
The patch 4 changes the behavior when one of the callbacks in notifier chain returns NOTIFY_BAD with CPU_UP_PREPARE event. This change makes cpu hotplug error handling simple.
The patch 5 simplifies the cpu hotplug event handling in topology.c by the patch 4.
The patch 6-10 are error handling fixes in cpu hotplug event callbacks. These fixes also depend on the change by the patch 4.
Here is the test script I have confirmed with these patches. I guess we still have the similar bugs that I could not test due to no hardware. So it may be worth someone trying this script.
----------[ cut here ]----------
#!/bin/bash
FAILTYPE=failslab
CPU=1 CPU_ONLINE=/sys/devices/system/cpu/cpu${CPU}/online
faulty_system()
{
bash -c "echo 1 > /proc/self/make-it-fail && exec $*"
}[ "$UID" == 0 ] || exit 1
[ -n "$FAILTYPE" -a -f /debug/$FAILTYPE/probability ] || exit 1 [ -f $CPU_ONLINE ] || exit 1
echo N > /debug/$FAILTYPE/ignore-gfp-wait
echo Y > /debug/$FAILTYPE/task-filter
echo 1 > /debug/$FAILTYPE/probability
echo -1 > /debug/$FAILTYPE/times
while true
do
faulty_system "echo 0 > $CPU_ONLINE"
faulty_system "echo 1 > $CPU_ONLINE"
done