]> xenbits.xensource.com Git - libvirt.git/commit
virTimeBackOffWait: Avoid long periods of sleep
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 13 Mar 2017 10:05:08 +0000 (11:05 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 16 Mar 2017 08:21:39 +0000 (09:21 +0100)
commit67dcb797ed7f1fbb048aa47006576f424923933b
tree77945494e38bd150fc6386689129daf95a796cde
parentc5781e37a092e6222ff286c2835a92abe668bed3
virTimeBackOffWait: Avoid long periods of sleep

While connecting to qemu monitor, the first thing we do is wait
for it to show up. However, we are doing it with some timeout to
avoid indefinite waits (e.g. when qemu doesn't create the monitor
socket at all). After beaa447a29 we are using exponential back
off timeout meaning, after the first connection attempt we wait
1ms, then 2ms, then 4 and so on.  This allows us to bring down
wait time for small domains where qemu initializes quickly.
However, on the other end of this scale are some domains with
huge amounts of guest memory. Now imagine that we've gotten up to
wait time of 15 seconds. The next one is going to be 30 seconds,
and the one after that whole minute. Well, okay - with current
code we are not going to wait longer than 30 seconds in total,
but this is going to change in the next commit.

The exponential back off is usable only for first few iterations.
Then it needs to be caped (one second was chosen as the limit)
and switch to constant wait time.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/util/virtime.c