Blocking call in phosphor-networkd

Lei Yu at
Wed Oct 19 18:09:47 AEDT 2022

On Wed, Oct 19, 2022 at 12:52 PM Patrick Williams <patrick at> wrote:
> On Wed, Oct 19, 2022 at 11:40:17AM +0800, Lei Yu wrote:
> > How about changing the code to read the `/etc/hostname` file directly?
> > It is much faster than making DBus call to `systemd-hostnamed`.
> Absolutely not.
> The value of `/etc/hostname` is considered to be the "static hostname",
> which is configured by default in the 'base-files' package to be the
> value of ${MACHINE}:
> poky/meta/recipes-core/base-files/ = "${MACHINE}"
> poky/meta/recipes-core/base-files/         echo ${hostname} > ${D}${sysconfdir}/hostname
> The value from the dbus call is the "transient hostname" which is
> typically assigned by the DHCP server and is much much more likely to be
> something that resolves properly on your network.  Since all the
> machines of the same type will have the same static hostname (due to it
> being derived from MACHINE) you are almost certain that this name is
> useless for any purpose.

According to

Otherwise, a transient hostname may be set during runtime, for example
based on information in a DHCP lease, see
systemd-hostnamed.service(8). Both NetworkManager and
systemd-networkd.service(8) allow this. Note that
systemd-hostnamed.service(8) gives higher priority to the static
hostname, so the transient hostname will only be used if the static
hostname is not configured.

systemd-networkd will use the static hostname anyway even DHCP gives a
transient hostname.
So I do not think it makes any difference.

Lei YU

More information about the openbmc mailing list