qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] qga: Start qemu-ga service after NetworkManager start


From: Denis V. Lunev
Subject: Re: [PATCH] qga: Start qemu-ga service after NetworkManager start
Date: Thu, 17 Aug 2023 12:47:48 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

On 8/17/23 12:26, Daniel P. Berrangé wrote:
On Thu, Aug 17, 2023 at 04:04:46AM +0800, Efim Shevrin via wrote:
From: Fima Shevrin <efim.shevrin@virtuozzo.com>

When the guest OS starts, qemu-ga sends an event to the host.
This event allows services on the host to start configuring
the already running guest OS. When configuring network settings,
it is possible that an external service will receive a signal
from qemu-ga about the start of guest OS, while NetworkManager
may not be running yet. Therefore, network setting may not
be available. With the current patch, we eliminate the described
race condition between qemu-ga and NetworkManager for guest OS
network setting cases.
A host mgmt app should not be assuming that networking is
running at all, and if it is, the guest might not even be
on the same subnet as the host. Conceivably someone could
even be using QGA to inject files to configure networking.

Overall, IMHO, it is wrong to correlate host notification
that QGA is running, with any assumption about state of
the guest networking.

IOW, I don't think we should make an attempt to serialize
startup of QGA after guest networking. The QGA should be
run as soon as its data transport (virtio-serial/vsock)
is available, which is the current state.

If a host consumer of QGA wants to do something with
guest networking, they should check for guest network
state with the 'guest-network-get-interfaces' command.

This is very tight question at my opinion.

Frankly speaking my original intention here would be
to put QGA at the very end of the startup sequence
in order to avoid complications. In the other case
any host side software, which would like to control
the guest behavior will be in trouble.

For example, yet another common application is a
guest backup, here I would say application based
backup. In a normal case this is done through
   /etc/qemu-ga/fsfreeze-hook

I would say that agent should start very last, in the
other case *ANY* software working through the agent
must take efforts to avoid such transient state, which
is complicated.

Den



reply via email to

[Prev in Thread] Current Thread [Next in Thread]