HDMI-output for multiple igvt ?
by Oliver Rath
Hi list,
Ive set up igvt-g on an intel skylake machine (i5-6400T, intel graphics
only), the qemu guest is win10.
At the moment Im available to see win10 via vncviewer, this works well.
If I understand right, ivgt-g is able to manage several vm at the same
time. Is it possible/planned to switch the output of my vm *directly*
to the monitor (DisplayPORT, DVI etc.) ? So I would be able to switch
between my vm-instances without the need of a viewing-tool.
Additionally, if this would work, could it be possible, to put several
vms to different monitors?
Im aware, that in this case the switching will result additional work
for the keyboard, i.e. how to forward the key-events to the appropiate
machine, if no viewer is used.
Tfh!
Oliver
3 years, 11 months
[Announcement] Intel GVT-g ISO 2016-Q4 Release
by Zhou, Chao
Hi all,
We are pleased to release the Intel GVT-g ISO which contains all the Q4 updates for both XenGT and KVMGT. All the setup steps are included in the ISO, please refer to the README file.
This update consists of:
- Support new platform: Intel Core 7th Generation, and Intel Xen E3 v6. Code name is Kabylake.
- Improve stability when QoS feature is enabled
- Windows10 RedStone2 64bit support
Download link:
https://download.01.org/GVT-g/
Project portal:
Official iGVT-g portal: https://01.org/igvt-g
If you have any questions, please subscribe to join the mailing list:
https://lists.01.org/mailman/listinfo/igvt-g
Note: The XenGT and KVMGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the XenGT and KVMGT project.
Thanks,
Zhou Chao
3 years, 11 months
[ANNOUNCE] 2016-Q4 release of KVMGT (Intel GVT-g for KVM)
by Wang, Hongbo
Hi all,
Intel GVT-g for KVM (a.k.a. KVMGT) is a full GPU virtualization solution with mediated pass-through, starting from 5th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability.
Repositories:
Kernel: https://github.com/01org/igvtg-kernel (2016q4-4.3.0 branch)
Qemu: https://github.com/01org/igvtg-qemu (2016q4-2.3.0 branch)
This update consists of:
- Support new platform: Intel Core 7th Generation, and Intel Xen E3 v6. Code name is Kabylake.
- Improve stability when QoS feature is enabled
- Windows10 RedStone2 64bit support
Known issues:
- At least 2GB memory is suggested for Guest Virtual Machine (win7-32/64, win8.1-64, win10-64) to run most 3D workloads
- Windows8 and later Windows fast boot is not supported, the workaround is to disable power S3/S4 in HVM file by adding “acpi_S3=0, acpi_S4=0”
- Sometimes when dom0 and guest has heavy workload, i915 in dom0 will trigger a false-alarmed TDR. The workaround is to disable dom0 hangcheck in dom0 grub file by adding “i915.enable_hangcheck=0”
- Win7 32bit guest may meet tdr while multi guests are concurrently running heavy workload for a long time
Note: This is the last GVT-g community release based on old architecture design. After that, our next community release will switch to new code repository and new upstream architecture which has been upstreamed in kernel 4.10.
Refer to the following blog for more details. https://01.org/igvt-g/blogs/wangbo85/2017/gvt-g-upstream-status-update-we...
Please subscribe to join the mailing list: https://lists.01.org/mailman/listinfo/igvt-g
Official iGVT-g portal: https://01.org/igvt-g
More information about background, architecture and others about Intel GVT-g, can be found at:
http://www.linux-kvm.org/images/f/f3/01x08b-KVMGT-a.pdf
https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian
Note:
The KVMGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the KVMGT project.
Best regards.
Hongbo
Tel: +86-21-6116 7445
MP: +86-1364 1793 689
Mail: hongbo.wang(a)intel.com
3 years, 11 months
[Intel-gfx] [Announcement] 2016-Q4 release of XenGT - a Mediated Graphics Passthrough Solution from Intel
by Wang, Hongbo
Hi all,
We are pleased to announce another update of Intel GVT-g for Xen.
Intel GVT-g is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Xen is currently supported on Intel Processor Graphics (a.k.a. XenGT).
Repositories
- Xen: https://github.com/01org/igvtg-xen (2016q4-4.6 branch)
- Kernel: https://github.com/01org/igvtg-kernel (2016q4-4.3.0 branch)
- Qemu: https://github.com/01org/igvtg-qemu (2016q4-2.3.0 branch)
This update consists of:
- Support new platform: Intel Core 7th Generation, and Intel Xen E3 v6. Code name is Kabylake.
- Improve stability when QoS feature is enabled
- Windows10 RedStone2 64bit support
Known issues:< QA need provide>
- At least 2GB memory is suggested for Guest Virtual Machine (win7-32/64, win8.1-64, win10-64) to run most 3D workloads
- Windows8 and later Windows fast boot is not supported, the workaround is to disable power S3/S4 in HVM file by adding “acpi_S3=0, acpi_S4=0”
- Sometimes when dom0 and guest has heavy workload, i915 in dom0 will trigger a false-alarmed TDR. The workaround is to disable dom0 hangcheck in dom0 grub file by adding “i915.enable_hangcheck=0”
This is the last GVT-g community release based on old architecture design. After that, our next community release will switch to new code repository and new upstream architecture which has been upstreamed in kernel 4.10.
Refer to the following blog for more details.
https://01.org/igvt-g/blogs/wangbo85/2017/gvt-g-upstream-status-update-we...
GVT-g project portal: https://01.org/igvt-g please subscribe mailing list: https://lists.01.org/mailman/listinfo/igvt-g
More information about background, architecture and others about Intel GVT-g, can be found at:
https://01.org/igvt-g
https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian
http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20S...
http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20S...
https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt
Note: The XenGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the XenGT project.
Best regards.
Hongbo
Tel: +86-21-6116 7445
MP: +86-1364 1793 689
Mail: hongbo.wang(a)intel.com
3 years, 11 months
KVMGT in NVIDIA?
by Siovel Rodríguez Morales
Hello. Would it be possible to use kvmgt on NVIDIA graphics cards or is there any way to get there?
Best regards
3 years, 12 months
igvt setup
by Oleksii Kurochko
Hello!
I am trying to setup “Upstream” version GVT-g.
As I can see for it work need the XenGT MPT module.
Where to get/compile it?
Maybe I need port XenGT code to 4.10 kernel and build it?
Is it some good guide how to run "Upstream" version GVT-g? As I can see on
github wiki (
https://github.com/01org/gvt-linux/wiki/GVTg_Setup_Guide#34-grub-update)
there is just manual for KVM based setup? Am i correct?
With best regards,
Oleksii
4 years
HDMI problems
by Bao Ha
I am having problems connecting from HDMI to HDMI display. The screen is
all messed up.
However, it works fine from mini-DP to DP, or from HDMI to HDMI-VGA adapter.
Looking at the debug listing. The HDMI->HDMI has the following:
[drm:intel_modeset_readout_hw_state] [CRTC:21] hw state readout: enabled
while HDMI->HDMI/VGA has it disabled.
Also, during the boot up of HDMI->HDMI, there is a kernel panic and a dump
of configuration:
[ 4.131333] [drm:check_crtc_state] [CRTC:21]
[ 4.131783] [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in
pch_pfit.enabled (expected 0, found 1)
[ 4.132221] [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in
scaler_state.scaler_id (expected -1, found 0)
[ 4.132350] ------------[ cut here ]------------
[ 4.132816] WARNING: CPU: 3 PID: 989 at
drivers/gpu/drm/i915/intel_display.c:12807
intel_modeset_check_state+0x5a4/0x6a6 [i915]()
[ 4.132919] pipe state doesn't match!
[ 4.133305] Modules linked in: kvm i915 e1000e ptp pps_core i2c_algo_bit
drm_kms_helper sd_mod drm xhci_pci xhci_hcd
[ 4.133531] CPU: 3 PID: 989 Comm: kworker/u8:5 Not tainted
4.3.0-rc6-vgt+ #5
[ 4.133858] Hardware name: /NUC6i5SYB, BIOS
SYSKLi35.86A.0054.2016.0930.1102 09/30/2016
[ 4.134024] Workqueue: events_unbound async_run_entry_fn
[ 4.134269] 0000000000000000 ffff880482a238d8 ffffffff812629e2
ffff880482a23920
[ 4.134507] ffff880482a23910 ffffffff81054825 ffffffffa0169a6e
ffff8800478ae000
[ 4.134747] ffff880482583800 ffff8800478e5000 ffff880482652c00
ffff880482a23978
[ 4.134786] Call Trace:
[ 4.134947] [<ffffffff812629e2>] dump_stack+0x44/0x55
[ 4.135142] [<ffffffff81054825>] warn_slowpath_common+0x94/0xad
[ 4.135433] [<ffffffffa0169a6e>] ?
intel_modeset_check_state+0x5a4/0x6a6 [i915]
[ 4.135615] [<ffffffff81054881>] warn_slowpath_fmt+0x43/0x4b
[ 4.135922] [<ffffffffa0165262>] ?
intel_pipe_config_compare+0x1395/0x13e8 [i915]
[ 4.136209] [<ffffffffa0169a6e>] intel_modeset_check_state+0x5a4/0x6a6
[i915]
[ 4.136479] [<ffffffffa0171af8>] intel_atomic_commit+0x4dc/0x50e [i915]
[ 4.136702] [<ffffffffa003d55b>] drm_atomic_commit+0x48/0x4d [drm]
[ 4.136958] [<ffffffffa0097f31>] restore_fbdev_mode+0xf5/0x26c
[drm_kms_helper]
[ 4.137287] [<ffffffffa0099913>]
drm_fb_helper_restore_fbdev_mode_unlocked+0x31/0x68 [drm_kms_helper]
[ 4.137552] [<ffffffffa0099984>] drm_fb_helper_set_par+0x3a/0x46
[drm_kms_helper]
[ 4.137829] [<ffffffffa0187981>] intel_fbdev_set_par+0x12/0x4f [i915]
[ 4.137996] [<ffffffff812a0a9f>] fbcon_init+0x315/0x421
[ 4.138155] [<ffffffff8130be66>] visual_init+0xc8/0x11d
[ 4.138341] [<ffffffff8130d5ad>] do_bind_con_driver+0x1b1/0x2d0
[ 4.138535] [<ffffffff8130d9d3>] do_take_over_console+0x15f/0x189
[ 4.138724] [<ffffffff812a0158>] do_fbcon_takeover+0x5b/0x97
[ 4.138921] [<ffffffff812a36cf>] fbcon_event_notify+0x30c/0x62b
[ 4.139104] [<ffffffff8106becd>] notifier_call_chain+0x39/0x5c
[ 4.139329] [<ffffffff8106c124>]
__blocking_notifier_call_chain+0x41/0x5c
[ 4.139548] [<ffffffff8106c14e>] blocking_notifier_call_chain+0xf/0x11
[ 4.139750] [<ffffffff812a8331>] fb_notifier_call_chain+0x16/0x18
[ 4.139952] [<ffffffff812aa077>] register_framebuffer+0x288/0x2c0
[ 4.140249] [<ffffffffa0099c32>]
drm_fb_helper_initial_config+0x2a2/0x318 [drm_kms_helper]
[ 4.140542] [<ffffffffa01882d9>] intel_fbdev_initial_config+0x16/0x18
[i915]
[ 4.140738] [<ffffffff8106d182>] async_run_entry_fn+0x34/0xbe
[ 4.140926] [<ffffffff81066983>] process_one_work+0x1a7/0x31a
[ 4.141102] [<ffffffff81067386>] worker_thread+0x26f/0x35b
[ 4.141285] [<ffffffff81067117>] ? rescuer_thread+0x274/0x274
[ 4.141433] [<ffffffff8106b42c>] kthread+0xcd/0xd5
[ 4.141628] [<ffffffff8106b35f>] ? kthread_worker_fn+0x139/0x139
[ 4.141802] [<ffffffff814eb54f>] ret_from_fork+0x3f/0x70
[ 4.142002] [<ffffffff8106b35f>] ? kthread_worker_fn+0x139/0x139
[ 4.142142] ---[ end trace 6cba3123f2f58fce ]---
[ 4.142437] [drm:intel_dump_pipe_config] [CRTC:21][hw state] config
ffff8804824e3400 for pipe A
[ 4.142606] [drm:intel_dump_pipe_config] cpu_transcoder: A
[ 4.142809] [drm:intel_dump_pipe_config] pipe bpp: 36, dithering: 0
[ 4.143167] [drm:intel_dump_pipe_config] fdi/pch: 0, lanes: 0, gmch_m:
0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
[ 4.143503] [drm:intel_dump_pipe_config] dp: 0, lanes: 0, gmch_m: 0,
gmch_n: 0, link_m: 0, link_n: 0, tu: 0
[ 4.143867] [drm:intel_dump_pipe_config] dp: 0, lanes: 0, gmch_m2: 0,
gmch_n2: 0, link_m2: 0, link_n2: 0, tu2: 0
[ 4.144052] [drm:intel_dump_pipe_config] audio: 1, infoframes: 1
[ 4.144210] [drm:intel_dump_pipe_config] requested mode:
[ 4.144502] [drm:drm_mode_debug_printmodeline] Modeline 0:"" 0 0 1920 0
0 0 1080 0 0 0 0x0 0x0
[ 4.144664] [drm:intel_dump_pipe_config] adjusted mode:
[ 4.144938] [drm:drm_mode_debug_printmodeline] Modeline 0:"" 0 0 0 0 0 0
0 0 0 0 0x0 0x5
[ 4.145335] [drm:intel_dump_crtc_timings] crtc timings: 148500 1920 2008
2052 2200 1080 1084 1089 1125, type: 0x0 flags: 0x5
[ 4.145503] [drm:intel_dump_pipe_config] port clock: 222750
[ 4.145696] [drm:intel_dump_pipe_config] pipe src size: 1920x1080
[ 4.146001] [drm:intel_dump_pipe_config] num_scalers: 2, scaler_users:
0x80000000, scaler_id: 0
[ 4.146372] [drm:intel_dump_pipe_config] gmch pfit: control: 0x00000000,
ratios: 0x00000000, lvds border: 0x00000000
[ 4.146659] [drm:intel_dump_pipe_config] pch pfit: pos: 0x00000000,
size: 0x00000000, enabled
[ 4.146797] [drm:intel_dump_pipe_config] ips: 0
[ 4.146954] [drm:intel_dump_pipe_config] double wide: 0
[ 4.147333] [drm:intel_dump_pipe_config] ddi_pll_sel: 1; dpll_hw_state:
ctrl1: 0x21, cfgcr1: 0x80400173, cfgcr2: 0x2a5
[ 4.147511] [drm:intel_dump_pipe_config] planes on this crtc
[ 4.147774] [drm:intel_dump_pipe_config] STANDARD PLANE:18 plane: 0.0
idx: 0 enabled
[ 4.148023] [drm:intel_dump_pipe_config] FB:63, fb = 1920x1080
format = 0x34325258
[ 4.148310] [drm:intel_dump_pipe_config] scaler:-1 src (0, 0)
1920x1080 dst (0, 0) 1920x1080
[ 4.148629] [drm:intel_dump_pipe_config] CURSOR PLANE:20 plane: 0.1 idx:
1 disabled, scaler_id = -1
[ 4.148950] [drm:intel_dump_pipe_config] STANDARD PLANE:22 plane: 0.1
idx: 2 disabled, scaler_id = -1
[ 4.149263] [drm:intel_dump_pipe_config] [CRTC:21][sw state] config
ffff880482652c00 for pipe A
[ 4.149431] [drm:intel_dump_pipe_config] cpu_transcoder: A
[ 4.149636] [drm:intel_dump_pipe_config] pipe bpp: 36, dithering: 0
[ 4.149993] [drm:intel_dump_pipe_config] fdi/pch: 0, lanes: 0, gmch_m:
0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
[ 4.150329] [drm:intel_dump_pipe_config] dp: 0, lanes: 0, gmch_m: 0,
gmch_n: 0, link_m: 0, link_n: 0, tu: 0
[ 4.150687] [drm:intel_dump_pipe_config] dp: 0, lanes: 0, gmch_m2: 0,
gmch_n2: 0, link_m2: 0, link_n2: 0, tu2: 0
[ 4.150873] [drm:intel_dump_pipe_config] audio: 1, infoframes: 1
[ 4.151031] [drm:intel_dump_pipe_config] requested mode:
[ 4.151442] [drm:drm_mode_debug_printmodeline] Modeline 0:"1920x1080" 60
148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48 0x5
[ 4.151597] [drm:intel_dump_pipe_config] adjusted mode:
Appreciate any helps!
--
Best Regards.
Bao C. Ha
Hacom - Embedded Systems and Appliances
http://www.hacom.net
voice: 657-859-9422
4 years
Few questions on QOS schedulers
by Rawcoder
Hello,
I've been trying to understand the scheduler part of igvt-g and have few questions regarding the same.
The default scheduler is the timer based scheduler which time-shares the physical GPU among the VMs. My understanding of it is:
1. A timer is setup which raises a scheduling (VGT_REQUEST_SCHED) request in a periodic manner.
2. All requests are served by a kernel thread `vgt_thread`. This thread (after some checks and calls) eventually calls `vgt_schedule` which allocates a time slice to every VM, selects the next to be scheduled VM according to LRU and time slice left, and raises a context switch request (VGT_REQUEST_CTX_SWITCH).
3. The context switch handler waits for all the rings to become idle and finally performs the context switch.
4. The newly scheduled VM starts executing its commands.
Now, the original "gVirt" paper mentions that a coarse-grain QOS is employed for tracking command submission to ensure fairness. But I couldn't find anything which directly enforces this. There is a call to `calculate_budget` function in `vgt_submit_commands` (called by `vgt_thread`) but the budget calculation is under `#ifdef 0` and it is just returning the max possible budget. I guess another point for doing this would be after command ring auditing but I didn't check that.
So, my first question is: Where are we limiting the command submission to VM to ensure fair share scheduling?
Next, in addition to the default timer based scheduler, 2 other scheduling options are mentioned in vgt.c: event_based_qos and shadow_tail_based_qos.
event_based_qos seems to be what you'd expect to be default policy on a non-preemptive device as GPU; allocate a time slice to every VM, choose the one which has the most time slice left and allow it to submit continuously until it runs out of its time slice. Since we are not enforcing any limit on the number of commands submitted in a single batch we cannot ensure fair usage. Timer based scheduler alleviates this problem by:
1. adding a periodic check where we try to switch context if all rings are idle.
2. limiting command submission.
Am I correct in my understanding?
My final question is regarding the shadow_tail_based_qos. The paper doesn't seem to mention the name. I skimmed through the code and my initial impressions are that this scheduler is doing the coarse-grain QOS scheduling. There is timed callback and we seem to be limiting command submissions. I'm sorry I haven't read and understood the full code yet but are my assumptions and initial impressions true?
Sorry for the wall of text. I'd appreciate any reply, comment or suggestion.
Thanks and regards,
rawcoder
4 years
Displayport MST
by Bao Ha
Has anybody successfully driven 2-3 monitors through the mini-displayport
using an MST hub?
I am trying to set up a NUC6i5syh with two hdmi monitors. The system boot
up with the bios message, then nothing! I think it loads the kernel fine,
until the i915 driver. Same problem with just one monitor. I tried both the
Startech and the Tripp-Lite MST hubs.
Thanks.
Bao
--
Best Regards.
Bao C. Ha
Hacom - Embedded Systems and Appliances
http://www.hacom.net
voice: 657-859-9422
4 years
vgt_skl_map_plane_reg errors
by Bao Ha
I got quite a few of the following error in the syslog file:
...
Mar 2 18:46:43 vmdev kernel: [ 1051.908180] vGT
error:(vgt_skl_map_plane_reg:1342) the mapping for pipe 0 is not ready or
created!
...
What does it mean? It seems I loose control of the display. I can switch
the vm to foreground and back. But the mouse and keyboard are not
responding.
Thanks.
Bao
--
Best Regards.
Bao C. Ha
Hacom - Embedded Systems and Appliances
http://www.hacom.net
voice: 657-859-9422
4 years