mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: Return perf status that affect next boot for shutoff domains
While we set up perf events for a shutoff domain and check the settings, All of perf events are reported as 'disabled', unless we add --config, This is redundant for a shutoff domain. # virsh domstate $GUEST shut off # virsh perf --domain $GUEST cmt : disabled mbmt : disabled mbml : disabled ...... # virsh perf --domain $GUEST --enable mbmt mbmt : enabled # virsh perf --domain $GUEST cmt : disabled mbmt : disabled mbml : disabled ...... Use virDomainObjGetOneDefState instead of virDomainObjGetOneDef to fix the issue. After patch, The perf event status of a shutoff domain is reported correctly: # virsh domstate $GUEST shut off # virsh perf --domain $GUEST cmt : disabled mbmt : disabled mbml : disabled ...... # virsh perf --domain $GUEST --enable mbmt mbmt : enabled # virsh perf --domain $GUEST cmt : disabled mbmt : enabled mbml : disabled ...... Signed-off-by: Lin Ma <lma@suse.de> Reviewed-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com> Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
308ec831bb
commit
10841b6cb6
@ -9109,6 +9109,7 @@ qemuDomainGetPerfEvents(virDomainPtr dom,
|
||||
int npar = 0;
|
||||
size_t i;
|
||||
int ret = -1;
|
||||
bool live = false;
|
||||
|
||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
|
||||
VIR_DOMAIN_AFFECT_CONFIG |
|
||||
@ -9123,7 +9124,7 @@ qemuDomainGetPerfEvents(virDomainPtr dom,
|
||||
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!(def = virDomainObjGetOneDef(vm, flags)))
|
||||
if (!(def = virDomainObjGetOneDefState(vm, flags, &live)))
|
||||
goto endjob;
|
||||
|
||||
priv = vm->privateData;
|
||||
@ -9131,7 +9132,7 @@ qemuDomainGetPerfEvents(virDomainPtr dom,
|
||||
for (i = 0; i < VIR_PERF_EVENT_LAST; i++) {
|
||||
bool perf_enabled;
|
||||
|
||||
if (flags & VIR_DOMAIN_AFFECT_CONFIG)
|
||||
if ((flags & VIR_DOMAIN_AFFECT_CONFIG) || !live)
|
||||
perf_enabled = def->perf.events[i] == VIR_TRISTATE_BOOL_YES;
|
||||
else
|
||||
perf_enabled = virPerfEventIsEnabled(priv->perf, i);
|
||||
|
Loading…
x
Reference in New Issue
Block a user