#!/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 |
|
|
accelerometer | File | 60.82 KB | 0755 |
|
ata_id | File | 48.06 KB | 0755 |
|
cdrom_id | File | 56.09 KB | 0755 |
|
collect | File | 31.54 KB | 0755 |
|
kdump-udev-throttler | File | 1.41 KB | 0755 |
|
mtd_probe | File | 10.9 KB | 0755 |
|
phys-port-name-gen | File | 1.18 KB | 0755 |
|
rename_device | File | 15.04 KB | 0755 |
|
scsi_id | File | 56.86 KB | 0755 |
|
tascam_fpga | File | 913 B | 0755 |
|
tascam_fw | File | 1.1 KB | 0755 |
|
udev-kvm-check | File | 15.12 KB | 0755 |
|
v4l_id | File | 23.3 KB | 0755 |
|