- Support for PCI passthrough devices is now fully functional for the first time. While we consider support as experimental, since there is still work to be done to utilize hardware acceleration facilities as well as further testing pending, attaching PCI devices directly to guests is now possible. Also note that while hot-plugging PCI devices is supported, hot-unplugging is not. Further limitations, e.g. for live guest migration, apply for now.
We strictly recommend to use libvirt for all configuring, including PCI devices. Therefore, a step-by-step description of how to attach a PCI device to a KVM guest on z Systems will follow when the respective code becomes available in one of the next libvirt releases.
- Runtime instrumentation in KVM guests: IBM z13 and LinuxONE machines introduced a new hardware facility which allows to collect sampling data on code execution in CPUs at runtime. This data can be used by just-in-time compilers, like the one provided by IBM Java, to improve the generated code for better performance.
- IPL from any subchannel set: Prior to QEMU v2.7, KVM guests could only IPL/boot from devices with a subchannel set ID of 0. Once IPL'd, they could attach disks in any subchannel set just fine, but the IPL/boot from devices in subchannel sets 1-3 was not possible. With the addition of this feature, KVM guests can IPL from devices in all 4 subchannel sets.
Here is a sample domain definition indicating the change:
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’qcow2’/>
<source file=’/var/lib/libvirt/images/guest.qcow2’/>
<target dev=’vda’ bus=’virtio’/>
<address type=’ccw’ cssid=’0xab’ ssid=’0x2’
devno=’0x0037’/>
</disk>
Thursday, September 15, 2016
QEMU v2.7 released
QEMU v2.7 is out! Here is a list of the highlights for KVM on z:
Wednesday, September 7, 2016
Open Positions in Development
Recently graduated (or about to do so) and looking for a job in KVM or Linux development on z Systems?
Then go to this page and search for
Then go to this page and search for
- 59794BR for a position in KVM on z development ("Entwickler/in für Linux Virtualisierung auf IBM z Systems"), or
- 59784BR for a position in Linux on z development ("Linux Entwickler für IBM z Systems (m/f)")
Friday, July 29, 2016
Linux kernel 4.7 released
In Linux kernel 4.7 (available here), we improved usability of the kvm_stat tool for z Systems, introducing (among others) new option -p to filter by process ID.
Using kvm_stat, one can monitor e.g. the number of SIE exits or specific diags to investigate performance issues:
Using kvm_stat, one can monitor e.g. the number of SIE exits or specific diags to investigate performance issues:
Use option -p to further investigate specific QEMU processes to identify the potential culprits:kvm statistics - summary Event Total Current kvm_s390_sie_enter 621113 96 kvm_s390_sie_exit 621113 96
kvm_vcpu_wakeup 231054 69 kvm_s390_intercept_instruction 187720 24 kvm_halt_poll_ns 131133 15 kvm_s390_handle_diag 64543 12 kvm_userspace_exit 1427 11 kvm_s390_handle_sigp 121746 1 kvm_set_irq 154402 0 kvm_s390_handle_sigp_pei 18407 0 kvm_s390_handle_stsi 12 0 kvm_s390_handle_stfl 1 0
$ ./kvm_stat -p 4304 -1 | grep kvm_s390_sie kvm_s390_sie_enter 3985
3985
kvm_s390_sie_exit
3985
3985
kvm_s390_sie_fault 0 0
Wednesday, July 13, 2016
Webinar: KVM for z Systems Performance
Abstract: KVM for IBM z Systems performance has not been presented at conferences before. This session covers performance aspects of the KVM host, virtual devices, and considerations for guest definitions to reach certain performance levels. It will also give examples how to monitor host and guest.
Note: It is not intended to compare KVM for IBM z Systems to other hypervisors.
Speaker: Martin Kammerer, Manager Linux on z Systems Performance Evaluation, IBM Germany
Audience: IT Managers, IT Architects, System Administrators
Date: Wednesday, July 20, 2016
Time: 11:00 AM EST / New York, 4:00 PM UK, 5:00 PM CET / Germany
Duration: 75 minutes
Registration: You can register here. After registering, you will receive a confirmation email containing information about joining the webinar.
Replay & Archive: All sessions are recorded. For the archive as well as a replay and handout of this session (available by July 25, 2016), as well as all previous webcasts please visit http://www.vm.ibm.com/education/lvc/
Contact: Please direct any questions to Stephanie Gherghe at gherghe@de.ibm.com.
Note: It is not intended to compare KVM for IBM z Systems to other hypervisors.
Speaker: Martin Kammerer, Manager Linux on z Systems Performance Evaluation, IBM Germany
Audience: IT Managers, IT Architects, System Administrators
Date: Wednesday, July 20, 2016
Time: 11:00 AM EST / New York, 4:00 PM UK, 5:00 PM CET / Germany
Duration: 75 minutes
Registration: You can register here. After registering, you will receive a confirmation email containing information about joining the webinar.
Replay & Archive: All sessions are recorded. For the archive as well as a replay and handout of this session (available by July 25, 2016), as well as all previous webcasts please visit http://www.vm.ibm.com/education/lvc/
Contact: Please direct any questions to Stephanie Gherghe at gherghe@de.ibm.com.
Friday, July 8, 2016
KVM on z Documentation References
The amount of documentation provided in the IBM Knowledge Center can at times be overwhelming. Therefore, this entry will provide some general guidance.
See here for a continuously updated version of this entry.
The documentation for KVM on z (see overall entry point here) is grouped under these categories:
In addition, here is a document listing the recommended limits when running KVM on z Systems. It is aimed at the KVM for IBM z product, but also provides a good starting point when running other flavors of KVM on z.
Finally, documentation and pointers on ICM (IBM Cloud Manager, IBM's OpenStack-based product) can be found here.
See here for a continuously updated version of this entry.
The documentation for KVM on z (see overall entry point here) is grouped under these categories:
- KVM base technology: Documentation in this category relates to the latest upstream version of the respective components (mainly the kvm Linux kernel module, QEMU and libvirt).
Note: If you are already familiar with KVM, or want to jump right in, check the KVM Virtual Server Quick Start guide: This is a cheat sheet-like 4 page document designed to get you started as quickly as possible. - KVM for IBM z Systems: All documents in this category relate to the IBM product of the same name.
In addition, here is a document listing the recommended limits when running KVM on z Systems. It is aimed at the KVM for IBM z product, but also provides a good starting point when running other flavors of KVM on z.
Finally, documentation and pointers on ICM (IBM Cloud Manager, IBM's OpenStack-based product) can be found here.
Friday, June 24, 2016
KVM Forum 2016
The schedule of the KVM Forum 2016, to be held August 24-26 in Toronto, is out here.
We (KVM on z project) will be hosting three sessions:
We (KVM on z project) will be hosting three sessions:
- Nesting KVM on s390x (David Hildenbrand)
- KVM on System z: The Good, the Bad and the Weird (Cornelia Huck)
- As Time Goes By, Analysing Where We Spend Our Cycles During Exits (Christian Bornträger)
Friday, June 10, 2016
qclib v1.2.0 released
New version qclib v1.2.0 was released on IBM developerWorks here.
Among others, this version adds additional counts for KVM hosts and guests as follows:
qc_layer_type [n/a]: KVM-hypervisor
qc_layer_category [n/a]: HOST
qc_layer_type_num [n/a]: 6
qc_layer_category_num [n/a]: 2
qc_control_program_id [S ]: KVM/Linux
qc_adjustment [S ]: 1000
qc_num_cpu_total [ V]: 4
qc_num_cpu_dedicated [SHV]: 0
qc_num_cpu_shared [SHV]: 4
qc_num_cp_total [ HV]: 0
qc_num_cp_dedicated [ hV]: 0
qc_num_cp_shared [ hV]: 0
qc_num_ifl_total [SHV]: 4
qc_num_ifl_dedicated [ShV]: 0
qc_num_ifl_shared [ShV]: 4
===================================================
===== Layer 4: KVM-guest ==========================
qc_layer_type [n/a]: KVM-guest
qc_layer_category [n/a]: GUEST
qc_layer_type_num [n/a]: 7
qc_layer_category_num [n/a]: 1
qc_layer_name [S ]: u1604
qc_layer_extended_name [S ]: u1604
qc_layer_uuid [S ]: 407d134c-7d93-4a7b-bd27-4568ef10e85a
qc_num_cpu_total [S ]: 2
qc_num_cpu_configured [S ]: 2
qc_num_cpu_standby [S ]: 0
qc_num_cpu_reserved [S ]: 0
qc_num_cpu_dedicated [S ]: 0
qc_num_cpu_shared [S ]: 2
qc_num_ifl_total [S ]: 2
qc_num_ifl_dedicated [S ]: 0
qc_num_ifl_shared [S ]: 2
qc_ifl_dispatch_type [SHV]: 3
===================================================
qclib is a C library providing access to system information on the various layers of virtualization on z Systems.
Among others, this version adds additional counts for KVM hosts and guests as follows:
- For KVM hosts: Counts for CPs, IFLs and CPUs (sum of CPs and IFLs)
- For KVM guests: CP and IFL counts
qc_layer_type [n/a]: KVM-hypervisor
qc_layer_category [n/a]: HOST
qc_layer_type_num [n/a]: 6
qc_layer_category_num [n/a]: 2
qc_control_program_id [S ]: KVM/Linux
qc_adjustment [S ]: 1000
qc_num_cpu_total [ V]: 4
qc_num_cpu_dedicated [SHV]: 0
qc_num_cpu_shared [SHV]: 4
qc_num_cp_total [ HV]: 0
qc_num_cp_dedicated [ hV]: 0
qc_num_cp_shared [ hV]: 0
qc_num_ifl_total [SHV]: 4
qc_num_ifl_dedicated [ShV]: 0
qc_num_ifl_shared [ShV]: 4
===================================================
===== Layer 4: KVM-guest ==========================
qc_layer_type [n/a]: KVM-guest
qc_layer_category [n/a]: GUEST
qc_layer_type_num [n/a]: 7
qc_layer_category_num [n/a]: 1
qc_layer_name [S ]: u1604
qc_layer_extended_name [S ]: u1604
qc_layer_uuid [S ]: 407d134c-7d93-4a7b-bd27-4568ef10e85a
qc_num_cpu_total [S ]: 2
qc_num_cpu_configured [S ]: 2
qc_num_cpu_standby [S ]: 0
qc_num_cpu_reserved [S ]: 0
qc_num_cpu_dedicated [S ]: 0
qc_num_cpu_shared [S ]: 2
qc_num_ifl_total [S ]: 2
qc_num_ifl_dedicated [S ]: 0
qc_num_ifl_shared [S ]: 2
qc_ifl_dispatch_type [SHV]: 3
===================================================
qclib is a C library providing access to system information on the various layers of virtualization on z Systems.
Subscribe to:
Posts (Atom)