mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-20 03:10:27 +01:00
If the socket's RX buffer is full it's probably because other process is doing lot of changes very quickly, faster than we can process them. Let's give the writer a small time to finish: 1. Avoid contending the kernel's RTNL lock, so we don't make the whole situation even worse and it can finish earlier. 2. Avoid having to resync again and again due to trying to resync while the writer is still doing quick changes, so we are unable to catch up yet. This won't help if this situation takes a long time or is continuous, but that's unlikely to happen, and if it does, it's the writer's fault for starving the whole system. There is no need to progresively increase the backoff time for the same reason: if this situation takes lot of time, it's the writer's fault. It's neither a good idea because the whole NM process will end being sleeping long times, not doing anything at all, without being able to react when the Netlink messages burst stops. |
||
|---|---|---|
| .. | ||
| devlink | ||
| tests | ||
| wifi | ||
| wpan | ||
| meson.build | ||
| nm-linux-platform.c | ||
| nm-linux-platform.h | ||
| nm-netlink.c | ||
| nm-netlink.h | ||
| nm-platform-private.h | ||
| nm-platform-utils.c | ||
| nm-platform-utils.h | ||
| nm-platform.c | ||
| nm-platform.h | ||
| nmp-base.c | ||
| nmp-base.h | ||
| nmp-global-tracker.c | ||
| nmp-global-tracker.h | ||
| nmp-netns.c | ||
| nmp-netns.h | ||
| nmp-object.c | ||
| nmp-object.h | ||
| nmp-plobj.c | ||
| nmp-plobj.h | ||
| README.md | ||
libnm-platform
A static helper library that provides NMPlatform and other utils.
This is NetworkManager's internal netlink library, but also contains
helpers for sysfs, ethtool and other kernel APIs.
NMPlaform is also a cache of objects of the netlink API: NMPCache
and NMPObject. These objects are used throughout NetworkManager
also for generally tracking information about these types. For example,
NMPlatformIP4Address (the public part of a certain type of NMPObject)
is not only used to track platform addresses from netlink in the cache,
but to track information about IPv4 addresses in general.
This depends on the following helper libraries