All of lore.kernel.org
 help / color / mirror / Atom feed
* PCI Passthrough to HVM on xen-unstable
@ 2007-11-29 16:52 Jambunathan K
  0 siblings, 0 replies; 7+ messages in thread
From: Jambunathan K @ 2007-11-29 16:52 UTC (permalink / raw)
  To: xen-devel

I am working on S5000VSA Intel Server Board with the following cpu spec.

XEN-PEER-RHEL5 $ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz
stepping        : 7
cpu MHz         : 2327.512
cache size      : 4096 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc up pni
monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips        : 4661.90
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Is my box vt-d capable? If the answer is yes proceed ahead to the details. If
the answer is no, how can a novice user like me identify whether or not his box
is vt-d capable.

I am attaching below snapshots of dump that I think are relevant. You could see
the following:
	a) XEN specific dom0 kernel config.
	b) menu.lst entry
	c) Guest VM (which is a Sles10 HVM) config file.
	d) dmesg | grep pciback which says that hidden device indeed exists.

When I start the HVM I get the following error:

XEN-PEER-RHEL5 $ xm create sles10disk.cfg
Using config file "./sles10disk.cfg".
Error: Fail to assign device(4:0.0): maybe VT-d is not enabled, or the device is
not exist, or it has already been assigned to other domain


The following thing surprises me:

	a) If my device - (4:0.0) is indeed hidden in Dom0 but *not assigned* to the
HVM, realtek card shows up at (4:0.0) in HVM's lspci as below. Note that my dom0
kernel config has CONFIG_XEN_PCIDEV_BACKEND_PASS=y which I believe is *non-default*.

00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 01)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Class ff80: Unknown device 5853:0001 (rev 01)
00:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 20)







XEN-PEER-RHEL5 $ cat /boot/xen320-unstable/config-2.6.18.8-xen-1127 | grep XEN
CONFIG_X86_64_XEN=y
CONFIG_X86_XEN_GENAPIC=y
CONFIG_XEN_PCIDEV_FRONTEND=y
# CONFIG_XEN_PCIDEV_FE_DEBUG is not set
CONFIG_TCG_XEN=m
CONFIG_XEN=y
CONFIG_XEN_INTERFACE_VERSION=0x00030207
# XEN
CONFIG_XEN_PRIVILEGED_GUEST=y
# CONFIG_XEN_UNPRIVILEGED_GUEST is not set
CONFIG_XEN_PRIVCMD=y
CONFIG_XEN_XENBUS_DEV=y
CONFIG_XEN_BACKEND=y
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_XEN_BLKDEV_TAP=y
CONFIG_XEN_NETDEV_BACKEND=y
# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
CONFIG_XEN_NETDEV_LOOPBACK=y
CONFIG_XEN_PCIDEV_BACKEND=y
# CONFIG_XEN_PCIDEV_BACKEND_VPCI is not set
CONFIG_XEN_PCIDEV_BACKEND_PASS=y
# CONFIG_XEN_PCIDEV_BACKEND_SLOT is not set
# CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER is not set
# CONFIG_XEN_PCIDEV_BE_DEBUG is not set
CONFIG_XEN_TPMDEV_BACKEND=y
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_FRAMEBUFFER=y
CONFIG_XEN_KEYBOARD=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DISABLE_SERIAL=y
CONFIG_XEN_SYSFS=y
CONFIG_XEN_COMPAT_030002_AND_LATER=y
# CONFIG_XEN_COMPAT_030004_AND_LATER is not set
# CONFIG_XEN_COMPAT_030100_AND_LATER is not set
# CONFIG_XEN_COMPAT_LATEST_ONLY is not set
CONFIG_XEN_COMPAT=0x030002
CONFIG_XEN_SMPBOOT=y
CONFIG_XEN_BALLOON=y
CONFIG_XEN_DEVMEM=y

XEN-PEER-RHEL5 $ cat /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol01
#          initrd /initrd-version.img
#boot=/dev/sda

default=3
timeout=10

#0
title Red Hat Enterprise Linux Server (2.6.18-8.el5-smp)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol01
crashkernel=128M@16M
        initrd /initrd-2.6.18-8.el5.img

#1
title Red Hat Enterprise Linux Server (2.6.18-8.el5-up)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol01
crashkernel=128M@16M maxcpus=1
        initrd /initrd-2.6.18-8.el5.img

#2
title RHEL5-XEN311-RC2
    root (hd0,0)
    kernel /xen311/xen-3.1.1-rc2.gz dom0_mem=1300M loopback.nloopbacks=16
    module /xen311/vmlinuz-2.6.18-xen-311 root=/dev/VolGroup00/LogVol01  ro
showopts console=tty0
    module /xen311/initrd-2.6.18-xen-311.img


#3
title RHEL5-XEN320-UNSTABLE
    root (hd0,0)
    kernel /xen320-unstable/xen-3.2-unstable.gz dom0_mem=1300M
loopback.nloopbacks=16 vtd=1
    module /xen320-unstable/vmlinuz-2.6.18.8-xen-1127
root=/dev/VolGroup00/LogVol01  ro showopts console=tty0  pciback.hide=(04:00.0)
pciback.verbose_request=1 apic=debug maxcpus=1
    module /xen320-unstable/initrd-2.6.18.8-xen-1127.img

XEN-PEER-RHEL5 $ cat /mnt/archive/xendisks/Sles10/sles10disk.cfg
#  -*- mode: python; -*-
#============================================================================
# Python configuration setup for 'xm create'.
# This script sets the parameters used when a domain is created using 'xm create'.
# You use a separate script for each domain you want to create, or
# you can set the parameters for the domain on the xm command line.
#============================================================================

import os, re
arch = os.uname()[4]
if re.search('64', arch):
    arch_libdir = 'lib64'
else:
    arch_libdir = 'lib'

#----------------------------------------------------------------------------
# Kernel image file.
kernel = "/usr/lib/xen/boot/hvmloader"

# The domain build function. HVM domain uses 'hvm'.
builder='hvm'

# Initial memory allocation (in megabytes) for the new domain.
#
# WARNING: Creating a domain with insufficient memory may cause out of
#          memory errors. The domain needs enough memory to boot kernel
#          and modules. Allocating less than 32MBs is not recommended.
memory = 1200

# Shadow pagetable memory for the domain, in MB.
# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.
# shadow_memory = 8

# A name for your domain. All domains must have different names.
name = "HvmSles10"

# 128-bit UUID for the domain.  The default behavior is to generate a new UUID
# on each call to 'xm create'.
#uuid = "06ed00fe-1162-4fc4-b5d8-11993ee4a8b9"

#-----------------------------------------------------------------------------
# The number of cpus guest platform has, default=1
#vcpus=1

# Enable/disable HVM guest PAE, default=1 (enabled)
#pae=1

# Enable/disable HVM guest ACPI, default=1 (enabled)
#acpi=1

# Enable/disable HVM APIC mode, default=1 (enabled)
# Note that this option is ignored if vcpus > 1
#apic=1

# List of which CPUS this domain is allowed to use, default Xen picks
#cpus = ""         # leave to Xen to pick
#cpus = "0"        # all vcpus run on CPU0
#cpus = "0-3,5,^1" # run on cpus 0,2,3,5

# Optionally define mac and/or bridge for the network interfaces.
# Random MACs are assigned if not given.
#vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0, model=ne2k_pci' ]
# type=ioemu specify the NIC is an ioemu device not netfront
vif = [ 'type=ioemu, mac=00:16:3e:65:63:5d, bridge=xenbr0' ]

#----------------------------------------------------------------------------
# Define the disk devices you want the domain to have access to, and
# what you want them accessible as.
# Each disk entry is of the form phy:UNAME,DEV,MODE
# where UNAME is the device, DEV is the device name the domain will see,
# and MODE is r for read-only, w for read-write.

#disk = [ 'phy:hda1,hda1,r' ]
#disk = [ 'file:/mnt/guest02/sles10disk.img,ioemu:hda,w',
'file:/mnt/guest02/SLES-10-AMD64-EM64T-DVD1.iso,hdc:cdrom,r' ]
disk = [ 'file:/mnt/archive/xendisks/Sles10/sles10disk.img,ioemu:hda,w' ]

#----------------------------------------------------------------------------
# Configure the behaviour when a domain exits.  There are three 'reasons'
# for a domain to stop: poweroff, reboot, and crash.  For each of these you
# may specify:
#
#   "destroy",        meaning that the domain is cleaned up as normal;
#   "restart",        meaning that a new domain is started in place of the old
#                     one;
#   "preserve",       meaning that no clean-up is done until the domain is
#                     manually destroyed (using xm destroy, for example); or
#   "rename-restart", meaning that the old domain is not cleaned up, but is
#                     renamed and a new domain started in its place.
#
# The default is
#
#   on_poweroff = 'destroy'
#   on_reboot   = 'restart'
#   on_crash    = 'restart'
#
# For backwards compatibility we also support the deprecated option restart
#
# restart = 'onreboot' means on_poweroff = 'destroy'
#                            on_reboot   = 'restart'
#                            on_crash    = 'destroy'
#
# restart = 'always'   means on_poweroff = 'restart'
#                            on_reboot   = 'restart'
#                            on_crash    = 'restart'
#
# restart = 'never'    means on_poweroff = 'destroy'
#                            on_reboot   = 'destroy'
#                            on_crash    = 'destroy'

on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

#============================================================================

# New stuff
device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'

#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot="cda"

#-----------------------------------------------------------------------------
#  write to temporary files instead of disk image files
#snapshot=1

#----------------------------------------------------------------------------
# enable SDL library for graphics, default = 0
sdl=0

#----------------------------------------------------------------------------
# enable VNC library for graphics, default = 1
vnc=1

#----------------------------------------------------------------------------
# address that should be listened on for the VNC server if vnc is set.
# default is to use 'vnc-listen' setting from /etc/xen/xend-config.sxp
#vnclisten="127.0.0.1"

#----------------------------------------------------------------------------
# set VNC display number, default = domid
#vncdisplay=1

#----------------------------------------------------------------------------
# try to find an unused port for the VNC server, default = 1
#vncunused=1

#----------------------------------------------------------------------------
# enable spawning vncviewer for domain's console
# (only valid when vnc=1), default = 0
vncconsole=1

#----------------------------------------------------------------------------
# set password for domain's VNC console
# default is depents on vncpasswd in xend-config.sxp
vncpasswd=''

#----------------------------------------------------------------------------
# no graphics, use serial port
#nographic=0

#----------------------------------------------------------------------------
# enable stdvga, default = 0 (use cirrus logic device model)
stdvga=0

#-----------------------------------------------------------------------------
#   serial port re-direct to pty deivce, /dev/pts/n
#   then xm console or minicom can connect
serial='pty'


#-----------------------------------------------------------------------------
#   Qemu Monitor, default is disable
#   Use ctrl-alt-2 to connect
#monitor=1


#-----------------------------------------------------------------------------
#   enable sound card support, [sb16|es1370|all|..,..], default none
#soundhw='sb16'


#-----------------------------------------------------------------------------
#    set the real time clock to local time [default=0 i.e. set to utc]
#localtime=1


#-----------------------------------------------------------------------------
#    set the real time clock offset in seconds [default=0 i.e. same as dom0]
#rtc_timeoffset=3600

#-----------------------------------------------------------------------------
#    start in full screen
#full-screen=1


#-----------------------------------------------------------------------------
#   Enable USB support (specific devices specified at runtime through the
#                       monitor window)
#usb=1

#   Enable USB mouse support (only enable one of the following, `mouse' for
#                             PS/2 protocol relative mouse, `tablet' for
#                             absolute mouse)
#usbdevice='mouse'
#usbdevice='tablet'

#-----------------------------------------------------------------------------
#   Set keyboard layout, default is en-us keyboard.
#keymap='ja'

pci = [ '04:00.0' ]
XEN-PEER-RHEL5 $

XEN-PEER-RHEL5 $ dmesg | grep pciback
Bootdata ok (command line is root=/dev/VolGroup00/LogVol01  ro showopts
console=tty0  pciback.hide=(04:00.0) pciback.verbose_request=1 apic=debug maxcpus=1)
Kernel command line: root=/dev/VolGroup00/LogVol01  ro showopts console=tty0
pciback.hide=(04:00.0) pciback.verbose_request=1 apic=debug maxcpus=1
pciback 0000:04:00.0: seizing device

^ permalink raw reply	[flat|nested] 7+ messages in thread

* PCI Passthrough to HVM on xen-unstable
@ 2007-11-29 16:58 Jambunathan K
  2007-11-30  1:24 ` Han, Weidong
  0 siblings, 1 reply; 7+ messages in thread
From: Jambunathan K @ 2007-11-29 16:58 UTC (permalink / raw)
  To: xen-devel; +Cc: Sanjeev Jorapur

(Resubmitting my original post with 'xm dmesg' output)

I am working on S5000VSA Intel Server Board with the following cpu spec.

XEN-PEER-RHEL5 $ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz
stepping        : 7
cpu MHz         : 2327.512
cache size      : 4096 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat pse36
clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc up pni
monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
bogomips        : 4661.90
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Is my box vt-d capable? If the answer is yes proceed ahead to the details. If
the answer is no, how can a novice user like me identify whether or not his box
is vt-d capable.

I am attaching below snapshots of dump that I think are relevant. You could see
the following:
	a) XEN specific dom0 kernel config.
	b) menu.lst entry
	c) Guest VM (which is a Sles10 HVM) config file.
	d) dmesg | grep pciback which says that hidden device indeed exists.
	e) output of 'xm dmesg'

When I start the HVM I get the following error:

XEN-PEER-RHEL5 $ xm create sles10disk.cfg
Using config file "./sles10disk.cfg".
Error: Fail to assign device(4:0.0): maybe VT-d is not enabled, or the device is
not exist, or it has already been assigned to other domain


The following thing surprises me:

	a) If my device - (4:0.0) is indeed hidden in Dom0 but *not assigned* to the
HVM, realtek card shows up at (4:0.0) in HVM's lspci as below. Note that my dom0
kernel config has CONFIG_XEN_PCIDEV_BACKEND_PASS=y which I believe is *non-default*.

00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 01)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Class ff80: Unknown device 5853:0001 (rev 01)
00:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 20)







XEN-PEER-RHEL5 $ cat /boot/xen320-unstable/config-2.6.18.8-xen-1127 | grep XEN
CONFIG_X86_64_XEN=y
CONFIG_X86_XEN_GENAPIC=y
CONFIG_XEN_PCIDEV_FRONTEND=y
# CONFIG_XEN_PCIDEV_FE_DEBUG is not set
CONFIG_TCG_XEN=m
CONFIG_XEN=y
CONFIG_XEN_INTERFACE_VERSION=0x00030207
# XEN
CONFIG_XEN_PRIVILEGED_GUEST=y
# CONFIG_XEN_UNPRIVILEGED_GUEST is not set
CONFIG_XEN_PRIVCMD=y
CONFIG_XEN_XENBUS_DEV=y
CONFIG_XEN_BACKEND=y
CONFIG_XEN_BLKDEV_BACKEND=y
CONFIG_XEN_BLKDEV_TAP=y
CONFIG_XEN_NETDEV_BACKEND=y
# CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
CONFIG_XEN_NETDEV_LOOPBACK=y
CONFIG_XEN_PCIDEV_BACKEND=y
# CONFIG_XEN_PCIDEV_BACKEND_VPCI is not set
CONFIG_XEN_PCIDEV_BACKEND_PASS=y
# CONFIG_XEN_PCIDEV_BACKEND_SLOT is not set
# CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER is not set
# CONFIG_XEN_PCIDEV_BE_DEBUG is not set
CONFIG_XEN_TPMDEV_BACKEND=y
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_XEN_FRAMEBUFFER=y
CONFIG_XEN_KEYBOARD=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DISABLE_SERIAL=y
CONFIG_XEN_SYSFS=y
CONFIG_XEN_COMPAT_030002_AND_LATER=y
# CONFIG_XEN_COMPAT_030004_AND_LATER is not set
# CONFIG_XEN_COMPAT_030100_AND_LATER is not set
# CONFIG_XEN_COMPAT_LATEST_ONLY is not set
CONFIG_XEN_COMPAT=0x030002
CONFIG_XEN_SMPBOOT=y
CONFIG_XEN_BALLOON=y
CONFIG_XEN_DEVMEM=y

XEN-PEER-RHEL5 $ cat /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol01
#          initrd /initrd-version.img
#boot=/dev/sda

default=3
timeout=10

#0
title Red Hat Enterprise Linux Server (2.6.18-8.el5-smp)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol01
crashkernel=128M@16M
        initrd /initrd-2.6.18-8.el5.img

#1
title Red Hat Enterprise Linux Server (2.6.18-8.el5-up)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol01
crashkernel=128M@16M maxcpus=1
        initrd /initrd-2.6.18-8.el5.img

#2
title RHEL5-XEN311-RC2
    root (hd0,0)
    kernel /xen311/xen-3.1.1-rc2.gz dom0_mem=1300M loopback.nloopbacks=16
    module /xen311/vmlinuz-2.6.18-xen-311 root=/dev/VolGroup00/LogVol01  ro
showopts console=tty0
    module /xen311/initrd-2.6.18-xen-311.img


#3
title RHEL5-XEN320-UNSTABLE
    root (hd0,0)
    kernel /xen320-unstable/xen-3.2-unstable.gz dom0_mem=1300M
loopback.nloopbacks=16 vtd=1
    module /xen320-unstable/vmlinuz-2.6.18.8-xen-1127
root=/dev/VolGroup00/LogVol01  ro showopts console=tty0  pciback.hide=(04:00.0)
pciback.verbose_request=1 apic=debug maxcpus=1
    module /xen320-unstable/initrd-2.6.18.8-xen-1127.img

XEN-PEER-RHEL5 $ cat /mnt/archive/xendisks/Sles10/sles10disk.cfg
#  -*- mode: python; -*-
#============================================================================
# Python configuration setup for 'xm create'.
# This script sets the parameters used when a domain is created using 'xm create'.
# You use a separate script for each domain you want to create, or
# you can set the parameters for the domain on the xm command line.
#============================================================================

import os, re
arch = os.uname()[4]
if re.search('64', arch):
    arch_libdir = 'lib64'
else:
    arch_libdir = 'lib'

#----------------------------------------------------------------------------
# Kernel image file.
kernel = "/usr/lib/xen/boot/hvmloader"

# The domain build function. HVM domain uses 'hvm'.
builder='hvm'

# Initial memory allocation (in megabytes) for the new domain.
#
# WARNING: Creating a domain with insufficient memory may cause out of
#          memory errors. The domain needs enough memory to boot kernel
#          and modules. Allocating less than 32MBs is not recommended.
memory = 1200

# Shadow pagetable memory for the domain, in MB.
# Should be at least 2KB per MB of domain memory, plus a few MB per vcpu.
# shadow_memory = 8

# A name for your domain. All domains must have different names.
name = "HvmSles10"

# 128-bit UUID for the domain.  The default behavior is to generate a new UUID
# on each call to 'xm create'.
#uuid = "06ed00fe-1162-4fc4-b5d8-11993ee4a8b9"

#-----------------------------------------------------------------------------
# The number of cpus guest platform has, default=1
#vcpus=1

# Enable/disable HVM guest PAE, default=1 (enabled)
#pae=1

# Enable/disable HVM guest ACPI, default=1 (enabled)
#acpi=1

# Enable/disable HVM APIC mode, default=1 (enabled)
# Note that this option is ignored if vcpus > 1
#apic=1

# List of which CPUS this domain is allowed to use, default Xen picks
#cpus = ""         # leave to Xen to pick
#cpus = "0"        # all vcpus run on CPU0
#cpus = "0-3,5,^1" # run on cpus 0,2,3,5

# Optionally define mac and/or bridge for the network interfaces.
# Random MACs are assigned if not given.
#vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0, model=ne2k_pci' ]
# type=ioemu specify the NIC is an ioemu device not netfront
vif = [ 'type=ioemu, mac=00:16:3e:65:63:5d, bridge=xenbr0' ]

#----------------------------------------------------------------------------
# Define the disk devices you want the domain to have access to, and
# what you want them accessible as.
# Each disk entry is of the form phy:UNAME,DEV,MODE
# where UNAME is the device, DEV is the device name the domain will see,
# and MODE is r for read-only, w for read-write.

#disk = [ 'phy:hda1,hda1,r' ]
#disk = [ 'file:/mnt/guest02/sles10disk.img,ioemu:hda,w',
'file:/mnt/guest02/SLES-10-AMD64-EM64T-DVD1.iso,hdc:cdrom,r' ]
disk = [ 'file:/mnt/archive/xendisks/Sles10/sles10disk.img,ioemu:hda,w' ]

#----------------------------------------------------------------------------
# Configure the behaviour when a domain exits.  There are three 'reasons'
# for a domain to stop: poweroff, reboot, and crash.  For each of these you
# may specify:
#
#   "destroy",        meaning that the domain is cleaned up as normal;
#   "restart",        meaning that a new domain is started in place of the old
#                     one;
#   "preserve",       meaning that no clean-up is done until the domain is
#                     manually destroyed (using xm destroy, for example); or
#   "rename-restart", meaning that the old domain is not cleaned up, but is
#                     renamed and a new domain started in its place.
#
# The default is
#
#   on_poweroff = 'destroy'
#   on_reboot   = 'restart'
#   on_crash    = 'restart'
#
# For backwards compatibility we also support the deprecated option restart
#
# restart = 'onreboot' means on_poweroff = 'destroy'
#                            on_reboot   = 'restart'
#                            on_crash    = 'destroy'
#
# restart = 'always'   means on_poweroff = 'restart'
#                            on_reboot   = 'restart'
#                            on_crash    = 'restart'
#
# restart = 'never'    means on_poweroff = 'destroy'
#                            on_reboot   = 'destroy'
#                            on_crash    = 'destroy'

on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

#============================================================================

# New stuff
device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'

#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot="cda"

#-----------------------------------------------------------------------------
#  write to temporary files instead of disk image files
#snapshot=1

#----------------------------------------------------------------------------
# enable SDL library for graphics, default = 0
sdl=0

#----------------------------------------------------------------------------
# enable VNC library for graphics, default = 1
vnc=1

#----------------------------------------------------------------------------
# address that should be listened on for the VNC server if vnc is set.
# default is to use 'vnc-listen' setting from /etc/xen/xend-config.sxp
#vnclisten="127.0.0.1"

#----------------------------------------------------------------------------
# set VNC display number, default = domid
#vncdisplay=1

#----------------------------------------------------------------------------
# try to find an unused port for the VNC server, default = 1
#vncunused=1

#----------------------------------------------------------------------------
# enable spawning vncviewer for domain's console
# (only valid when vnc=1), default = 0
vncconsole=1

#----------------------------------------------------------------------------
# set password for domain's VNC console
# default is depents on vncpasswd in xend-config.sxp
vncpasswd=''

#----------------------------------------------------------------------------
# no graphics, use serial port
#nographic=0

#----------------------------------------------------------------------------
# enable stdvga, default = 0 (use cirrus logic device model)
stdvga=0

#-----------------------------------------------------------------------------
#   serial port re-direct to pty deivce, /dev/pts/n
#   then xm console or minicom can connect
serial='pty'


#-----------------------------------------------------------------------------
#   Qemu Monitor, default is disable
#   Use ctrl-alt-2 to connect
#monitor=1


#-----------------------------------------------------------------------------
#   enable sound card support, [sb16|es1370|all|..,..], default none
#soundhw='sb16'


#-----------------------------------------------------------------------------
#    set the real time clock to local time [default=0 i.e. set to utc]
#localtime=1


#-----------------------------------------------------------------------------
#    set the real time clock offset in seconds [default=0 i.e. same as dom0]
#rtc_timeoffset=3600

#-----------------------------------------------------------------------------
#    start in full screen
#full-screen=1


#-----------------------------------------------------------------------------
#   Enable USB support (specific devices specified at runtime through the
#                       monitor window)
#usb=1

#   Enable USB mouse support (only enable one of the following, `mouse' for
#                             PS/2 protocol relative mouse, `tablet' for
#                             absolute mouse)
#usbdevice='mouse'
#usbdevice='tablet'

#-----------------------------------------------------------------------------
#   Set keyboard layout, default is en-us keyboard.
#keymap='ja'

pci = [ '04:00.0' ]
XEN-PEER-RHEL5 $

XEN-PEER-RHEL5 $ dmesg | grep pciback
Bootdata ok (command line is root=/dev/VolGroup00/LogVol01  ro showopts
console=tty0  pciback.hide=(04:00.0) pciback.verbose_request=1 apic=debug maxcpus=1)
Kernel command line: root=/dev/VolGroup00/LogVol01  ro showopts console=tty0
pciback.hide=(04:00.0) pciback.verbose_request=1 apic=debug maxcpus=1
pciback 0000:04:00.0: seizing device

XEN-PEER-RHEL5 $ xm dmesg | grep VMX
(XEN) HVM: VMX enabled
XEN-PEER-RHEL5 $ xm dmesg
 __  __            _____  ____                     _        _     _
 \ \/ /___ _ __   |___ / |___ \    _   _ _ __  ___| |_ __ _| |__ | | ___
  \  // _ \ '_ \    |_ \   __) |__| | | | '_ \/ __| __/ _` | '_ \| |/ _ \
  /  \  __/ | | |  ___) | / __/|__| |_| | | | \__ \ || (_| | |_) | |  __/
 /_/\_\___|_| |_| |____(_)_____|   \__,_|_| |_|___/\__\__,_|_.__/|_|\___|

(XEN) Xen version 3.2-unstable (root@) (gcc version 4.1.1 20070105 (Red Hat
4.1.1-52)) Thu Nov 29 12:16:30 IST 2007
(XEN) Latest ChangeSet: Sun Nov 25 12:43:13 2007 +0000 16461:d40788f07a4f
(XEN) Command line: dom0_mem=1300M loopback.nloopbacks=16 vtd=1
(XEN) Video information:
(XEN)  VGA is text mode 80x25, font 8x16
(XEN)  VBE/DDC methods: none; EDID transfer time: 2 seconds
(XEN)  EDID info not retrieved because no DDC retrieval method detected
(XEN) Disc information:
(XEN)  Found 1 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) Xen-e820 RAM map:
(XEN)  0000000000000000 - 000000000009fc00 (usable)
(XEN)  000000000009fc00 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 000000009e48c000 (usable)
(XEN)  000000009e48c000 - 000000009e545000 (ACPI NVS)
(XEN)  000000009e545000 - 000000009fa42000 (usable)
(XEN)  000000009fa42000 - 000000009fa9a000 (reserved)
(XEN)  000000009fa9a000 - 000000009fab0000 (usable)
(XEN)  000000009fab0000 - 000000009fb1a000 (ACPI NVS)
(XEN)  000000009fb1a000 - 000000009fb2b000 (usable)
(XEN)  000000009fb2b000 - 000000009fb3a000 (ACPI data)
(XEN)  000000009fb3a000 - 000000009fc00000 (usable)
(XEN)  000000009fc00000 - 00000000b0000000 (reserved)
(XEN)  00000000ffc00000 - 00000000ffc0c000 (reserved)
(XEN)  0000000100000000 - 0000000160000000 (usable)
(XEN) System RAM: 4090MB (4188244kB)
(XEN) Xen heap: 14MB (14928kB)
(XEN) Domain heap initialised: DMA width 32 bits
(XEN) Processor #0 6:15 APIC version 20
(XEN) Processor #2 6:15 APIC version 20
(XEN) Processor #4 6:15 APIC version 20
(XEN) Processor #6 6:15 APIC version 20
(XEN) Processor #1 6:15 APIC version 20
(XEN) Processor #3 6:15 APIC version 20
(XEN) Processor #5 6:15 APIC version 20
(XEN) Processor #7 6:15 APIC version 20
(XEN) IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
(XEN) IOAPIC[1]: apic_id 9, version 32, address 0xfec80000, GSI 24-47
(XEN) Enabling APIC mode:  Flat.  Using 2 I/O APICs
(XEN) ACPI DMAR:No DMAR devices found
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Detected 2327.563 MHz processor.
(XEN) HVM: VMX enabled
(XEN) CPU0: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping 07
(XEN) Booting processor 1/2 eip 8c000
(XEN) CPU1: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping 07
(XEN) Booting processor 2/4 eip 8c000
(XEN) CPU2: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping 07
(XEN) Booting processor 3/6 eip 8c000
(XEN) CPU3: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping 07
(XEN) Booting processor 4/1 eip 8c000
(XEN) CPU4: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping 07
(XEN) Booting processor 5/3 eip 8c000
(XEN) CPU5: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping 07
(XEN) Booting processor 6/5 eip 8c000
(XEN) CPU6: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping 07
(XEN) Booting processor 7/7 eip 8c000
(XEN) CPU7: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping 07
(XEN) Total of 8 processors activated.
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using new ACK method
(XEN) Platform timer overflows in 14998 jiffies.
(XEN) Platform timer is 14.318MHz HPET
(XEN) Brought up 8 CPUs
(XEN) AMD IOMMU: Disabled
(XEN) *** LOADING DOMAIN 0 ***
(XEN)  Xen  kernel: 64-bit, lsb, compat32
(XEN)  Dom0 kernel: 64-bit, lsb, paddr 0xffffffff80200000 -> 0xffffffff8059f33c
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   000000015a000000->000000015b000000 (328704 pages to be
allocated)
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: ffffffff80200000->ffffffff8059f33c
(XEN)  Init. ramdisk: ffffffff805a0000->ffffffff80b65800
(XEN)  Phys-Mach map: ffffffff80b66000->ffffffff80df0000
(XEN)  Start info:    ffffffff80df0000->ffffffff80df04a4
(XEN)  Page tables:   ffffffff80df1000->ffffffff80dfc000
(XEN)  Boot stack:    ffffffff80dfc000->ffffffff80dfd000
(XEN)  TOTAL:         ffffffff80000000->ffffffff81000000
(XEN)  ENTRY ADDRESS: ffffffff80200000
(XEN) Dom0 has maximum 8 VCPUs
(XEN) Initrd len 0x5c5800, start at 0xffffffff805a0000
(XEN) Scrubbing Free RAM: ...........................done.
(XEN) Xen trace buffers: disabled
(XEN) Std. Loglevel: Errors and warnings
(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) Xen is relinquishing VGA console.
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 100kB init memory.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: PCI Passthrough to HVM on xen-unstable
  2007-11-29 16:58 Jambunathan K
@ 2007-11-30  1:24 ` Han, Weidong
  2007-11-30 14:03   ` Jambunathan K
  0 siblings, 1 reply; 7+ messages in thread
From: Han, Weidong @ 2007-11-30  1:24 UTC (permalink / raw)
  To: Jambunathan K, xen-devel; +Cc: Sanjeev Jorapur

Pls check your BIOS to see whether it's VT-d capable, and enable it
first if you want to use it. Seems your configures are correct, pls
check your BIOS.

Randy (Weidong)

Jambunathan K wrote:
> (Resubmitting my original post with 'xm dmesg' output)
> 
> I am working on S5000VSA Intel Server Board with the following cpu
> spec. 
> 
> XEN-PEER-RHEL5 $ cat /proc/cpuinfo
> processor       : 0
> vendor_id       : GenuineIntel
> cpu family      : 6
> model           : 15
> model name      : Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz
> stepping        : 7
> cpu MHz         : 2327.512
> cache size      : 4096 KB
> physical id     : 0
> siblings        : 1
> core id         : 0
> cpu cores       : 1
> fpu             : yes
> fpu_exception   : yes
> cpuid level     : 10
> wp              : yes
> flags           : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov
> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm
> constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
> bogomips        : 4661.90
> clflush size    : 64
> cache_alignment : 64
> address sizes   : 36 bits physical, 48 bits virtual
> power management:
> 
> Is my box vt-d capable? If the answer is yes proceed ahead to the
> details. If 
> the answer is no, how can a novice user like me identify whether or
> not his box 
> is vt-d capable.
> 
> I am attaching below snapshots of dump that I think are relevant. You
> could see 
> the following:
> 	a) XEN specific dom0 kernel config.
> 	b) menu.lst entry
> 	c) Guest VM (which is a Sles10 HVM) config file.
> 	d) dmesg | grep pciback which says that hidden device indeed
exists.
> 	e) output of 'xm dmesg'
> 
> When I start the HVM I get the following error:
> 
> XEN-PEER-RHEL5 $ xm create sles10disk.cfg
> Using config file "./sles10disk.cfg".
> Error: Fail to assign device(4:0.0): maybe VT-d is not enabled, or
> the device is not exist, or it has already been assigned to other
> domain 
> 
> 
> The following thing surprises me:
> 
> 	a) If my device - (4:0.0) is indeed hidden in Dom0 but *not
> assigned* to the 
> HVM, realtek card shows up at (4:0.0) in HVM's lspci as below. Note
> that my dom0 kernel config has CONFIG_XEN_PCIDEV_BACKEND_PASS=y which
> I believe is *non-default*. 
> 
> 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma]
> (rev 02) 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA
> [Natoma/Triton II] 00:01.1 IDE interface: Intel Corporation 82371SB
> PIIX3 IDE [Natoma/Triton II] 00:01.2 Bridge: Intel Corporation
> 82371AB/EB/MB PIIX4 ACPI (rev 01) 00:02.0 VGA compatible controller:
> Cirrus Logic GD 5446 00:03.0 Class ff80: Unknown device 5853:0001
> (rev 01) 00:04.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
> RTL-8139/8139C/8139C+ (rev 20)
> 
> 
> 
> 
> 
> 
> 
> XEN-PEER-RHEL5 $ cat /boot/xen320-unstable/config-2.6.18.8-xen-1127 |
> grep XEN CONFIG_X86_64_XEN=y
> CONFIG_X86_XEN_GENAPIC=y
> CONFIG_XEN_PCIDEV_FRONTEND=y
> # CONFIG_XEN_PCIDEV_FE_DEBUG is not set
> CONFIG_TCG_XEN=m
> CONFIG_XEN=y
> CONFIG_XEN_INTERFACE_VERSION=0x00030207
> # XEN
> CONFIG_XEN_PRIVILEGED_GUEST=y
> # CONFIG_XEN_UNPRIVILEGED_GUEST is not set
> CONFIG_XEN_PRIVCMD=y
> CONFIG_XEN_XENBUS_DEV=y
> CONFIG_XEN_BACKEND=y
> CONFIG_XEN_BLKDEV_BACKEND=y
> CONFIG_XEN_BLKDEV_TAP=y
> CONFIG_XEN_NETDEV_BACKEND=y
> # CONFIG_XEN_NETDEV_PIPELINED_TRANSMITTER is not set
> CONFIG_XEN_NETDEV_LOOPBACK=y
> CONFIG_XEN_PCIDEV_BACKEND=y
> # CONFIG_XEN_PCIDEV_BACKEND_VPCI is not set
> CONFIG_XEN_PCIDEV_BACKEND_PASS=y
> # CONFIG_XEN_PCIDEV_BACKEND_SLOT is not set
> # CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER is not set
> # CONFIG_XEN_PCIDEV_BE_DEBUG is not set
> CONFIG_XEN_TPMDEV_BACKEND=y
> CONFIG_XEN_BLKDEV_FRONTEND=y
> CONFIG_XEN_NETDEV_FRONTEND=y
> CONFIG_XEN_FRAMEBUFFER=y
> CONFIG_XEN_KEYBOARD=y
> CONFIG_XEN_SCRUB_PAGES=y
> CONFIG_XEN_DISABLE_SERIAL=y
> CONFIG_XEN_SYSFS=y
> CONFIG_XEN_COMPAT_030002_AND_LATER=y
> # CONFIG_XEN_COMPAT_030004_AND_LATER is not set
> # CONFIG_XEN_COMPAT_030100_AND_LATER is not set
> # CONFIG_XEN_COMPAT_LATEST_ONLY is not set
> CONFIG_XEN_COMPAT=0x030002
> CONFIG_XEN_SMPBOOT=y
> CONFIG_XEN_BALLOON=y
> CONFIG_XEN_DEVMEM=y
> 
> XEN-PEER-RHEL5 $ cat /boot/grub/menu.lst
> # grub.conf generated by anaconda
> #
> # Note that you do not have to rerun grub after making changes to
> this file # NOTICE:  You have a /boot partition.  This means that
> #          all kernel and initrd paths are relative to /boot/, eg.
> #          root (hd0,0)
> #          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol01
> #          initrd /initrd-version.img
> #boot=/dev/sda
> 
> default=3
> timeout=10
> 
> #0
> title Red Hat Enterprise Linux Server (2.6.18-8.el5-smp)
>         root (hd0,0)
>         kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol01
> crashkernel=128M@16M
>         initrd /initrd-2.6.18-8.el5.img
> 
> #1
> title Red Hat Enterprise Linux Server (2.6.18-8.el5-up)
>         root (hd0,0)
>         kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol01
> crashkernel=128M@16M maxcpus=1
>         initrd /initrd-2.6.18-8.el5.img
> 
> #2
> title RHEL5-XEN311-RC2
>     root (hd0,0)
>     kernel /xen311/xen-3.1.1-rc2.gz dom0_mem=1300M
>     loopback.nloopbacks=16 module /xen311/vmlinuz-2.6.18-xen-311
> root=/dev/VolGroup00/LogVol01  ro 
> showopts console=tty0
>     module /xen311/initrd-2.6.18-xen-311.img
> 
> 
> #3
> title RHEL5-XEN320-UNSTABLE
>     root (hd0,0)
>     kernel /xen320-unstable/xen-3.2-unstable.gz dom0_mem=1300M
> loopback.nloopbacks=16 vtd=1
>     module /xen320-unstable/vmlinuz-2.6.18.8-xen-1127
> root=/dev/VolGroup00/LogVol01  ro showopts console=tty0 
> pciback.hide=(04:00.0) pciback.verbose_request=1 apic=debug maxcpus=1
>     module /xen320-unstable/initrd-2.6.18.8-xen-1127.img
> 
> XEN-PEER-RHEL5 $ cat /mnt/archive/xendisks/Sles10/sles10disk.cfg
> #  -*- mode: python; -*-
>
#=======================================================================
=====
> # Python configuration setup for 'xm create'.
> # This script sets the parameters used when a domain is created using
> 'xm create'. # You use a separate script for each domain you want to
> create, or # you can set the parameters for the domain on the xm
> command line.
>
#=======================================================================
=====
> 
> import os, re
> arch = os.uname()[4]
> if re.search('64', arch):
>     arch_libdir = 'lib64'
> else:
>     arch_libdir = 'lib'
> 
>
#-----------------------------------------------------------------------
-----
> # Kernel image file.
> kernel = "/usr/lib/xen/boot/hvmloader"
> 
> # The domain build function. HVM domain uses 'hvm'.
> builder='hvm'
> 
> # Initial memory allocation (in megabytes) for the new domain.
> #
> # WARNING: Creating a domain with insufficient memory may cause out of
> #          memory errors. The domain needs enough memory to boot
> kernel #          and modules. Allocating less than 32MBs is not
> recommended. 
> memory = 1200
> 
> # Shadow pagetable memory for the domain, in MB.
> # Should be at least 2KB per MB of domain memory, plus a few MB per
> vcpu. # shadow_memory = 8
> 
> # A name for your domain. All domains must have different names.
> name = "HvmSles10"
> 
> # 128-bit UUID for the domain.  The default behavior is to generate a
> new UUID # on each call to 'xm create'.
> #uuid = "06ed00fe-1162-4fc4-b5d8-11993ee4a8b9"
> 
>
#-----------------------------------------------------------------------
------
> # The number of cpus guest platform has, default=1
> #vcpus=1
> 
> # Enable/disable HVM guest PAE, default=1 (enabled)
> #pae=1
> 
> # Enable/disable HVM guest ACPI, default=1 (enabled)
> #acpi=1
> 
> # Enable/disable HVM APIC mode, default=1 (enabled)
> # Note that this option is ignored if vcpus > 1
> #apic=1
> 
> # List of which CPUS this domain is allowed to use, default Xen picks
> #cpus = ""         # leave to Xen to pick
> #cpus = "0"        # all vcpus run on CPU0
> #cpus = "0-3,5,^1" # run on cpus 0,2,3,5
> 
> # Optionally define mac and/or bridge for the network interfaces.
> # Random MACs are assigned if not given.
> #vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=xenbr0,
> model=ne2k_pci' ] # type=ioemu specify the NIC is an ioemu device not
> netfront 
> vif = [ 'type=ioemu, mac=00:16:3e:65:63:5d, bridge=xenbr0' ]
> 
>
#-----------------------------------------------------------------------
-----
> # Define the disk devices you want the domain to have access to, and
> # what you want them accessible as.
> # Each disk entry is of the form phy:UNAME,DEV,MODE
> # where UNAME is the device, DEV is the device name the domain will
> see, # and MODE is r for read-only, w for read-write.
> 
> #disk = [ 'phy:hda1,hda1,r' ]
> #disk = [ 'file:/mnt/guest02/sles10disk.img,ioemu:hda,w',
> 'file:/mnt/guest02/SLES-10-AMD64-EM64T-DVD1.iso,hdc:cdrom,r' ]
> disk = [
> 'file:/mnt/archive/xendisks/Sles10/sles10disk.img,ioemu:hda,w' ] 
> 
>
#-----------------------------------------------------------------------
-----
> # Configure the behaviour when a domain exits.  There are three
> 'reasons' # for a domain to stop: poweroff, reboot, and crash.  For
> each of these you # may specify:
> #
> #   "destroy",        meaning that the domain is cleaned up as normal;
> #   "restart",        meaning that a new domain is started in place
> of the old #                     one;
> #   "preserve",       meaning that no clean-up is done until the
> domain is #                     manually destroyed (using xm destroy,
> for example); or #   "rename-restart", meaning that the old domain is
> not cleaned up, but is #                     renamed and a new domain
> started in its place. #
> # The default is
> #
> #   on_poweroff = 'destroy'
> #   on_reboot   = 'restart'
> #   on_crash    = 'restart'
> #
> # For backwards compatibility we also support the deprecated option
> restart #
> # restart = 'onreboot' means on_poweroff = 'destroy'
> #                            on_reboot   = 'restart'
> #                            on_crash    = 'destroy'
> #
> # restart = 'always'   means on_poweroff = 'restart'
> #                            on_reboot   = 'restart'
> #                            on_crash    = 'restart'
> #
> # restart = 'never'    means on_poweroff = 'destroy'
> #                            on_reboot   = 'destroy'
> #                            on_crash    = 'destroy'
> 
> on_poweroff = 'destroy'
> on_reboot   = 'restart'
> on_crash    = 'restart'
> 
>
#=======================================================================
=====
> 
> # New stuff
> device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
> 
>
#-----------------------------------------------------------------------
------
> # boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
> # default: hard disk, cd-rom, floppy
> boot="cda"
> 
>
#-----------------------------------------------------------------------
------
> #  write to temporary files instead of disk image files
> #snapshot=1
> 
>
#-----------------------------------------------------------------------
-----
> # enable SDL library for graphics, default = 0
> sdl=0
> 
>
#-----------------------------------------------------------------------
-----
> # enable VNC library for graphics, default = 1
> vnc=1
> 
>
#-----------------------------------------------------------------------
-----
> # address that should be listened on for the VNC server if vnc is set.
> # default is to use 'vnc-listen' setting from /etc/xen/xend-config.sxp
> #vnclisten="127.0.0.1"
> 
>
#-----------------------------------------------------------------------
-----
> # set VNC display number, default = domid
> #vncdisplay=1
> 
>
#-----------------------------------------------------------------------
-----
> # try to find an unused port for the VNC server, default = 1
> #vncunused=1
> 
>
#-----------------------------------------------------------------------
-----
> # enable spawning vncviewer for domain's console
> # (only valid when vnc=1), default = 0
> vncconsole=1
> 
>
#-----------------------------------------------------------------------
-----
> # set password for domain's VNC console
> # default is depents on vncpasswd in xend-config.sxp
> vncpasswd=''
> 
>
#-----------------------------------------------------------------------
-----
> # no graphics, use serial port
> #nographic=0
> 
>
#-----------------------------------------------------------------------
-----
> # enable stdvga, default = 0 (use cirrus logic device model)
> stdvga=0
> 
>
#-----------------------------------------------------------------------
------
> #   serial port re-direct to pty deivce, /dev/pts/n
> #   then xm console or minicom can connect
> serial='pty'
> 
> 
>
#-----------------------------------------------------------------------
------
> #   Qemu Monitor, default is disable
> #   Use ctrl-alt-2 to connect
> #monitor=1
> 
> 
>
#-----------------------------------------------------------------------
------
> #   enable sound card support, [sb16|es1370|all|..,..], default none
> #soundhw='sb16'
> 
> 
>
#-----------------------------------------------------------------------
------
> #    set the real time clock to local time [default=0 i.e. set to utc]
> #localtime=1
> 
> 
>
#-----------------------------------------------------------------------
------
> #    set the real time clock offset in seconds [default=0 i.e. same
> as dom0] #rtc_timeoffset=3600
> 
>
#-----------------------------------------------------------------------
------
> #    start in full screen
> #full-screen=1
> 
> 
>
#-----------------------------------------------------------------------
------
> #   Enable USB support (specific devices specified at runtime through
> the #                       monitor window)
> #usb=1
> 
> #   Enable USB mouse support (only enable one of the following,
> `mouse' for #                             PS/2 protocol relative
> mouse, `tablet' for #                             absolute mouse)
> #usbdevice='mouse'
> #usbdevice='tablet'
> 
>
#-----------------------------------------------------------------------
------
> #   Set keyboard layout, default is en-us keyboard.
> #keymap='ja'
> 
> pci = [ '04:00.0' ]
> XEN-PEER-RHEL5 $
> 
> XEN-PEER-RHEL5 $ dmesg | grep pciback
> Bootdata ok (command line is root=/dev/VolGroup00/LogVol01  ro
> showopts console=tty0  pciback.hide=(04:00.0)
> pciback.verbose_request=1 apic=debug maxcpus=1) Kernel command line:
> root=/dev/VolGroup00/LogVol01  ro showopts console=tty0
> pciback.hide=(04:00.0) pciback.verbose_request=1 apic=debug maxcpus=1 
> pciback 0000:04:00.0: seizing device
> 
> XEN-PEER-RHEL5 $ xm dmesg | grep VMX
> (XEN) HVM: VMX enabled
> XEN-PEER-RHEL5 $ xm dmesg
>  __  __            _____  ____                     _        _     _
>  \ \/ /___ _ __   |___ / |___ \    _   _ _ __  ___| |_ __ _| |__ | |
>   ___ \  // _ \ '_ \    |_ \   __) |__| | | | '_ \/ __| __/ _` | '_
>   \| |/ _ \ /  \  __/ | | |  ___) | / __/|__| |_| | | | \__ \ || (_|
>  | |_) | |  __/ /_/\_\___|_| |_| |____(_)_____|   \__,_|_|
> |_|___/\__\__,_|_.__/|_|\___| 
> 
> (XEN) Xen version 3.2-unstable (root@) (gcc version 4.1.1 20070105
> (Red Hat 
> 4.1.1-52)) Thu Nov 29 12:16:30 IST 2007
> (XEN) Latest ChangeSet: Sun Nov 25 12:43:13 2007 +0000
> 16461:d40788f07a4f (XEN) Command line: dom0_mem=1300M
> loopback.nloopbacks=16 vtd=1 (XEN) Video information:
> (XEN)  VGA is text mode 80x25, font 8x16
> (XEN)  VBE/DDC methods: none; EDID transfer time: 2 seconds
> (XEN)  EDID info not retrieved because no DDC retrieval method
> detected (XEN) Disc information:
> (XEN)  Found 1 MBR signatures
> (XEN)  Found 1 EDD information structures
> (XEN) Xen-e820 RAM map:
> (XEN)  0000000000000000 - 000000000009fc00 (usable)
> (XEN)  000000000009fc00 - 0000000000100000 (reserved)
> (XEN)  0000000000100000 - 000000009e48c000 (usable)
> (XEN)  000000009e48c000 - 000000009e545000 (ACPI NVS)
> (XEN)  000000009e545000 - 000000009fa42000 (usable)
> (XEN)  000000009fa42000 - 000000009fa9a000 (reserved)
> (XEN)  000000009fa9a000 - 000000009fab0000 (usable)
> (XEN)  000000009fab0000 - 000000009fb1a000 (ACPI NVS)
> (XEN)  000000009fb1a000 - 000000009fb2b000 (usable)
> (XEN)  000000009fb2b000 - 000000009fb3a000 (ACPI data)
> (XEN)  000000009fb3a000 - 000000009fc00000 (usable)
> (XEN)  000000009fc00000 - 00000000b0000000 (reserved)
> (XEN)  00000000ffc00000 - 00000000ffc0c000 (reserved)
> (XEN)  0000000100000000 - 0000000160000000 (usable)
> (XEN) System RAM: 4090MB (4188244kB)
> (XEN) Xen heap: 14MB (14928kB)
> (XEN) Domain heap initialised: DMA width 32 bits
> (XEN) Processor #0 6:15 APIC version 20
> (XEN) Processor #2 6:15 APIC version 20
> (XEN) Processor #4 6:15 APIC version 20
> (XEN) Processor #6 6:15 APIC version 20
> (XEN) Processor #1 6:15 APIC version 20
> (XEN) Processor #3 6:15 APIC version 20
> (XEN) Processor #5 6:15 APIC version 20
> (XEN) Processor #7 6:15 APIC version 20
> (XEN) IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
> (XEN) IOAPIC[1]: apic_id 9, version 32, address 0xfec80000, GSI 24-47
> (XEN) Enabling APIC mode:  Flat.  Using 2 I/O APICs
> (XEN) ACPI DMAR:No DMAR devices found
> (XEN) Using scheduler: SMP Credit Scheduler (credit)
> (XEN) Detected 2327.563 MHz processor.
> (XEN) HVM: VMX enabled
> (XEN) CPU0: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping
> 07 (XEN) Booting processor 1/2 eip 8c000
> (XEN) CPU1: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping
> 07 (XEN) Booting processor 2/4 eip 8c000
> (XEN) CPU2: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping
> 07 (XEN) Booting processor 3/6 eip 8c000
> (XEN) CPU3: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping
> 07 (XEN) Booting processor 4/1 eip 8c000
> (XEN) CPU4: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping
> 07 (XEN) Booting processor 5/3 eip 8c000
> (XEN) CPU5: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping
> 07 (XEN) Booting processor 6/5 eip 8c000
> (XEN) CPU6: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping
> 07 (XEN) Booting processor 7/7 eip 8c000
> (XEN) CPU7: Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz stepping
> 07 (XEN) Total of 8 processors activated.
> (XEN) ENABLING IO-APIC IRQs
> (XEN)  -> Using new ACK method
> (XEN) Platform timer overflows in 14998 jiffies.
> (XEN) Platform timer is 14.318MHz HPET
> (XEN) Brought up 8 CPUs
> (XEN) AMD IOMMU: Disabled
> (XEN) *** LOADING DOMAIN 0 ***
> (XEN)  Xen  kernel: 64-bit, lsb, compat32
> (XEN)  Dom0 kernel: 64-bit, lsb, paddr 0xffffffff80200000 ->
> 0xffffffff8059f33c (XEN) PHYSICAL MEMORY ARRANGEMENT:
> (XEN)  Dom0 alloc.:   000000015a000000->000000015b000000 (328704
> pages to be allocated)
> (XEN) VIRTUAL MEMORY ARRANGEMENT:
> (XEN)  Loaded kernel: ffffffff80200000->ffffffff8059f33c
> (XEN)  Init. ramdisk: ffffffff805a0000->ffffffff80b65800
> (XEN)  Phys-Mach map: ffffffff80b66000->ffffffff80df0000
> (XEN)  Start info:    ffffffff80df0000->ffffffff80df04a4
> (XEN)  Page tables:   ffffffff80df1000->ffffffff80dfc000
> (XEN)  Boot stack:    ffffffff80dfc000->ffffffff80dfd000
> (XEN)  TOTAL:         ffffffff80000000->ffffffff81000000
> (XEN)  ENTRY ADDRESS: ffffffff80200000
> (XEN) Dom0 has maximum 8 VCPUs
> (XEN) Initrd len 0x5c5800, start at 0xffffffff805a0000
> (XEN) Scrubbing Free RAM: ...........................done.
> (XEN) Xen trace buffers: disabled
> (XEN) Std. Loglevel: Errors and warnings
> (XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
> (XEN) Xen is relinquishing VGA console.
> (XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch
> input to Xen) (XEN) Freed 100kB init memory.
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PCI Passthrough to HVM on xen-unstable
  2007-11-30  1:24 ` Han, Weidong
@ 2007-11-30 14:03   ` Jambunathan K
  2007-11-30 14:11     ` Han, Weidong
  2007-11-30 14:18     ` Li, Haicheng
  0 siblings, 2 replies; 7+ messages in thread
From: Jambunathan K @ 2007-11-30 14:03 UTC (permalink / raw)
  To: Han, Weidong; +Cc: xen-devel, Sanjeev Jorapur

Han, Weidong wrote:
> Pls check your BIOS to see whether it's VT-d capable, and enable it
> first if you want to use it. Seems your configures are correct, pls
> check your BIOS.

I don't see an option for "Intel VT for Directed I/O" when "Intel Virtualization
Technology" is enabled. My understanding is that VT-d is a motherboard feature
and not a processor feature.

I have done some limited research looking around. I am confused whether I can
get VT-d to work with just a BIOS upgrade or I would be required to upgrade my
box altogther. If you have some info off the top of your head to clarify things
for me, I would appreciate it.

> Jambunathan K wrote:
>> (Resubmitting my original post with 'xm dmesg' output)
>>
>> I am working on S5000VSA Intel Server Board with the following cpu
>> spec. 
>>
>> XEN-PEER-RHEL5 $ cat /proc/cpuinfo
>> processor       : 0
>> vendor_id       : GenuineIntel
>> cpu family      : 6
>> model           : 15
>> model name      : Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz
>> stepping        : 7
>> cpu MHz         : 2327.512
>> cache size      : 4096 KB
>> physical id     : 0
>> siblings        : 1
>> core id         : 0
>> cpu cores       : 1
>> fpu             : yes
>> fpu_exception   : yes
>> cpuid level     : 10
>> wp              : yes
>> flags           : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov
>> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm
>> constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
>> bogomips        : 4661.90
>> clflush size    : 64
>> cache_alignment : 64
>> address sizes   : 36 bits physical, 48 bits virtual
>> power management:
>>
>> Is my box vt-d capable? If the answer is yes proceed ahead to the
>> details. If 
>> the answer is no, how can a novice user like me identify whether or
>> not his box 
>> is vt-d capable.
>>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: PCI Passthrough to HVM on xen-unstable
  2007-11-30 14:03   ` Jambunathan K
@ 2007-11-30 14:11     ` Han, Weidong
  2007-11-30 15:10       ` Jambunathan K
  2007-11-30 14:18     ` Li, Haicheng
  1 sibling, 1 reply; 7+ messages in thread
From: Han, Weidong @ 2007-11-30 14:11 UTC (permalink / raw)
  To: Jambunathan K; +Cc: xen-devel, Sanjeev Jorapur

Yes, VT-d is located at North bridge, not a processor feature. On BIOS,
it should be under Chipset -> North Bridge settings. 

Randy

Jambunathan K wrote:
> Han, Weidong wrote:
>> Pls check your BIOS to see whether it's VT-d capable, and enable it
>> first if you want to use it. Seems your configures are correct, pls
>> check your BIOS.
> 
> I don't see an option for "Intel VT for Directed I/O" when "Intel
> Virtualization Technology" is enabled. My understanding is that VT-d
> is a motherboard feature and not a processor feature.
> 
> I have done some limited research looking around. I am confused
> whether I can get VT-d to work with just a BIOS upgrade or I would be
> required to upgrade my box altogther. If you have some info off the
> top of your head to clarify things for me, I would appreciate it.
> 
>> Jambunathan K wrote:
>>> (Resubmitting my original post with 'xm dmesg' output)
>>> 
>>> I am working on S5000VSA Intel Server Board with the following cpu
>>> spec. 
>>> 
>>> XEN-PEER-RHEL5 $ cat /proc/cpuinfo
>>> processor       : 0
>>> vendor_id       : GenuineIntel
>>> cpu family      : 6
>>> model           : 15
>>> model name      : Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz
>>> stepping        : 7 cpu MHz         : 2327.512
>>> cache size      : 4096 KB
>>> physical id     : 0
>>> siblings        : 1
>>> core id         : 0
>>> cpu cores       : 1
>>> fpu             : yes
>>> fpu_exception   : yes
>>> cpuid level     : 10
>>> wp              : yes
>>> flags           : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov
>>> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm
>>> constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
>>> bogomips        : 4661.90 clflush size    : 64
>>> cache_alignment : 64
>>> address sizes   : 36 bits physical, 48 bits virtual
>>> power management:
>>> 
>>> Is my box vt-d capable? If the answer is yes proceed ahead to the
>>> details. If the answer is no, how can a novice user like me
>>> identify whether or not his box is vt-d capable.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: PCI Passthrough to HVM on xen-unstable
  2007-11-30 14:03   ` Jambunathan K
  2007-11-30 14:11     ` Han, Weidong
@ 2007-11-30 14:18     ` Li, Haicheng
  1 sibling, 0 replies; 7+ messages in thread
From: Li, Haicheng @ 2007-11-30 14:18 UTC (permalink / raw)
  To: Jambunathan K, Han, Weidong; +Cc: xen-devel, Sanjeev Jorapur

Usually, vt-d option is under the advanced chipset setting / northbridge setting. So please check whether your BIOS has such an entry. 

And also, for latest c/s, if vt-d is not enabled, there will be a warning for it when you create a HVM guest with vt-d assignment.

-- haicheng

-----Original Message-----
From: xen-devel-bounces@lists.xensource.com [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Jambunathan K
Sent: 2007年11月30日 22:04
To: Han, Weidong
Cc: xen-devel; Sanjeev Jorapur
Subject: Re: [Xen-devel] PCI Passthrough to HVM on xen-unstable

Han, Weidong wrote:
> Pls check your BIOS to see whether it's VT-d capable, and enable it
> first if you want to use it. Seems your configures are correct, pls
> check your BIOS.

I don't see an option for "Intel VT for Directed I/O" when "Intel Virtualization
Technology" is enabled. My understanding is that VT-d is a motherboard feature
and not a processor feature.

I have done some limited research looking around. I am confused whether I can
get VT-d to work with just a BIOS upgrade or I would be required to upgrade my
box altogther. If you have some info off the top of your head to clarify things
for me, I would appreciate it.

> Jambunathan K wrote:
>> (Resubmitting my original post with 'xm dmesg' output)
>>
>> I am working on S5000VSA Intel Server Board with the following cpu
>> spec. 
>>
>> XEN-PEER-RHEL5 $ cat /proc/cpuinfo
>> processor       : 0
>> vendor_id       : GenuineIntel
>> cpu family      : 6
>> model           : 15
>> model name      : Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz
>> stepping        : 7
>> cpu MHz         : 2327.512
>> cache size      : 4096 KB
>> physical id     : 0
>> siblings        : 1
>> core id         : 0
>> cpu cores       : 1
>> fpu             : yes
>> fpu_exception   : yes
>> cpuid level     : 10
>> wp              : yes
>> flags           : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov
>> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm
>> constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
>> bogomips        : 4661.90
>> clflush size    : 64
>> cache_alignment : 64
>> address sizes   : 36 bits physical, 48 bits virtual
>> power management:
>>
>> Is my box vt-d capable? If the answer is yes proceed ahead to the
>> details. If 
>> the answer is no, how can a novice user like me identify whether or
>> not his box 
>> is vt-d capable.
>>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: PCI Passthrough to HVM on xen-unstable
  2007-11-30 14:11     ` Han, Weidong
@ 2007-11-30 15:10       ` Jambunathan K
  0 siblings, 0 replies; 7+ messages in thread
From: Jambunathan K @ 2007-11-30 15:10 UTC (permalink / raw)
  To: Han, Weidong; +Cc: haicheng.li, xen-devel, Sanjeev Jorapur

Han, Weidong wrote:
> Yes, VT-d is located at North bridge, not a processor feature. On BIOS,
> it should be under Chipset -> North Bridge settings. 
> 

Northbridge chipset on my machine is this: Intel Corporation 5000V Chipset
Memory Controller Hub (rev b1).

I need to have an Intel Q35 Express Chipset to get VT-d enabled.

At this point I need to shelve the idea of testing PCI Passthrough on HVM.
Thanks a lot for helping with my questions.

> 
> Jambunathan K wrote:
>> Han, Weidong wrote:
>>> Pls check your BIOS to see whether it's VT-d capable, and enable it
>>> first if you want to use it. Seems your configures are correct, pls
>>> check your BIOS.
>> I don't see an option for "Intel VT for Directed I/O" when "Intel
>> Virtualization Technology" is enabled. My understanding is that VT-d
>> is a motherboard feature and not a processor feature.
>>
>> I have done some limited research looking around. I am confused
>> whether I can get VT-d to work with just a BIOS upgrade or I would be
>> required to upgrade my box altogther. If you have some info off the
>> top of your head to clarify things for me, I would appreciate it.
>>
>>> Jambunathan K wrote:
>>>> (Resubmitting my original post with 'xm dmesg' output)
>>>>
>>>> I am working on S5000VSA Intel Server Board with the following cpu
>>>> spec. 
>>>>
>>>> XEN-PEER-RHEL5 $ cat /proc/cpuinfo
>>>> processor       : 0
>>>> vendor_id       : GenuineIntel
>>>> cpu family      : 6
>>>> model           : 15
>>>> model name      : Intel(R) Xeon(R) CPU           E5345  @ 2.33GHz
>>>> stepping        : 7 cpu MHz         : 2327.512
>>>> cache size      : 4096 KB
>>>> physical id     : 0
>>>> siblings        : 1
>>>> core id         : 0
>>>> cpu cores       : 1
>>>> fpu             : yes
>>>> fpu_exception   : yes
>>>> cpuid level     : 10
>>>> wp              : yes
>>>> flags           : fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov
>>>> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm
>>>> constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
>>>> bogomips        : 4661.90 clflush size    : 64
>>>> cache_alignment : 64
>>>> address sizes   : 36 bits physical, 48 bits virtual
>>>> power management:
>>>>
>>>> Is my box vt-d capable? If the answer is yes proceed ahead to the
>>>> details. If the answer is no, how can a novice user like me
>>>> identify whether or not his box is vt-d capable.
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-11-30 15:10 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-29 16:52 PCI Passthrough to HVM on xen-unstable Jambunathan K
  -- strict thread matches above, loose matches on Subject: below --
2007-11-29 16:58 Jambunathan K
2007-11-30  1:24 ` Han, Weidong
2007-11-30 14:03   ` Jambunathan K
2007-11-30 14:11     ` Han, Weidong
2007-11-30 15:10       ` Jambunathan K
2007-11-30 14:18     ` Li, Haicheng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.