#!/bin/bash # This util helps to reduce the workload of kdump service restarting # on udev event. When hotplugging memory / CPU, multiple udev # events may be triggered concurrently, and obviously, we don't want # to restart kdump service for each event. # This script will be called by udev, and make sure kdump service is # restart after all events we are watching are settled. # On each call, this script will update try to aquire the $throttle_lock # The first instance acquired the file lock will keep waiting for events # to settle and then reload kdump. Other instances will just exit # In this way, we can make sure kdump service is restarted immediately # and for exactly once after udev events are settled. throttle_lock="/var/lock/kdump-udev-throttle" exec 9>$throttle_lock if [ $? -ne 0 ]; then echo "Failed to create the lock file! Fallback to non-throttled kdump service restart" /bin/kdumpctl reload exit 1 fi flock -n 9 if [ $? -ne 0 ]; then echo "Throttling kdump restart for concurrent udev event" exit 0 fi # Wait for at least 1 second, at most 4 seconds for udev to settle # Idealy we will have a less than 1 second lag between udev events settle # and kdump reload sleep 1 && udevadm settle --timeout 3 # Release the lock, /bin/kdumpctl will block and make the process # holding two locks at the same time and we might miss some events exec 9>&- /bin/kdumpctl reload exit 0
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
hwdb.d | Folder | 0755 |
|
|
rules.d | Folder | 0755 |
|
|
ata_id | File | 40.73 KB | 0755 |
|
cdrom_id | File | 32.51 KB | 0755 |
|
collect | File | 20.57 KB | 0755 |
|
fc_wwpn_id | File | 1.1 KB | 0755 |
|
fido_id | File | 16.43 KB | 0755 |
|
kdump-udev-throttler | File | 1.41 KB | 0755 |
|
kpartx_id | File | 2.33 KB | 0755 |
|
mtd_probe | File | 12.41 KB | 0755 |
|
prefixdevname | File | 1.46 MB | 0755 |
|
rename_device | File | 16.46 KB | 0755 |
|
scsi_id | File | 53.7 KB | 0755 |
|
v4l_id | File | 11.99 KB | 0755 |
|