[systemd-devel] Antw: [EXT] Re: minimum space needed for reload/reexec

Ulrich Windl Ulrich.Windl at rz.uni-regensburg.de
Wed Jun 30 12:14:36 UTC 2021


>>> "CHEN, Jack" <zenghuchen at siemens.com> schrieb am 30.06.2021 um 13:39 in
Nachricht
<BYAPR07MB5927C804D4314E586DCB3332D4019 at BYAPR07MB5927.namprd07.prod.outlook.com>

> Hi,
> 
> I happen to see to a fix in system, which adds a space checking before 
> reload/reexec.
> From the code:
> Require 16MiB free in /run/systemd for reloading/reexecing. After all we 
> need to serialize our state there, and if
> * we can't we'll fail badly
> #define RELOAD_DISK_SPACE_MIN (UINT64_C(16) * UINT64_C(1024) * 
> UINT64_C(1024))
> And I got further explanation from poettering:
> it's a "safety buffer", see commit msg of the fix. It's set to 16M because 
> it has to be set to something, and it sounded like a reasonably value, and
so 
> far we got no feedback to the contrary
> 
> However, just for “serialize our state there”, literally, there is no need 
> for such a big space (16M).
> There is no problem for PC. But for embedded devices, 16M is quite
prodigal.
> And in my test, even 1M free space would allow reloading/reexecing to work 
> normally.
> 
> Shall we remove this restriction? (Removing I mean we just check if there is

> free space or not) Or at least lower the threshold.
> It is not good to forbid reloading/reexecing when there is enough free 
> space, just because it is smaller than the threshold (16M)。

The obvious solution seems to be:
1) Monitor the actual memory usage across different platforms
2) Add 25% to set the final value
Or if really paranoid: use four times the maximum measured value ;-)


> 
> Best Regards
> Zenghu Chen





More information about the systemd-devel mailing list