On behalf of Yongli, He who tested these series with KVMGT vGPU mdev. Hi, Erik
Here is the libvirt testing result. in general speaking, it works well. while
start libvirt-d and starting the vm, there are some call traces, i attached
them in the very end of this mail. this mail will be the test-by content
later.
Test env summary
==============
0. Test Bed hardware summary
cat /proc/cpuinfo
vendor_id : GenuineIntel
cpu family : 6
model : 78
model name : Intel(R) Core(TM) i5-6260U CPU @ 1.80GHz
stepping : 3
microcode : 0x84
physical id : 0
cpu cores : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic
sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good
nopl xtopology nonstop_tsc aperfmperf tsc_known_freq pni pclmulqdq dtes64
monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2
x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm
3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase
tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt
xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify
hwp_act_window hwp_epp
bugs :
1. test steps and software version following this guide,
https://github.com/01org/gvt-linux/wiki/GVTg_Setup_Guide#322-build-kernel-source
2. Host env
uname -a
Linux z-nuc-11 4.10.0-vgt #1 SMP Thu Mar 9 15:55:49 CST
2017 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"
kernel build from source:
git describe
gvt-fixes-2017-01-25-1560-gcedbc34
qemu build from source:
qemu-system-x86_64 --version
QEMU emulator version 2.8.50 (v2.8.0-2059-geba44e9-dirty)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU
Project developers
libvirt, use your branch https://github.com/eskultety/libvirt.git
git describe
v1.2.17-rc2-5530-g202402e
git branch
master
* mdev-v3
3. guest xml template, refer to attachment
4. related scripts, refer to attachment
myvirsh: source build libvirt wrapper
gdb-libvirtd: libvirtd start up wrapper
the screen call trace while start the virtlogd
==================================
ubuntu@z-nuc-11:~/vgpu-meta/libvirt-stage$ ./libvirt/gdb-libvirt &
***************************************************
start virtlogd
[2] 2005
ubuntu@z-nuc-11:~/vgpu-meta/libvirt-stage$
***************************************************
start libvirt-d
2017-03-09 19:04:57.211+0000: 2059: info : libvirt version: 3.1.0
2017-03-09 19:04:57.211+0000: 2059: info : hostname: z-nuc-11.maas
2017-03-09 19:04:57.211+0000: 2059: error : qemuMonitorOpenUnix:367 :
failed to connect to monitor socket: No such process
2017-03-09 19:04:57.213+0000: 2059: error :
virMediatedDeviceGetIOMMUGroupDev:153 : internal error: IOMMU group file
/sys/bus/mdev/devices/894f3983-1a36-42b3-b52c-1024aca216be/iommu_group
is not a symlink
2017-03-09 19:04:57.213+0000: 2003: info : libvirt version: 3.1.0
2017-03-09 19:04:57.213+0000: 2003: info : hostname: z-nuc-11.maas
2017-03-09 19:04:57.213+0000: 2003: error : virNetSocketReadWire:1800 :
End of file while reading data: Input/output error
the screen call trace while start the VM (same for Ubuntu, Win10 etc)
======================================================
ubuntu@z-nuc-11:~/vgpu-meta/libvirt-stage$ myvirsh start vgpu-ubuntu
2017-03-09 19:06:50.483+0000: 2232: info : libvirt version: 3.1.0
2017-03-09 19:06:50.483+0000: 2232: info : hostname: z-nuc-11.maas
2017-03-09 19:06:50.483+0000: 2232: warning : qemuDomainObjTaint:4056 :
Domain id=1 name='vgpu-ubuntu' uuid=972b5e38-0437-11e7-8f97-d36dba74552d
is tainted: high-privileges
2017-03-09 19:06:50.819+0000: 2204: info : libvirt version: 3.1.0
2017-03-09 19:06:50.819+0000: 2232: warning : virDomainAuditHostdev:456
: Unexpected hostdev type while encoding audit message: 4
2017-03-09 19:06:50.819+0000: 2204: info : hostname: z-nuc-11.maas
2017-03-09 19:06:50.819+0000: 2204: error : virNetSocketReadWire:1800 :
End of file while reading data: Input/output error Domain vgpu-ubuntu started
Tested-by: Yongli, He <[email protected]>
>-----Original Message-----
>From: [email protected] [mailto:[email protected]]
>On Behalf Of Erik Skultety
>Sent: Monday, February 20, 2017 10:28 PM
>To: [email protected]
>Cc: Erik Skultety <[email protected]>
>Subject: [libvirt] [RFC PATCH v2 REBASE 00/18] Introduce vGPU mdev framework
>to libvirt
>
>since the original v2 [1]:
>- resolved a few merge conflicts caused by @9d92f533 which refactored out
>some duplicate code which eventually lead to dropping patch 14/18 from the
>original series due to being unnecessary
>- rebased onto fresh HEAD
>
>[1] https://www.redhat.com/archives/libvir-list/2017-February/msg00739.html
>
>Erik Skultety (18):
> util: Introduce new module virmdev
> conf: Introduce new hostdev device type mdev
> conf: Introduce new address type mdev
> conf: Update XML parser, formatter, and RNG schema to support mdev
> conf: Introduce virDomainHostdevDefPostParse
> conf: Add post parse code for mdevs to virDomainHostdevDefPostParse
> security: dac: Enable labeling of vfio mediated devices
> security: selinux: Enable labeling of vfio mediated devices
> conf: Enable cold-plug of a mediated device
> qemu: Assign PCI addresses for mediated devices as well
> hostdev: Maintain a driver list of active mediated devices
> hostdev: Introduce a reattach method for mediated devices
> qemu: cgroup: Adjust cgroups' logic to allow mediated devices
> qemu: Bump the memory locking limit for mdevs as well
> qemu: Format mdevs on qemu command line
> test: Add some test cases for our test suite regarding the mdevs
> docs: Document the new hostdev and address type 'mdev'
> news: Update the NEWS.xml about the new mdev feature
>
> docs/formatdomain.html.in | 48 ++-
> docs/news.xml | 9 +
> docs/schemas/domaincommon.rng | 26 ++
> po/POTFILES.in | 1 +
> src/Makefile.am | 1 +
> src/conf/device_conf.h | 1 +
> src/conf/domain_conf.c | 203 ++++++++++--
> src/conf/domain_conf.h | 9 +
> src/libvirt_private.syms | 20 ++
> src/qemu/qemu_command.c | 49 +++
> src/qemu/qemu_command.h | 5 +
> src/qemu/qemu_domain.c | 23 +-
> src/qemu/qemu_domain.h | 1 +
> src/qemu/qemu_domain_address.c | 16 +-
> src/qemu/qemu_hostdev.c | 37 +++
> src/qemu/qemu_hostdev.h | 8 +
> src/qemu/qemu_hotplug.c | 2 +
> src/security/security_apparmor.c | 3 +
> src/security/security_dac.c | 55 ++++
> src/security/security_selinux.c | 54 ++++
> src/util/virhostdev.c | 229 ++++++++++++-
> src/util/virhostdev.h | 16 +
> src/util/virmdev.c | 358 +++++++++++++++++++++
> src/util/virmdev.h | 93 ++++++
> tests/domaincapsschemadata/full.xml | 1 +
> .../qemuxml2argv-hostdev-mdev-unmanaged.args | 25 ++
> .../qemuxml2argv-hostdev-mdev-unmanaged.xml | 37 +++
> tests/qemuxml2argvtest.c | 6 +
> .../qemuxml2xmlout-hostdev-mdev-unmanaged.xml | 40 +++
> tests/qemuxml2xmltest.c | 1 +
> 30 files changed, 1333 insertions(+), 44 deletions(-) create mode 100644
>src/util/virmdev.c create mode 100644 src/util/virmdev.h create mode 100644
>tests/qemuxml2argvdata/qemuxml2argv-hostdev-mdev-unmanaged.args
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-mdev-
>unmanaged.xml
> create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-
>mdev-unmanaged.xml
>
>--
>2.10.2
>
>--
>libvir-list mailing list
>[email protected]
>https://www.redhat.com/mailman/listinfo/libvir-list
gdb-libvirt
Description: gdb-libvirt
myvirsh
Description: myvirsh
<domain type='kvm'>
<name>vgpu-fedrea</name>
<uuid>69dcd4dd-3f83-46d3-aa89-905e755bdb49</uuid>
<memory unit='KiB'>1953125</memory>
<currentMemory unit='KiB'>1953125</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
<!-- <loader type='rom'>$STAGE_DIR/../packages/seabios/bios.bin</loader> /-->
<boot dev='hd'/>
</os>
<features>
<acpi/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' io='native'/>
<source file='$STAGE_DIR/fedora1.qcow2'/>
<target dev='sda' bus='ide'/>
</disk>
<controller type='pci' index='0' model='pci-root'/>
<controller type='usb' index='0' model='piix3-uhci'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:1b:8a:02'/>
<source bridge='virbr0'/>
<model type='e1000'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<video>
<model type='cirrus' vram='67108864' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<graphics type='vnc' port='5900' autoport='yes'/>
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'>
<source>
<address type='mdev' uuid='894f3983-1a36-42b3-b52c-1024aca216be'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</hostdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</memballoon>
</devices>
</domain>
<domain type='kvm'>
<name>vgpu-ubuntu</name>
<uuid>972b5e38-0437-11e7-8f97-d36dba74552d</uuid>
<memory unit='KiB'>1953125</memory>
<currentMemory unit='KiB'>1953125</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
<!-- <loader type='rom'>$STAGE_DIR/../packages/seabios/bios.bin</loader> /-->
<boot dev='hd'/>
</os>
<features>
<acpi/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' io='native'/>
<source file='$STAGE_DIR/ub64_1.qcow2'/>
<target dev='sda' bus='ide'/>
</disk>
<controller type='pci' index='0' model='pci-root'/>
<controller type='usb' index='0' model='piix3-uhci'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:1b:8a:02'/>
<source bridge='virbr0'/>
<model type='e1000'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<video>
<model type='cirrus' vram='67108864' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<graphics type='vnc' port='5900' autoport='yes'/>
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'>
<source>
<address type='mdev' uuid='894f3983-1a36-42b3-b52c-1024aca216be'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</hostdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</memballoon>
</devices>
</domain>
<domain type='kvm'>
<name>vgpu-win10</name>
<uuid>916c5c36-0437-11e7-a23d-830ed1295d00</uuid>
<memory unit='KiB'>1953125</memory>
<currentMemory unit='KiB'>1953125</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
<!-- <loader type='rom'>$STAGE_DIR/../packages/seabios/bios.bin</loader> /-->
<boot dev='hd'/>
</os>
<features>
<acpi/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' io='native'/>
<source file='$STAGE_DIR/win10-64.qcow2'/>
<target dev='sda' bus='ide'/>
</disk>
<controller type='pci' index='0' model='pci-root'/>
<controller type='usb' index='0' model='piix3-uhci'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:1b:8a:02'/>
<source bridge='virbr0'/>
<model type='e1000'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<video>
<model type='cirrus' vram='67108864' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<graphics type='vnc' port='5900' autoport='yes'/>
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci'>
<source>
<address type='mdev' uuid='894f3983-1a36-42b3-b52c-1024aca216be'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</hostdev>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</memballoon>
</devices>
</domain>
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
