From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Teo En Ming (Zhang Enming)" Subject: Is it possible to passthrough 2 GPUs to a single HVM Guest? Date: Mon, 24 Sep 2012 08:46:05 +0800 Message-ID: <505FAD4D.7080003@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------020100030600030809050601" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "xen-users@lists.xen.org" , "xen-devel@lists.xen.org" Cc: "Teo En Ming (Zhang Enming)" , Frank Lyon List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------020100030600030809050601 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, I tried working on Frank Lyon's server. With 2 GPUs (NVIDIA Quadro 6000) plugged in, Windows 7 and Windows 8 HVM guests are unable to start. Windows 7 and WIndows 8 HVM guests only manage to start properly when the 2nd GPU is unplugged out of the server. Is this right? This doesn't make sense. Attached are Frank Lyon's xen configuration files. Please advise. Thank you very much. -- Yours sincerely, Mr. Teo En Ming (Zhang Enming) Singapore --------------020100030600030809050601 Content-Type: text/plain; name="40_custom" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="40_custom" #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry 'Ubuntu 12.04 amd64 Release with Xen 4.3-unstable and Linux Kernel 3.5.4-xen-frank.lyon-sgp' --class gnu-linux --class gnu --class os { recordfail insmod part_msdos insmod ext2 search --no-floppy --fs-uuid --set=root d5ec6b7f-e1db-4b46-b050-d0bd46403f59 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root d5ec6b7f-e1db-4b46-b050-d0bd46403f59 multiboot /xen.gz module /vmlinuz-3.5.4-xen-frank.lyon-sgp placeholder root=/dev/mapper/snow-root dom0_mem=1024 console=tty quiet splash vt.handoff=7 nomodeset module /initrd.img-3.5.4-xen-frank.lyon-sgp } --------------020100030600030809050601 Content-Type: text/plain; name="grub" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="grub" # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=50 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="" GRUB_CMDLINE_LINUX="nomodeset" # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" --------------020100030600030809050601 Content-Type: text/plain; name="rc.local" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="rc.local" #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. sudo ifconfig eth0 up sudo route add default gw 192.168.25.1 sudo echo "nameserver 192.168.50.15" >> /etc/resolv.conf sudo echo "nameserver 192.168.50.30" >> /etc/resolv.conf exit 0 --------------020100030600030809050601 Content-Type: text/plain; name="start-windows" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="start-windows" #!/bin/sh set -x # #Loads pci-stub kernel module sudo modprobe pci-stub # #Passthrough NVIDIA Quadro 6000 # echo "Passthrough NVIDIA Quadro 6000 VGA card." sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id sudo chmod o+w /sys/bus/pci/devices/0000:0d:00.0/driver/unbind sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind echo "10de 06d8" > /sys/bus/pci/drivers/pci-stub/new_id echo "0000:0d:00.0" > /sys/bus/pci/devices/0000:0d:00.0/driver/unbind echo "0000:0d:00.0" > /sys/bus/pci/drivers/pci-stub/bind # #Passthrough NVIDIA HD Audio Controller # echo "Passthrough NVIDIA HD Audio Controller." sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id sudo chmod o+w /sys/bus/pci/devices/0000:0d:00.1/driver/unbind sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind echo "10de 0be5" > /sys/bus/pci/drivers/pci-stub/new_id echo "0000:0d:00.1" > /sys/bus/pci/devices/0000:0d:00.1/driver/unbind echo "0000:0d:00.1" > /sys/bus/pci/drivers/pci-stub/bind # #Passthrough 2nd NVIDIA Quadro 6000 # #echo "Passthrough 2nd NVIDIA Quadro 6000 VGA card." #sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id #sudo chmod o+w /sys/bus/pci/devices/0000:1b:00.0/driver/unbind #sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind #echo "10de 06d8" > /sys/bus/pci/drivers/pci-stub/new_id #echo "0000:1b:00.0" > /sys/bus/pci/devices/0000:1b:00.0/driver/unbind #echo "0000:1b:00.0" > /sys/bus/pci/drivers/pci-stub/bind # #Passthrough 2nd NVIDIA HD Audio Controller # #echo "Passthrough 2nd NVIDIA HD Audio Controller." #sudo chmod o+w /sys/bus/pci/drivers/pci-stub/new_id #sudo chmod o+w /sys/bus/pci/devices/0000:1b:00.1/driver/unbind #sudo chmod o+w /sys/bus/pci/drivers/pci-stub/bind #echo "10de 0be5" > /sys/bus/pci/drivers/pci-stub/new_id #echo "0000:1b:00.1" > /sys/bus/pci/devices/0000:1b:00.1/driver/unbind #echo "0000:1b:00.1" > /sys/bus/pci/drivers/pci-stub/bind # #Wait for 10 seconds # sleep 10 # #Start Windows HVM domU with VGA Passthrough # sudo xl create /etc/xen/Windows7 #sudo xl create /etc/xen/Windows8 --------------020100030600030809050601 Content-Type: text/plain; name="Windows7" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Windows7" # XL domain configuration file for Windows 8 Consumer Preview 64-bit English HVM domU # Please refer to "man xl.cfg" for further explanations. # See also docs/misc/xl-network-configuration.markdown and # docs/misc/xl-disk-configuration.txt # Written by Teo En Ming (Zhang Enming) # Email: teo.en.ming@gmail.com # Mobile Phone: +65-8369-2618 # Country: Singapore # Date: 18 Mar 2012 Sun name="Windows8" # Product Key: WJBRX-2N7B2-CCBF6-VPP97-R88XV builder="hvm" vcpus=2 memory=2048 on_poweroff="destroy" on_reboot="restart" on_crash="destroy" disk=[ 'format=raw, vdev=hda, access=rw, target=/etc/xen/images/windows7.img', 'format=raw, vdev=hdc, access=ro, devtype=cdrom, target=/home/flyon/windows7.iso' ] vif=[ 'bridge=eth0,type=ioemu,model=e1000' ] #boot=[c|d|n] # Selects the emulated virtual device to boot from. Options are hard disk (c), cd-rom (d) or network/PXE (n). # Multiple options can be given and will be attempted in the order they are given. e.g. to boot from cd-rom # but fallback to the hard disk you can give dc. The default is cd. boot="dc" acpi=1 #xen_platform_pci=1 #viridian=1 #stdvga=1 vnc=1 vnclisten="192.168.25.50" vncdisplay=0 vncunused=1 vncpasswd="" sdl=0 usb=1 # Passthrough the USB Keyboard usbdevice = "host:04f2:0110" # Passthrough the USB Optical Mouse usbdevice = "host:046d:c03d" # Enable Xen VGA Passthrough gfx_passthru=1 # VGA Passthrough NVIDIA Quadro 6000 and PCI Passthrough NVIDIA HD Audio Controller, then 2nd NVIDIA Quadro 6000 and 2nd NVIDIA HD Audio Controller #pci = [ '0d:00.0','0d:00.1','1b:00.0','1b:00.1' ] pci = [ '0d:00.0','0d:00.1' ] # PCI Passthrough Intel HD Audio Controller. #pci = [ '00:1b.0' ] # PCI Passthrough all the USB Controllers. # pci = [ '00:1a.0','00:1a.1','00:1a.2','00:1a.7','00:1d.0','00:1d.1','00:1d.2','00:1d.7' ] --------------020100030600030809050601 Content-Type: text/plain; name="Windows8" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Windows8" # XL domain configuration file for Windows 8 Consumer Preview 64-bit English HVM domU # Please refer to "man xl.cfg" for further explanations. # See also docs/misc/xl-network-configuration.markdown and # docs/misc/xl-disk-configuration.txt # Written by Teo En Ming (Zhang Enming) # Email: teo.en.ming@gmail.com # Mobile Phone: +65-8369-2618 # Country: Singapore # Date: 18 Mar 2012 Sun name="Windows8" # Product Key: WJBRX-2N7B2-CCBF6-VPP97-R88XV builder="hvm" vcpus=2 memory=2048 on_poweroff="destroy" on_reboot="restart" on_crash="destroy" disk=[ 'format=raw, vdev=hda, access=rw, target=/etc/xen/images/windows8.img', 'format=raw, vdev=hdc, access=ro, devtype=cdrom, target=/home/flyon/windows8.iso' ] vif=[ 'bridge=eth0,type=ioemu,model=e1000' ] #boot=[c|d|n] # Selects the emulated virtual device to boot from. Options are hard disk (c), cd-rom (d) or network/PXE (n). # Multiple options can be given and will be attempted in the order they are given. e.g. to boot from cd-rom # but fallback to the hard disk you can give dc. The default is cd. boot="dc" acpi=1 #xen_platform_pci=1 #viridian=1 #stdvga=1 vnc=1 vnclisten="192.168.25.50" vncdisplay=0 vncunused=1 vncpasswd="" sdl=0 usb=1 # Passthrough the USB Keyboard usbdevice = "host:04f2:0110" # Passthrough the USB Optical Mouse usbdevice = "host:046d:c03d" # Enable Xen VGA Passthrough gfx_passthru=1 # VGA Passthrough NVIDIA Quadro 6000 and PCI Passthrough NVIDIA HD Audio Controller, then 2nd NVIDIA Quadro 6000 and 2nd NVIDIA HD Audio Controller #pci = [ '0d:00.0','0d:00.1','1b:00.0','1b:00.1' ] pci = [ '0d:00.0','0d:00.1' ] # PCI Passthrough Intel HD Audio Controller. #pci = [ '00:1b.0' ] # PCI Passthrough all the USB Controllers. # pci = [ '00:1a.0','00:1a.1','00:1a.2','00:1a.7','00:1d.0','00:1d.1','00:1d.2','00:1d.7' ] --------------020100030600030809050601 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --------------020100030600030809050601--