mirror of
https://github.com/systemd/systemd.git
synced 2025-07-18 04:59:11 +03:00
udevd: notify when max number value of children is reached only once per batch of events
When booting with "udev.log-priority=debug" for example, the output might be spammed with messages like this: systemd-udevd[23545]: maximum number (248) of children reached systemd-udevd[23545]: maximum number (248) of children reached systemd-udevd[23545]: maximum number (248) of children reached systemd-udevd[23545]: maximum number (248) of children reached systemd-udevd[23545]: maximum number (248) of children reached systemd-udevd[23545]: maximum number (248) of children reached systemd-udevd[23545]: maximum number (248) of children reached While the message itself is useful, printing it per batch of events should be enough.
This commit is contained in:
committed by
Lennart Poettering
parent
a6d04b1a17
commit
5406c36844
@ -549,6 +549,7 @@ static int worker_spawn(Manager *manager, struct event *event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void event_run(Manager *manager, struct event *event) {
|
static void event_run(Manager *manager, struct event *event) {
|
||||||
|
static bool log_children_max_reached = true;
|
||||||
struct worker *worker;
|
struct worker *worker;
|
||||||
Iterator i;
|
Iterator i;
|
||||||
int r;
|
int r;
|
||||||
@ -573,11 +574,19 @@ static void event_run(Manager *manager, struct event *event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (hashmap_size(manager->workers) >= arg_children_max) {
|
if (hashmap_size(manager->workers) >= arg_children_max) {
|
||||||
if (arg_children_max > 1)
|
|
||||||
|
/* Avoid spamming the debug logs if the limit is already reached and
|
||||||
|
* many events still need to be processed */
|
||||||
|
if (log_children_max_reached && arg_children_max > 1) {
|
||||||
log_debug("Maximum number (%u) of children reached.", hashmap_size(manager->workers));
|
log_debug("Maximum number (%u) of children reached.", hashmap_size(manager->workers));
|
||||||
|
log_children_max_reached = false;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Re-enable the debug message for the next batch of events */
|
||||||
|
log_children_max_reached = true;
|
||||||
|
|
||||||
/* start new worker and pass initial device */
|
/* start new worker and pass initial device */
|
||||||
worker_spawn(manager, event);
|
worker_spawn(manager, event);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user