aboutsummaryrefslogtreecommitdiffstats
path: root/udev
diff options
context:
space:
mode:
authorHarald Hoyer <harald@redhat.com>2008-09-16 09:41:16 +0200
committerHarald Hoyer <harald@redhat.com>2008-09-16 10:38:10 +0200
commitcefaaa0dd6b2d60f674875cc8b86d5846e8033f7 (patch)
tree7d0c98ac43be903b407366c396362ab782a2aa32 /udev
parentc0e42318dcca68d960ca1d7977af2979bc99b8aa (diff)
downloadinitscripts-cefaaa0dd6b2d60f674875cc8b86d5846e8033f7.tar
initscripts-cefaaa0dd6b2d60f674875cc8b86d5846e8033f7.tar.gz
initscripts-cefaaa0dd6b2d60f674875cc8b86d5846e8033f7.tar.bz2
initscripts-cefaaa0dd6b2d60f674875cc8b86d5846e8033f7.tar.xz
initscripts-cefaaa0dd6b2d60f674875cc8b86d5846e8033f7.zip
https://bugzilla.redhat.com/show_bug.cgi?id=437110
On System z, typical hardware setups can consist of up to several thousand I/O devices. The current udev rules for handling these devices and the ccw_init helper script are implemented in an insufficient way, leading to unnecessarily high usage of memory and cpu time during system startup. The attached patch against the initscripts-8.45.19.EL-1 source RPM reduces this resource usage drastically by a) fixing a number of coding problems in helper script ccw_init (the current version creates failure indications in /dev/.udev/failed for each device) b) restricting the ccw_init script to network devices (ccw_init is only relevant for network devices) Using these changes, memory consumption on an example system with ~1500 devices could be reduced by 80% (VSZ), resp. 50% (RSS) and the elapsed duration for udev could be reduced from 19s down to 6 seconds. Business case: with reduced memory and time consumption during startup, more Linux images can be run with the same amount of resources.
Diffstat (limited to 'udev')
-rw-r--r--udev/rules.d/55-ccw.rules10
1 files changed, 9 insertions, 1 deletions
diff --git a/udev/rules.d/55-ccw.rules b/udev/rules.d/55-ccw.rules
index d32f125a..dc0db663 100644
--- a/udev/rules.d/55-ccw.rules
+++ b/udev/rules.d/55-ccw.rules
@@ -1 +1,9 @@
-ACTION=="add", SUBSYSTEM=="ccw", RUN+="/lib/udev/ccw_init"
+ACTION=="add", SUBSYSTEM=="ccw", SYSFS{cutype}=="1731/01", RUN+="/lib/udev/ccw_init"
+ACTION=="add", SUBSYSTEM=="ccw", SYSFS{cutype}=="1731/05", RUN+="/lib/udev/ccw_init"
+ACTION=="add", SUBSYSTEM=="ccw", SYSFS{cutype}=="1731/06", RUN+="/lib/udev/ccw_init"
+ACTION=="add", SUBSYSTEM=="ccw", SYSFS{cutype}=="3088/01", RUN+="/lib/udev/ccw_init"
+ACTION=="add", SUBSYSTEM=="ccw", SYSFS{cutype}=="3088/08", RUN+="/lib/udev/ccw_init"
+ACTION=="add", SUBSYSTEM=="ccw", SYSFS{cutype}=="3088/60", RUN+="/lib/udev/ccw_init"
+ACTION=="add", SUBSYSTEM=="ccw", SYSFS{cutype}=="3088/61", RUN+="/lib/udev/ccw_init"
+ACTION=="add", SUBSYSTEM=="ccw", SYSFS{cutype}=="3088/1E", RUN+="/lib/udev/ccw_init"
+ACTION=="add", SUBSYSTEM=="ccw", SYSFS{cutype}=="3088/1F", RUN+="/lib/udev/ccw_init"