profile
viewpoint
Junming Liu liujunming Intel Shanghai, China https://liujunming.github.io From Intel/Virtualization.

push eventliujunming/liujunming.github.io

liujunming

commit sha 4e3b7961b7e332004a22b5fe76f9645255e721eb

Site updated: 2020-07-09 22:49:25

view details

push time in 2 days

push eventliujunming/liujunming.github.io

liujunming

commit sha 8271d3ce5781170f6078106692d8f3ff753fce3f

Site updated: 2020-07-05 14:31:07

view details

push time in 6 days

push eventliujunming/liujunming.github.io

liujunming

commit sha 496922290d6232888e7c6fb35852caacd29fb25f

Site updated: 2020-07-05 13:49:14

view details

push time in 6 days

startedgatieme/LDD-LinuxDeviceDrivers

started time in 18 days

startedromkatv/powerlevel10k

started time in 20 days

PublicEvent
PublicEvent

push eventliujunming/acrn-kernel

Swee Yee Fonn

commit sha 1281e73379fbb45a6dd69d541bf2b67ee188e5dc

Add PCH slow clock wa for EHL GPU flr Set 0x1 to GMBUS pinselect prior to flr dump stack also for pch clk wa code Tracked-On: projectacrn/acrn-hypervisor#4937 Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 25 days

push eventliujunming/acrn-kernel

Swee Yee Fonn

commit sha a03dd639e316fc158e5af4889e50acf8c1b3939e

Add PCH slow clock wa for EHL GPU flr Set 0x1 to GMBUS pinselect prior to flr dump stack also for pch clk wa code Tracked-On: projectacrn/acrn-hypervisor#4937 Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 25 days

create barnchliujunming/acrn-kernel

branch : wa_for_ehl

created branch time in 25 days

PR opened projectacrn/acrn-kernel

Add PCH slow clock wa for EHL GPU flr

Set 0x1 to GMBUS pinselect prior to flr dump stack also for pch clk wa code

+48 -0

0 comment

1 changed file

pr created time in 25 days

push eventliujunming/liujunming.github.io

liujunming

commit sha 56656d6b59a22ba314030438e223095abab3af6a

Site updated: 2020-06-14 19:13:34

view details

push time in a month

starteddanielmaker/linux_study

started time in a month

startedio12/BootMine

started time in a month

push eventliujunming/acrn-hypervisor

Deb Taylor

commit sha 7d4b2c824f0b2a0c53031a3cec5a85227f8665e9

Edits to Ubuntu SOS; changed SOS/UOS to Service VM/User VM Signed-off-by: Deb Taylor <deb.taylor@intel.com>

view details

fangfang.shen

commit sha 7f57e64e100d591297436d8235eb037ca187112d

Delete pass-through audio to WaaG in default. For "Split Device Model", pass-through PCI will be implemented in HV, "reset" param is added into DM cmdline to ensure PCI device's status before launching VM. WaaG will fail to boot if adding pass-through audio in default, because current audio card's reset function isn't supported on WHL platform. Tracked-On: #4397 Signed-off-by: fangfang.shen <fangfang.shen@intel.com>

view details

Zide Chen

commit sha 50f284528eb63b163cf2bb05854927bb0ec9705d

acrn-config: a few changes on vm_config[] clos generation - python script crashes if the desired 'clos' tag doesn't exist in the scenario xml file. In the following example, tag '0' doesn't exist: clos_set: {1: '0', 2: '0'} referring to tag 0 directly ("vm_info.clos_set[0] == None") causes crash. To fix it, this patch uses "if i in vm_info.clos_set:" where 'i' is the VM id and serves as the tag in the clos_set dictionary, to sanity check the dictionary. - if the hardware doesn't support CAT, don't need to generate clos entry in the vm_config[], which could be confusing. - to reduce redundant code, wrap the clos generation code as a function. Tracked-On: #2462 Signed-off-by: Zide Chen <zide.chen@intel.com>

view details

Alexander Merritt

commit sha 8ddbfc268ccac71add7c40137b79562e3bc230ba

acrn: add pxelinux as known bootloader Tracked-On: #4389 Signed-off-by: Alexander Merritt <alex.merritt@intel.com>

view details

Yin Fengwei

commit sha 8dcede7693c65ea1665a7dda7ad8b035e939db7d

Makefile: disable fcf-protection for some build env In some build env (Ubuntu 19.10 as example), gcc enabled the option -fcf-protection by default. But this option is not compatible with -mindirect-branch. Which could trigger following build error: fail to build with gcc-9 [error: ‘-mindirect-branch’ and ‘-fcf-protection’ are not compatible] -mindirect-branch is mandatory for retpoline mitigation and always enabled for ACRN build. We disable -fcf-protection here for ACRN build. Tracked-On: #4358 Signed-off-by: Yin Fengwei <fengwei.yin@intel.com> Acked-by: Wu Binbin <binbin.wu@intel.com>

view details

Zide Chen

commit sha cc6f09492605e31f247d53e2b05edf1fcb65e1d2

hv: CAT is supposed to be enabled in the system level In platforms that support CAT, when it is enabled by ACRN, i.e. IA32_resourceType_MASK_n registers are programmed with customized values, it has impacts to the whole system. The per guest flag GUEST_FLAG_CLOS_REQUIRED suggests that CAT may be enabled in some guests, but not in others who don't have this flag, which is conceptually incorrect. This patch removes GUEST_FLAG_CLOS_REQUIRED, and adds a new Kconfig entry CAT_ENABLED for CAT enabling. When it's enabled, platform_clos_array[] defines a set of system-wide Class of Service (COS, or CLOS), and the per guest vm_configs[].clos associates the guest with particular CLOS. Tracked-On: #2462 Signed-off-by: Zide Chen <zide.chen@intel.com>

view details

fuzhongl

commit sha cf3544b4ec22934aad57461541af01c0d7797c15

Doc: VM2 vCPU affinity info update Update VM2 vCPU affinity info to match with the picture of cpu_sharing Signed-off-by: fuzhongl <fuzhong.liu@intel.com>

view details

Shuo A Liu

commit sha 53de3a727c641d167f8006dd86a42b7f68a1e6c3

hv: reset vcpu events in reset_vcpu On UEFI UP2 board, APs might execute HLT before SOS kernel INIT them. After SOS kernel take over and will re-init the APs directly. The flows from HV perspective is like: HLT trap: wait_event(VCPU_EVENT_VIRTUAL_INTERRUPT) -> sleep_thread SOS kernel INIT, SIPI APs: pause_vcpu(ZOMBIE) -> sleep_thread -> reset_vcpu -> launch_vcpu -> wake_vcpu However, the last wake_vcpu will fail because the cpu event VCPU_EVENT_VIRTUAL_INTERRUPT had not got signaled. This patch will reset all vcpu events in reset_vcpu. If the thread was previously waiting for a event, its waiting status will be cleared and launch_vcpu will wake it to running. Tracked-On: #4402 Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>

view details

Junming Liu

commit sha 1f1eb7fdba15fe5bf3656934ece96d25dcacccfb

hv:disable iommu snoop control to enable gvt-d by an option If one of the enabled VT-d DMAR units doesn’t support snoop control, then bit 11 of leaf PET of EPT is not set, since the field is treated as reserved(0) by VT-d hardware implementations not supporting snoop control. GUP IOMMU doesn’t support snoop control, this patch add an option to disable iommu snoop control for gvt-d. v2 -> v3: * refine the MICRO name and description. Tracked-On: #4405 Signed-off-by: Junming Liu <junming.liu@intel.com> Reviewed-by: Wu Binbin <binbin.wu@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>

view details

Junming Liu

commit sha 1303861d26dcd5f3a3073b564a7c25e037d93b93

hv:enable gpu iommu except APL platforms To enable gvt-d,need to allow the GPU IOMMU. While gvt-d hasn't been enabled on APL yet, so let APL disable GPU IOMMU. v2 -> v3: * let APL platforms disable GPU IOMMU. Tracked-On: #4405 Signed-off-by: Junming Liu <junming.liu@intel.com> Reviewed-by: Wu Binbin <binbin.wu@intel.com>

view details

Junming Liu

commit sha da2ed57ac462a060509dad10626ee01e1c3f2060

dm:add igd-lpc class for Windows guest when enabling gvt-d Intel Graphics Device(IGD) passthrough on Windows guest has the restriction that it need a lpc bridge device located in 00:1f.0 PCI slot. This patch add an extra lpc class for this restriction, the lpc class will be used to create a dummy lpc bridge. To enable gvt-d GOP driver work, the VID, DID, REVID, SUBVID, SUBDID of igd-lpc need aligned with physical one. Tracked-On: #4405 v2 -> v3: * refine the comment message and comments. Signed-off-by: Junming Liu <junming.liu@intel.com> Reviewed-by: Shuo A Liu <shuo.a.liu@intel.com> Reviewed-by: Wu Binbin <binbin.wu@intel.com> Acked-by: Wang, Yu1 <yu1.wang@intel.com>

view details

Junming Liu

commit sha 0829edee4c13726c9501d447573bb59c39dbcbf3

dm:add an extra lpc bridge when enabling gvt-d Intel Graphics Device(IGD) passthrough on Windows guest has the restriction that it need a lpc bridge device located in 00:1f.0 PCI slot. This patch add a 'gpu' option for 'passthrou' type device, which will create the dedicated "igd-lpc" for IGD passthrough. Tracked-On: #4405 v2 -> v3: * refine the commit message and comments. Signed-off-by: Junming Liu <junming.liu@intel.com> Reviewed-by: Shuo A Liu <shuo.a.liu@intel.com> Reviewed-by: Wu Binbin <binbin.wu@intel.com> Acked-by: Wang, Yu1 <yu1.wang@intel.com>

view details

Wei Liu

commit sha 170aa935bd0415ddeb91147750c4a3cdffa45bd1

acrn-config: add P2SB device to whitelist for apl-mrb apl-mrb need to access P2SB device, so add 00:0d.0 P2SB device to whitelist for platform pci hidden device. Tracked-On: #3475 Signed-off-by: Wei Liu <weix.w.liu@intel.com> Reviewed-by: Binbin Wu <binbin.wu@intel.com> Acked-by: Victor Sun <victor.sun@intel.com>

view details

Wei Liu

commit sha f3a4b2325f713a3d5886b7c8c3a42343f14e35b6

hv: add P2SB device to whitelist for apl-mrb apl-mrb need to access P2SB device, so add 00:0d.0 P2SB device to whitelist for platform pci hidden device. Tracked-On: #3475 Signed-off-by: Wei Liu <weix.w.liu@intel.com> Reviewed-by: Binbin Wu <binbin.wu@intel.com> Acked-by: Victor Sun <victor.sun@intel.com>

view details

Yin Fengwei

commit sha 2ca01206f3529449b24c077497d0ea2794a8ca26

Makefile: fix build issue on old gcc The previous fcf-protection fix broke the old gcc (older than gcc 8 which is common on Ubuntu 18.04 and older distributions). We only add fcf-protection=none for gcc8 and newer. Tracked-On: #4358 Signed-off-by: Yin Fengwei <fengwei.yin@intel.com>

view details

Li Fei1

commit sha fe3182ea05960a46a90e2ad9986ed2c134c53ce1

hv: vPCI: add assign/deassign PCI device HC APIs Add assign/deassign PCI device hypercall APIs to assign a PCI device from SOS to post-launched VM or deassign a PCI device from post-launched VM to SOS. This patch is prepared for spliting passthrough PCI device from DM to HV. The old assign/deassign ptdev APIs will be discarded. Tracked-On: #4371 Signed-off-by: Li Fei1 <fei1.li@intel.com>

view details

Li Fei1

commit sha aa38ed5b69999c9c26a7d447d11296c6cea7a248

dm: vPCI: add assign/deassign PCI device IC APIs Add assign/deassign PCI device ioctl APIs assign a PCI device from SOS to post-launched VM or deassign a PCI device from post-launched VM to SOS. This patch is prepared for spliting passthrough PCI device from DM to HV. The old assign/deassign ptdev APIs will be discarded. Tracked-On: #4371 Signed-off-by: Li Fei1 <fei1.li@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>

view details

Li Fei1

commit sha dafa3da693bd72ae77a5cf27a29f9213c062b1ed

vPCI: split passthrough PCI device from DM to HV In this case, we could handle all the passthrough PCI devices in ACRN hypervisor. But we still need DM to initialize BAR resources and Intx for passthrough PCI device for post-launched VM since these informations should been filled into ACPI tables. So 1. we add a HC vm_assign_pcidev to pass the extra informations to replace the old vm_assign_ptdev. 2. we saso remove HC vm_set_ptdev_msix_info since it could been setted by the post-launched VM now same as SOS. 3. remove vm_map_ptdev_mmio call for PTDev in DM since ACRN hypervisor will handle these BAR access. 4. the most important thing is to trap PCI configure space access for PTDev in HV for post-launched VM and bypass the virtual PCI device configure space access to DM. This patch doesn't do the clean work. Will do it in the next patch. Tracked-On: #4371 Signed-off-by: Li Fei1 <fei1.li@intel.com>

view details

Li Fei1

commit sha 9fa6eff3c5281a01b8c4398bbdb409fd3fe1bfe0

dm: vPCI: remove passthrough PCI device unused code Now we split passthrough PCI device from DM to HV, we could remove all the passthrough PCI device unused code. Tracked-On: #4371 Signed-off-by: Li Fei1 <fei1.li@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>

view details

Li Fei1

commit sha e8479f84cd422280eab42cec10697eb6ec937aec

hv: vPCI: remove passthrough PCI device unuse code Now we split passthrough PCI device from DM to HV, we could remove all the passthrough PCI device unused code. Tracked-On: #4371 Signed-off-by: Li Fei1 <fei1.li@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>

view details

push time in a month

delete branch liujunming/acrn-hypervisor

delete branch : gvtd_doc_fix

delete time in a month

pull request commentprojectacrn/acrn-hypervisor

doc:Refine GVT-d tutorial

@dbkinder Done, please review it, thanks.

liujunming

comment created time in a month

push eventliujunming/acrn-hypervisor

Junming Liu

commit sha aedf3464e1dbb22fd77311f7c608f1c2e5edf28a

doc:Refine GVT-d tutorial refine GVT-d tutorial Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in a month

create barnchliujunming/acrn-hypervisor

branch : gvtd_doc_fix

created branch time in a month

PR opened projectacrn/acrn-hypervisor

Reviewers
doc:Refine GVT-d tutorial

refine GVT-d tutorial

Signed-off-by: Junming Liu junming.liu@intel.com

+5 -5

0 comment

1 changed file

pr created time in a month

push eventliujunming/liujunming.github.io

liujunming

commit sha 10ae9e8c2550eb6b352be859801d4f5ed4d48244

Site updated: 2020-06-02 16:33:47

view details

push time in a month

startedbao-project/bao-hypervisor

started time in 2 months

push eventliujunming/liujunming.github.io

liujunming

commit sha 422494f6605876d837b1b62ceeb7b6e9a8cf3040

Site updated: 2020-05-24 12:45:05

view details

push time in 2 months

startedremzi-arpacidusseau/ostep-homework

started time in 2 months

push eventliujunming/liujunming.github.io

liujunming

commit sha e8bf01c01edb6124254155b79df45446c38669fc

Site updated: 2020-05-22 00:57:06

view details

push time in 2 months

startedhuku-/research

started time in 2 months

issue closedprojectacrn/acrn-hypervisor

Enable GOP driver work in GVT-d scenario

Enable GOP driver work in GVT-d scenario

closed time in 2 months

liujunming

delete branch liujunming/acrn-hypervisor

delete branch : doc_add

delete time in 2 months

startedjwasham/coding-interview-university

started time in 2 months

delete branch liujunming/acrn-hypervisor

delete branch : dissnp_v2

delete time in 2 months

delete branch liujunming/acrn-hypervisor

delete branch : add_gvtd_script

delete time in 2 months

pull request commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

@gvancuts You don't need to verify this document, our QA colleague has verified it.

liujunming

comment created time in 2 months

pull request commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

@gvancuts @NanlinXie Hi, all: the latest PR has updated, please check it, thanks.

liujunming

comment created time in 2 months

push eventliujunming/acrn-hypervisor

Junming Liu

commit sha e65e4b2101ad23e76dbb410e0f048322ef281a9f

doc:add tutorial about enabling GVT-d Previous tutorial "Enable GPU Passthrough on the Skylake NUC" is out of date, so delete it here. v2 -> v1: add attached file Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.

yes. The User VM take over that monitor once it's been launched

This will catch a few people by surprise. Can you add a note that it is recommended to have either a serial port or SSH session open in the Service VM to be able to continue interact with it?

ok

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Prerequisites+*****************+Follow :ref:`these instructions <kbl-nuc-sdc>` to set up the ACRN Service VM.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the board manufacturer according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF

This step number 4 would best be put right after #2. I.e. 1) fetch the drivers, 2) copy them to the right location

ok

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Prerequisites+*****************+Follow :ref:`these instructions <kbl-nuc-sdc>` to set up the ACRN Service VM.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the board manufacturer according to your CPU model name.++3. git apply the following two patches

Come to think of it, is there any reason why we're not putting these patches in by default in the acrn-edk2 repo?

It will break the integrity of a patch. A patch should describe a whole story, not part of a story.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.

The user can choose SSH session or not, it depends on their choice.

What are the options left to interact with the Service VM once the User VM with GVT-d has been launched? The reason why I brought this up is that many users have the Service VM up and running on the monitor (GNOME desktop) and use the local keyboard/mouse. Does the User VM take over that monitor once it's been launched?

yes. The User VM take over that monitor once it's been launched

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git

@liujunming , We need have verified version of acrn-hypervisor and kernel as the base of this document, please help to specify the detailed version information in document.

ok. guoqing has verified my document. I will add these information in next PR

liujunming

comment created time in 2 months

push eventliujunming/acrn-hypervisor

Junming Liu

commit sha cebb04b267da072e55c0e526979ae01cb03a34fb

doc:add tutorial about enabling GVT-d Previous tutorial "Enable GPU Passthrough on the Skylake NUC" is out of date, so delete it here. v2 -> v1: add attached file Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

push eventliujunming/liujunming.github.io

liujunming

commit sha 9701db0fa3a159ef8da726bd2407f76175356b70

Site updated: 2020-05-16 23:49:04

view details

push time in 2 months

pull request commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

@gvancuts The PR has updated, please review it, thanks.

liujunming

comment created time in 2 months

push eventliujunming/acrn-hypervisor

Junming Liu

commit sha 498f0a535108c496e8385993b512eacba12f096e

doc:add tutorial about enabling GVT-d Previous tutorial "Enable GPU Passthrough on the Skylake NUC" is out of date, so delete it here. v2 -> v1: add attached file Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git

I don't think we need to add commit ID. It's our duty to ensure master branch can work.

I think we do. People are free to try out the latest as well but it's much preferable to have a version that's known to work for sure.

If later patches have new features, the customer will lose it. Do we need to give the commit ID of acrn-hypervidor, acrn-kernel? It's our duty to ensure mainline branch can work. If mainline can't work, we need to fix the bug.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2+    git submodule update --init CryptoPkg/Library/OpensslLib/openssl++    source edksetup.sh+    make -C BaseTools++    vim Conf/target.txt++      ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc+      TARGET_ARCH = X64+      TOOL_CHAIN_TAG = GCC5++    build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE++Notes:++   -  ``source edksetup.sh``, this step is needed for compilation every time+      a shell is created.++   -  This will generate the binary at+      ``Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd``++   -  Make sure your GCC is 5.X. GCC 6 and above is NOT supported.

I didn't try it. You may ask nanlin and wenling have a try, thanks.

I gave this a (quick) try. But it did not work. I suggest we put a clear note explaining that the user will need a different build machine that has a gcc 5.x version installed.

Ok, I will put a clear note explaining that the user will need a different build machine that has a gcc 5.x version installed

We don't need to emphasize different. You need a build machine that has a GCC 5.X version installed is enough.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git

I assume master is a moving target, can we also add a tag/commit ID once it's been merged. If people also want to try with master, they can but at least they would have a known good version to use if they have any doubt.

I don't think we need to add commit ID. It's our duty to ensure master branch can work.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

board manufacturer

Thanks for the clarification. Can you update the text to make this clearer?

Sure. I will update this PR.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

Hi, @gvancuts The customer should know the board vendor information. It isn't our business here.

Is it the board manufacturer or the bios vendor that should be contacted?

board manufacturer

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

Please add a note in the tutorial that your patches will have to be adjusted if the files provided by the vendor have a different filename.

Ok. I will add the note

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

I understand that part. I would like to try out the steps in this tutorial, and run that on my NUC7i5BNH system. Who can I contact to get these files?

You can connect Nanlin for help

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

Hi, @gvancuts The customer should know the board vendor information. It isn't our business here.

liujunming

comment created time in 2 months

pull request commentprojectacrn/acrn-edk2

Add Platform GOP Policy

@peterfang Hi, peter. The minor changes have done. Please review it, thanks.

liujunming

comment created time in 2 months

push eventliujunming/acrn-edk2

Junming Liu

commit sha e3cefe5ed01e98755883860b1cf6c6eae202c810

Add Platform GOP Policy GOP driver has dependency on PlatformGopPolicy protocol, especially the GetVbtData() interface. v2 -> v1: change GUID Tracked-On: projectacrn/acrn-hypervisor#4365 Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com> Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

Pull request review commentprojectacrn/acrn-edk2

Add Platform GOP Policy

+#
+#
+# Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved
+#
+# This program and the accompanying materials are licensed and made available under
+# the terms and conditions of the BSD License that accompanies this distribution.
+# The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php.
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+#
+##
+
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = PlatformGOPPolicy
+  FILE_GUID                      = 9737D7CA-D869-46e5-A5EF-75D9538688DE
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = PlatformGOPPolicyEntryPoint
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+#  VALID_ARCHITECTURES           = IA32

This is just for reference but can we update this to X64? Or "IA32 X64"?

ok.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-edk2

Add Platform GOP Policy

+#
+#
+# Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved

OK.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2+    git submodule update --init CryptoPkg/Library/OpensslLib/openssl++    source edksetup.sh+    make -C BaseTools++    vim Conf/target.txt++      ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc+      TARGET_ARCH = X64+      TOOL_CHAIN_TAG = GCC5++    build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE++Notes:++   -  ``source edksetup.sh``, this step is needed for compilation every time+      a shell is created.++   -  This will generate the binary at+      ``Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd``++   -  Make sure your GCC is 5.X. GCC 6 and above is NOT supported.

I didn't try it. You may ask nanlin and wenling have a try, thanks.

I gave this a (quick) try. But it did not work. I suggest we put a clear note explaining that the user will need a different build machine that has a gcc 5.x version installed.

Ok, I will put a clear note explaining that the user will need a different build machine that has a gcc 5.x version installed

liujunming

comment created time in 2 months

pull request commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

Ok, I will put a clear note explaining that the user will need a different build machine that has a gcc 5.x version installed. @gvancuts

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2

yes, thanks for your reminder.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

OK. Where do I get these files for my NUC7i5BNH system for example?

I get the vendor information from PM. I will discuss with this description here with my colleagues.

The couple of patches you ask to apply are also linked to these VBT and GOP drivers. Are these names always going to be consistent no matter the system vendor?

The file names are determined by the vendor. The customer can confirm this with the vendor.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

OK. Where do I get these files for my NUC7i5BNH system for example?

I get the vendor information from PM. I will discuss with this description here with my colleagues.

The couple of patches you ask to apply are also linked to these VBT and GOP drivers. Are these names always going to be consistent no matter the system vendor? These file names are determined by the vendor. The customer can check with the vendor.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2+    git submodule update --init CryptoPkg/Library/OpensslLib/openssl++    source edksetup.sh+    make -C BaseTools++    vim Conf/target.txt++      ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc+      TARGET_ARCH = X64+      TOOL_CHAIN_TAG = GCC5++    build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE++Notes:++   -  ``source edksetup.sh``, this step is needed for compilation every time+      a shell is created.++   -  This will generate the binary at+      ``Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd``++   -  Make sure your GCC is 5.X. GCC 6 and above is NOT supported.

We may refer Build ACRN in Docker.

That container uses a much newer gcc, have you tried it?

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-generic-linux/9/lto-wrapper
Target: x86_64-generic-linux
Configured with: ../gcc-9.3.0/configure --prefix=/usr --with-pkgversion='Clear Linux OS for Intel Architecture' --libdir=/usr/lib64 --enable-libstdcxx-pch --libexecdir=/usr/lib64 --with-system-zlib --enable-shared --enable-gnu-indirect-function --disable-vtable-verify --enable-threads=posix --enable-__cxa_atexit --enable-plugin --enable-ld=default --enable-clocale=gnu --disable-multiarch --enable-multilib --enable-lto --disable-werror --enable-linker-build-id --build=x86_64-generic-linux --target=x86_64-generic-linux --enable-languages=c,c++,fortran,go --enable-bootstrap --with-ppl=yes --with-isl --includedir=/usr/include --exec-prefix=/usr --with-glibc-version=2.19 --disable-libunwind-exceptions --with-gnu-ld --with-tune=haswell --with-arch=westmere --enable-cet --disable-libmpx --with-gcc-major-version-only --enable-default-pie
Thread model: posix
gcc version 9.3.1 20200416 releases/gcc-9.3.0-143-gbaf3a5a942 (Clear Linux OS for Intel Architecture) 

Compile OVMF with secure boot support also need to compile OVMF.

Good point... it'd be good to update that doc too if we can provide a simple mechanism.

I didn't try it. You may ask nanlin and wenling have a try, thanks.

liujunming

comment created time in 2 months

delete branch liujunming/acrn-edk2

delete branch : gvtd_gop_pr

delete time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2+    git submodule update --init CryptoPkg/Library/OpensslLib/openssl++    source edksetup.sh+    make -C BaseTools++    vim Conf/target.txt++      ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc+      TARGET_ARCH = X64+      TOOL_CHAIN_TAG = GCC5++    build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE++Notes:++   -  ``source edksetup.sh``, this step is needed for compilation every time+      a shell is created.++   -  This will generate the binary at+      ``Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd``++   -  Make sure your GCC is 5.X. GCC 6 and above is NOT supported.

We may refer Build ACRN in Docker.

Compile OVMF with secure boot support also need to compile OVMF.

liujunming

comment created time in 2 months

pull request commentprojectacrn/acrn-edk2

Add Platform GOP Policy

@peterfang Hi, peter. The GUID has changed, please review it, thanks.

liujunming

comment created time in 2 months

pull request commentprojectacrn/acrn-edk2

Add Platform GOP Policy

Hi, peter. The GUID has changed, please review it, thanks.

liujunming

comment created time in 2 months

push eventliujunming/acrn-edk2

Junming Liu

commit sha 997c86a2f1f37327f5ee0265ab4f7a807f5a8a04

Add Platform GOP Policy GOP driver has dependency on PlatformGopPolicy protocol, especially the GetVbtData() interface. v2 -> v1: change GUID Tracked-On: projectacrn/acrn-hypervisor#4365 Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com> Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

push eventliujunming/acrn-edk2

push time in 2 months

push eventliujunming/acrn-edk2

Junming Liu

commit sha ad5c297dfebc2b7c8379c752ad7f2e6d27740893

Use the default vbt released with GOP driver This patch use the default vbt which released along with GOP driver. Tracked-On: projectacrn/acrn-hypervisor#4365 Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com> Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

Junming Liu

commit sha 3b9c52ef455c4f9a5957298d08f525c40c59bcad

Integrate IntelGopDriver into OVMF Tracked-On: projectacrn/acrn-hypervisor#4365 v2 -> v1: change GUID from 9737D7CA-D869-45e5-A5EF-75D9438688DE to 9737D4CA-D969-45e5-A6EF-75D943E688DE Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com> Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

push eventliujunming/acrn-edk2

Junming Liu

commit sha 3b9c52ef455c4f9a5957298d08f525c40c59bcad

Integrate IntelGopDriver into OVMF Tracked-On: projectacrn/acrn-hypervisor#4365 v2 -> v1: change GUID from 9737D7CA-D869-45e5-A5EF-75D9438688DE to 9737D4CA-D969-45e5-A6EF-75D943E688DE Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com> Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

The vendor means: vendor that flashes BIOS into the board.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-edk2

Add Platform GOP Policy

+#
+#
+# Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved
+#
+# This program and the accompanying materials are licensed and made available under
+# the terms and conditions of the BSD License that accompanies this distribution.
+# The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php.
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+#
+#
+##
+
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = PlatformGOPPolicy
+  FILE_GUID                      = 9737D7CA-D869-45e5-A5EF-75D9438688DE

ok. I will use a different GUID.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2+    git submodule update --init CryptoPkg/Library/OpensslLib/openssl++    source edksetup.sh+    make -C BaseTools++    vim Conf/target.txt++      ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc+      TARGET_ARCH = X64+      TOOL_CHAIN_TAG = GCC5++    build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE++Notes:++   -  ``source edksetup.sh``, this step is needed for compilation every time+      a shell is created.++   -  This will generate the binary at+      ``Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd``++   -  Make sure your GCC is 5.X. GCC 6 and above is NOT supported.

We may provide a docker image that can successfully compile OVMF?

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git

This suggestion is great. I will add the commit ID later.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

We can get those from vendor only.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform

@wenlingz @NanlinXie Hi, nanlin and wenlin. "Supported HW" page in the ACRN documentation will add Elkhart Lake in the future. Is it right?

liujunming

comment created time in 2 months

startedWangzhike/HIT-Linux-0.11

started time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.

Yes. It's better to add Prerequisites. I will add it.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git

After my PR has merged. It's enough to use acrn-edk2 master branch.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform

"Supported HW" page in the ACRN documentation will add Elkhart Lake in the future. So we don't need to add info/link to Elkhart Lake.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2+    git submodule update --init CryptoPkg/Library/OpensslLib/openssl++    source edksetup.sh+    make -C BaseTools++    vim Conf/target.txt++      ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc+      TARGET_ARCH = X64+      TOOL_CHAIN_TAG = GCC5++    build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE++Notes:++   -  ``source edksetup.sh``, this step is needed for compilation every time+      a shell is created.++   -  This will generate the binary at+      ``Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd``++   -  Make sure your GCC is 5.X. GCC 6 and above is NOT supported.++   -  Modify the launch script to specify the OVMF you built just now.

Ok, I will add this step here.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.

GVT-d is not limited to SDC scenario. It's used when needing HMI User VM.

liujunming

comment created time in 2 months

pull request commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

There are a number of GVT-g related kernel command-line parameters that we set by default for the Service VM kernel. Do we need to remove them if we use GVT-d?

We don't need to remove them.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.

I don't think we need to mention this Service VM that's been set-up correctly already and we will launch a Windows User VM (WaaG) that will take over the GPU using GVT-d. This tutorial shows the usage the acrn-dm, only Servicee VM can do this, So we don't need to mention. The user can choose SSH session or not, it depends on their choice.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2+    git submodule update --init CryptoPkg/Library/OpensslLib/openssl++    source edksetup.sh+    make -C BaseTools++    vim Conf/target.txt++      ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc+      TARGET_ARCH = X64+      TOOL_CHAIN_TAG = GCC5++    build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE++Notes:

These steps are enough. source edksetup.sh will help to tell the user about the dependencies and tools.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2+    git submodule update --init CryptoPkg/Library/OpensslLib/openssl++    source edksetup.sh+    make -C BaseTools++    vim Conf/target.txt++      ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc+      TARGET_ARCH = X64+      TOOL_CHAIN_TAG = GCC5++    build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE++Notes:++   -  ``source edksetup.sh``, this step is needed for compilation every time+      a shell is created.++   -  This will generate the binary at+      ``Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd``++   -  Make sure your GCC is 5.X. GCC 6 and above is NOT supported.

It can be the same one building ACRN. Just ensure GCC is 5.X.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.++3. git apply the following two patches++* `Use-the-default-vbt-released-with-GOP-driver.patch+  <../_static/downloads/Use-the-default-vbt-released-with-GOP-driver.patch>`_+* `Integrate-IntelGopDriver-into-OVMF.patch+  <../_static/downloads/Integrate-IntelGopDriver-into-OVMF.patch>`_++4. add vbt and gop driver into OVMF++::++      cp IntelGopDriver.efi  acrn-edk2/OvmfPkg/IntelGop/IntelGopDriver.efi+      cp Vbt.bin acrn-edk2/OvmfPkg/Vbt/Vbt.bin++5. compile OVMF++::++    cd edk2+    git submodule update --init CryptoPkg/Library/OpensslLib/openssl++    source edksetup.sh+    make -C BaseTools++    vim Conf/target.txt++      ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc+      TARGET_ARCH = X64+      TOOL_CHAIN_TAG = GCC5++    build -DFD_SIZE_2MB -DDEBUG_ON_SERIAL_PORT=TRUE++Notes:++   -  ``source edksetup.sh``, this step is needed for compilation every time+      a shell is created.++   -  This will generate the binary at+      ``Build/OvmfX64/DEBUG_GCC5/FV/OVMF.fd``++   -  Make sure your GCC is 5.X. GCC 6 and above is NOT supported.

Yes, We need a dedicated machine to build. I will add more discription here.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git

I have PR to acrn-ovmf. It hasn't merge now. We need to wait for this PR to be merged.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git

acrn-ovmf has no tag. So git clone https://github.com/projectacrn/acrn-edk2.git is enough.

liujunming

comment created time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user,+passing the native driver capabilities through the hypervisor without any limitations.++Hardware Platform Supported+***************************+Currently, ACRN has enabled GVT-d on the following platforms:++* Kaby Lake+* Whiskey Lake+* Elkhart Lake++BIOS Setting+**********************++Kaby Lake Platform+==================+* set "IGD Minimum Memory" to "64MB" in "Devices → Video → IGD Minimum Memory".++Whiskey Lake Platform+=====================+* set "PM Support"  to "Enabled" in "chipset → System Agent (SA) Configuration → Graphics Configuration → PM support".+* set "DVMT Pre-Allocated" to "64MB" in "chipset → System Agent (SA) Configuration → Graphics Configuration → DVMT Pre-Allocated"++Elkhart Lake Platform+=====================+* set "DMVT Pre-Allocated" to "64MB" in "Intel Advanced Menu → System Agent(SA) Configuration → Graphics Configuration → DMVT Pre-Allocated"++Pass-through GPU to Guest+**************************++1. Copy ``/usr/share/acrn/samples/nuc/launch_win.sh`` to ``install_win.sh``++::++   cp /usr/share/acrn/samples/nuc/launch_win.sh ~/install_win.sh++2. Modify ``install_win.sh`` script to specify the Windows image you use.++3. Modify ``install_win.sh`` script to enable GVT-d.++Add the following commands before ``acrn-dm -A -m $mem_size -s 0:0,hostbridge \``++::++      gpudevice=`cat /sys/bus/pci/devices/0000:00:02.0/device`++      echo "8086 $gpudevice" > /sys/bus/pci/drivers/pci-stub/new_id+      echo "0000:00:02.0" > /sys/bus/pci/devices/0000:00:02.0/driver/unbind+      echo "0000:00:02.0" > /sys/bus/pci/drivers/pci-stub/bind++Replace ``-s 2,pci-gvt -G "$2" \`` with ``-s 2,passthru,0/2/0,gpu \``++4. Run the ``launch_win.sh``.++      .. note:: If you want to pass-through GPU to Clear Linux User VM, the steps are+         the same as above except your script.++Enable GVT-d GOP driver+***********************++Issue+======+When enabling GVT-d, guest OS couldn’t light up physical screen+before OS driver load. So guest BIOS and+grub GUI couldn’t be showed on the physical screen.++Reason+==========+Physical display is initialized by GOP driver or VBIOS+before OS driver load, but guest BIOS doesn’t have them.++Solution+==========+Integrate GOP driver binary into OVMF as a Dxe driver,+then guest OVMF could see GOP driver and run it in+graphic pass-through environment.+So physical display could be initialized+by GOP and used by guest BIOS and guest grub.++Steps+======+1. fetch ACRN OVMF++::++      git clone https://github.com/projectacrn/acrn-edk2.git++2. fetch vbt and gop driver++Fetch vbt and gop driver from the vendor according to your CPU model name.

These binaries aren't public. So we can't give the link.

liujunming

comment created time in 2 months

push eventliujunming/acrn-hypervisor

Geoffroy Van Cutsem

commit sha a69a5608da57b3eb1bd7ea614bec5553afca263e

doc: add note to the Celadon User VM tutorial Add a note to the "Run Celadon as the User VM" tutorial to indicate a serial port connection to the platform (or change of the default config) may be needed if the user uses a scenario other than SDC (the default one in the doc). Tracked-On: #4554 Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>

view details

Geoffroy Van Cutsem

commit sha 7689b92ed0b18bdbbebb062c0a3b2dcb1d828df5

doc: update Zephyr document to indicate a serial port is needed Update the "Run Zephyr as the User VM" document to add a note indicating a serial port connection to the platform may be needed to see the Zephyr output depending on the scenario used (SDC vs. industrial). Tracked-On: #4553 Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>

view details

David B. Kinder

commit sha 765e40bdb1cb0fb254449051e53520b655b8740b

doc: edit notes on serial connection need Clarify wording on tutorial notes about needing a serial port connection. Signed-off-by: David B. Kinder <david.b.kinder@intel.com>

view details

Yonghua Huang

commit sha c4ab748cb978f8961afc629d279cd877f8e62b89

doc: update security advisory for 1.6.1 release Update mitigations for security vulnerabilities for ACRN 1.6.1 release Signed-off-by: Yonghua Huang <yonghua.huang@intel.com> Signed-off-by: David B. Kinder <david.b.kinder@intel.com>

view details

Zide Chen

commit sha 64e0f498a754d036ca46e7c75b5b167783ee77ca

doc: update hvlog kernel parameter descriptions Signed-off-by: Zide Chen <zide.chen@intel.com>

view details

Deb Taylor

commit sha bfe2a1c5256c3fe57bef92f2840f1dd967ac6381

Doc: Initial file: Config ACRN using OpenStack & libvert Signed-off-by: Deb Taylor <deb.taylor@intel.com>

view details

Yan, Like

commit sha f774ee1fbade9d71120f07651e7396e454c4bf81

HV: RDT: merge struct rdt_cache and rdt_membw in to a union A RDT resource could be CAT or MBA, so only one of struct rdt_cache and struct rdt_membw would be used at a time. They should be a union. This commit merge struct rdt_cache and struct rdt_membw in to a union res. Tracked-On: #4604 Signed-off-by: Yan, Like <like.yan@intel.com> Reviewed-by: Vijay Dhanraj <vijay.dhanraj@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com

view details

Yan, Like

commit sha 277c668b04a5cbca117fcd790821a1ed636203e7

HV: RDT: clean up RDT code This commit makes some RDT code cleanup, mainling including: - remove the clos_mask and mba_delay validation check in setup_res_clos_msr(), the check will be done in pre-build; - rename platform_clos_num to valid_clos_num, which is set as the minimal clos_mas of all enabled RDT resouces; - init the platform_clos_array in the res_cap_info[] definition; - remove the unnecessary return values and return value check. Tracked-On: #4604 Signed-off-by: Yan, Like <like.yan@intel.com>

view details

Yan, Like

commit sha 869ccb7ba895fa66047939ae6dabb4e4869800f5

HV: RDT: add CDP support in ACRN CDP is an extension of CAT. It enables isolation and separate prioritization of code and data fetches to the L2 or L3 cache in a software configurable manner, depending on hardware support. This commit adds a Kconfig switch "CDP_ENABLED" which depends on "RDT_ENABLED". CDP will be enabled if the capability available and "CDP_ENABLED" is selected. Tracked-On: #4604 Signed-off-by: Yan, Like <like.yan@intel.com> Reviewed-by: Vijay Dhanraj <vijay.dhanraj@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>

view details

Sainath Grandhi

commit sha bf1ff8c98f2e4f585096c156b9d5349f05e9aaed

hv: Offload syncing PIR to vIRR to processor hardware ACRN syncs PIR to vIRR in the software in cases the Posted Interrupt notification happens while the pCPU is in root mode. Sync can be achieved by processor hardware by sending a posted interrupt notiification vector. This patch sends a self-IPI, if there are interrupts pending in PIR, which is serviced by the logical processor at the next VMEnter Tracked-On: #4777 Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>

view details

Zide Chen

commit sha 0629c5c8c2aea350a53cf813ffa2390e11cb6103

hv/acrn-config: changed name from cpu_affinity_bitmap to cpu_affinity Tracked-On: #4616 Signed-off-by: Zide Chen <zide.chen@intel.com>

view details

Zide Chen

commit sha 0a956c34c72f866d428a4a44e52d7ad56bb4fb54

hv: add a new field cpu_affinity in struct acrn_vm For post-launched VMs, the configured CPU affinity could be different from the actual running CPU affinity. This new field acrn_vm->cpu_affinity recognizes this difference so that it's possible that CREATE_VM hypercall won't overwrite the configured CPU afifnity. Change name cpu_affinity_bitmap in acrn_vm_config to cpu_affinity. This is read-only in run time, never overwritten by acrn-dm. Remove vm_config->vcpu_num, which means the number of vCPUs of the configured CPU affinity. This is not to be confused with the actual running vCPU number: vm->hw.created_vcpus. Changed get_vm_bsp_pcpu_id() to get_configured_bsp_pcpu_id() for less confusion. Tracked-On: #4616 Signed-off-by: Zide Chen <zide.chen@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>

view details

Conghui Chen

commit sha d7e1f570d4501223b43038f52bbf2b81b21b6026

doc: cpu-sharing doc update Update cpu-sharing document. Signed-off-by: Conghui Chen <conghui.chen@intel.com>

view details

David B. Kinder

commit sha 5850f00880e9fef58be0d1d3099bd5ea17d43587

doc: update libvirt guide Clean up command-line formatting, reduce line length, prepare for further technical review. Signed-off-by: David B. Kinder <david.b.kinder@intel.com>

view details

lirui34

commit sha 0c36a93ceea8e220a6d83e5a93619b23b54774bc

doc: update industry getting started guide to v1.6.1 Add instruction to launch multiple post launched VMs. Signed-off-by: lirui34 <ruix.li@intel.com> Signed-off-by: David B. Kinder <david.b.kinder@intel.com>

view details

fangfang.shen

commit sha 2db40c99565e88abd6fd39653a927f5afbf9bfa5

doc: update GSG for ACRN V1.6.1. Signed-off-by: fangfang.shen <fangfang.shen@intel.com>

view details

Junming Liu

commit sha b62504100db2095b837fed96fcac473c1a5b328b

doc:add tutorial about enabling GVT-d Previous tutorial "Enable GPU Passthrough on the Skylake NUC" is out of date, so delete it here. v2 -> v1: add attached file Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

push eventliujunming/acrn-hypervisor

Junming Liu

commit sha cc6298b20587874598cf5f89f1e3ae665d67920f

doc:add tutorial about enabling GVT-d Previous tutorial "Enable GPU Passthrough on the Skylake NUC" is out of date, so delete it here. v2 -> v1: add attached file Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

push eventliujunming/liujunming.github.io

liujunming

commit sha 5faafa5daf5ad68e184de7620ae9156cc3a0a885

Site updated: 2020-05-10 22:56:16

view details

push time in 2 months

startedmengning/mykernel

started time in 2 months

startedmengning/linuxkernel

started time in 2 months

push eventliujunming/acrn-hypervisor

Junming Liu

commit sha 9884841ab07742e89f846c7f5bac9cb1a0bdf483

doc:add tutorial about enabling GVT-d Previous tutorial "Enable GPU Passthrough on the Skylake NUC" is out of date, so delete it here. v2 -> v1: add attached file Signed-off-by: Junming Liu <junming.liu@intel.com>

view details

push time in 2 months

Pull request review commentprojectacrn/acrn-hypervisor

doc:add tutorial about enabling GVT-d

+.. _gpu-passthrough:++Enable GVT-d in ACRN+#########################################++This tutorial describes how to enable GVT-d in ACRN.++Introduction+*****************+Intel GVT-d is one flavor of graphics virtualization approaches also+names as Intel-Graphics-Device pass-through feature.+It based on Intel VT-d technology,+and some special graphics related configuration.+This flavor allows direct assignment of an entire GPU’s prowess to a single user VM,

I think when GPU pass-through to SOS, it isn't GVT-d. This definition comes from: https://github.com/intel/gvt-linux/wiki/GVTd_Setup_Guide#1-introduction

liujunming

comment created time in 2 months

PR opened projectacrn/acrn-hypervisor

Reviewers
doc:add tutorial about enabling GVT-d

Previous tutorial "Enable GPU Passthrough on the Skylake NUC" is out of date, so delete it here.

Signed-off-by: Junming Liu junming.liu@intel.com

+152 -126

0 comment

6 changed files

pr created time in 2 months

create barnchliujunming/acrn-hypervisor

branch : doc_add

created branch time in 2 months

push eventliujunming/liujunming.github.io

liujunming

commit sha f1c23d6adb9df31ab97961d44b2d110d7cbbaccf

Site updated: 2020-05-07 22:08:27

view details

push time in 2 months

more