forked from rpms/libvirt
62 lines
2.2 KiB
Diff
62 lines
2.2 KiB
Diff
|
From 711cf329b9847c4d42994389d89a7e7b83c71596 Mon Sep 17 00:00:00 2001
|
||
|
Message-Id: <711cf329b9847c4d42994389d89a7e7b83c71596@dist-git>
|
||
|
From: Michal Privoznik <mprivozn@redhat.com>
|
||
|
Date: Thu, 7 Jul 2022 16:29:33 +0200
|
||
|
Subject: [PATCH] domain_conf: Format iothread IDs more often
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
When formatting IOThreads (in virDomainDefIOThreadsFormat()), we
|
||
|
may only output the number of IOThreads, or the full list of IOThreads too:
|
||
|
|
||
|
<iothreads>4</iothreads>
|
||
|
<iothreadids>
|
||
|
<iothread id='1' thread_pool_max='10'/>
|
||
|
<iothread id='2' thread_pool_min='2' thread_pool_max='10'/>
|
||
|
<iothread id='3'/>
|
||
|
<iothread id='4'/>
|
||
|
</iothreadids>
|
||
|
|
||
|
Now, the deciding factor here is whether those individual
|
||
|
IOThreads were so called 'autofill-ed' or user provided. Well, we
|
||
|
need to take another factor in: if an IOThread has pool size
|
||
|
limit set, then we ought to format the full list.
|
||
|
|
||
|
But how can we get into a situation when a thread is autofilled
|
||
|
(i.e. not provided by user in the XML) and yet it has pool size
|
||
|
limit set? virDomainSetIOThreadParams() is the answer.
|
||
|
|
||
|
Sure, we could also unset the autofill flag whenever a pool size
|
||
|
limit is being set. But this approach allows us to not format
|
||
|
anything if the limits are reset (we don't lose the autofill
|
||
|
information).
|
||
|
|
||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||
|
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
||
|
(cherry picked from commit 5aa24958546c94a48fb8f8d6022213ca7c07c8a7)
|
||
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2059511
|
||
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
||
|
---
|
||
|
src/conf/domain_conf.c | 4 +++-
|
||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
|
||
|
index 207a45d9ae..fbc285d981 100644
|
||
|
--- a/src/conf/domain_conf.c
|
||
|
+++ b/src/conf/domain_conf.c
|
||
|
@@ -27728,7 +27728,9 @@ virDomainDefIothreadShouldFormat(const virDomainDef *def)
|
||
|
size_t i;
|
||
|
|
||
|
for (i = 0; i < def->niothreadids; i++) {
|
||
|
- if (!def->iothreadids[i]->autofill)
|
||
|
+ if (!def->iothreadids[i]->autofill ||
|
||
|
+ def->iothreadids[i]->thread_pool_min >= 0 ||
|
||
|
+ def->iothreadids[i]->thread_pool_max >= 0)
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
--
|
||
|
2.35.1
|
||
|
|