Bug 1147639

Summary: Handle VIR_DOMAIN_EVENT_ID_TUNABLE in libvirt-override.c
Product: Red Hat Enterprise Linux 7 Reporter: Jiri Denemark <jdenemar>
Component: libvirt-pythonAssignee: Pavel Hrdina <phrdina>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.1CC: dyuan, honzhang, lhuang, mzhan, weizhan
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-python-1.2.8-5.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 07:57:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jiri Denemark 2014-09-29 16:15:52 UTC
Description of problem:

Compiling libvirt-python reports the following warning:

libvirt-python-1.2.8/libvirt-override.c:6539:5:warning – enumeration  value 'VIR_DOMAIN_EVENT_ID_TUNABLE' not handled in switch [-Wswitch]

Moreover, examples/event-test.py does not handle this event either.

Version-Release number of selected component (if applicable):

libvirt-python-1.2.8-4.el7

How reproducible:

100%

Steps to Reproduce:
1. try to register a callback for VIR_DOMAIN_EVENT_ID_TUNABLE event in python

Actual results:

The callback is never called.

Expected results:

The callback is called whenever a tunable event is fired.

Additional info:

Comment 1 Pavel Hrdina 2014-09-30 17:25:34 UTC
Upstream commit:

commit 714aa155e84c4b55e37b5554c9dbc5e7ddd61cd3
Author: Pavel Hrdina <phrdina>
Date:   Tue Sep 30 17:52:29 2014 +0200

    implement new tunable event
    
    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1147639
    
    Signed-off-by: Pavel Hrdina <phrdina>

Comment 4 Luyao Huang 2014-11-12 02:58:53 UTC
I can reproduce this issue with libvirt-python-1.2.8-4:

check the code there is no function for tunable event


Verify this bug with  libvirt-python-1.2.8-5.el7
1.open first terminal :
# python /root/libvirt-python/examples/event-test.py
Using uri:qemu:///system

2.try some command:

[root@lhuang libvirt]# virsh vcpupin test3 1 1

[root@lhuang libvirt]# virsh emulatorpin test3 1

[root@lhuang libvirt]# virsh schedinfo test3
Scheduler      : posix
cpu_shares     : 1024
vcpu_period    : 100000
vcpu_quota     : -1
emulator_period: 100000
emulator_quota : -1

[root@lhuang libvirt]# virsh schedinfo test3 --set cpu_shares=0
Scheduler      : posix
cpu_shares     : 2
vcpu_period    : 100000
vcpu_quota     : -1
emulator_period: 100000
emulator_quota : -1

[root@lhuang libvirt]# virsh schedinfo test3 --set vcpu_period=12312
Scheduler      : posix
cpu_shares     : 2
vcpu_period    : 12312
vcpu_quota     : -1
emulator_period: 100000
emulator_quota : -1

[root@lhuang libvirt]# virsh schedinfo test3 --set vcpu_quota=1234
Scheduler      : posix
cpu_shares     : 2
vcpu_period    : 12312
vcpu_quota     : 1234
emulator_period: 100000
emulator_quota : -1

[root@lhuang libvirt]# virsh schedinfo test3 --set emulator_period=1234
Scheduler      : posix
cpu_shares     : 2
vcpu_period    : 12312
vcpu_quota     : 1234
emulator_period: 1234
emulator_quota : -1

[root@lhuang libvirt]# virsh schedinfo test3 --set emulator_quota=1234
Scheduler      : posix
cpu_shares     : 2
vcpu_period    : 12312
vcpu_quota     : 1234
emulator_period: 1234
emulator_quota : 1234

[root@lhuang libvirt]# virsh blkdeviotune test3 hda
total_bytes_sec: 0
read_bytes_sec : 0
write_bytes_sec: 0
total_iops_sec : 0
read_iops_sec  : 0
write_iops_sec : 0

[root@lhuang libvirt]# virsh blkdeviotune test3 hda 123

[root@lhuang libvirt]# virsh blkdeviotune test3 hda --read-bytes-sec 1234

[root@lhuang libvirt]# virsh blkdeviotune test3 hda --write-bytes-sec 12345

[root@lhuang libvirt]# virsh blkdeviotune test3 hda --total-iops-sec 12345

[root@lhuang libvirt]# virsh blkdeviotune test3 hda --read-iops-sec 1234

[root@lhuang libvirt]# virsh blkdeviotune test3 hda --write-iops-sec 12322


3.from first terminal:
# python /root/libvirt-python/examples/event-test.py
Using uri:qemu:///system
myDomainEventTunableCallback: Domain test3(62) {'cputune.vcpupin1': '1'}
myDomainEventTunableCallback: Domain test3(62) {'cputune.emulatorpin': '1'}
myDomainEventTunableCallback: Domain test3(62) {'cputune.cpu_shares': 2L}
myDomainEventTunableCallback: Domain test3(62) {'cputune.vcpu_period': 12312L}
myDomainEventTunableCallback: Domain test3(62) {'cputune.vcpu_quota': 1234L}
myDomainEventTunableCallback: Domain test3(62) {'cputune.emulator_period': 1234L}
myDomainEventTunableCallback: Domain test3(62) {'cputune.emulator_quota': 1234L}
myDomainEventTunableCallback: Domain test3(62) {'blkdeviotune.total_bytes_sec': 123L, 'blkdeviotune.disk': 'hda'}
myDomainEventTunableCallback: Domain test3(62) {'blkdeviotune.read_bytes_sec': 1234L, 'blkdeviotune.disk': 'hda'}
myDomainEventTunableCallback: Domain test3(62) {'blkdeviotune.write_bytes_sec': 12345L, 'blkdeviotune.disk': 'hda'}
myDomainEventTunableCallback: Domain test3(62) {'blkdeviotune.total_iops_sec': 12345L, 'blkdeviotune.disk': 'hda'}
myDomainEventTunableCallback: Domain test3(62) {'blkdeviotune.read_iops_sec': 1234L, 'blkdeviotune.disk': 'hda'}
myDomainEventTunableCallback: Domain test3(62) {'blkdeviotune.write_iops_sec': 12322L, 'blkdeviotune.disk': 'hda'}

Comment 6 errata-xmlrpc 2015-03-05 07:57:04 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-0334.html