# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1217240868 -3600
# Node ID 6783e2ec60c0793d1ed78d1fe3a63381c019e06a
# Parent 37fae02cc335c9de120cdd04e442b299ceeebf9d
xend: Improve the error prompt when xc.test_assign_device() fails.
Signed-off-by: Dexuan Cui <dexuan.cui@xxxxxxxxx>
---
tools/python/xen/xend/XendDomainInfo.py | 22 ++++++++++++++--------
1 files changed, 14 insertions(+), 8 deletions(-)
diff -r 37fae02cc335 -r 6783e2ec60c0 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py Fri Jul 25 15:03:03 2008 +0100
+++ b/tools/python/xen/xend/XendDomainInfo.py Mon Jul 28 11:27:48 2008 +0100
@@ -599,14 +599,17 @@ class XendDomainInfo:
new_dev['func'])
bdf = xc.test_assign_device(self.domid, pci_str)
if bdf != 0:
+ if bdf == -1:
+ raise VmError("failed to assign device: maybe the platform"
+ " doesn't support VT-d, or VT-d isn't enabled"
+ " properly?")
bus = (bdf >> 16) & 0xff
devfn = (bdf >> 8) & 0xff
dev = (devfn >> 3) & 0x1f
func = devfn & 0x7
- raise VmError("Fail to hot insert device(%x:%x.%x): maybe VT-d is "
- "not enabled, or the device is not exist, or it "
- "has already been assigned to other domain"
- % (bus, dev, func))
+ raise VmError("fail to assign device(%x:%x.%x): maybe it has"
+ " already been assigned to other domain, or maybe"
+ " it doesn't exist." % (bus, dev, func))
bdf_str = "%s:%s:%s.%s@%s" % (new_dev['domain'],
new_dev['bus'],
@@ -2086,14 +2089,17 @@ class XendDomainInfo:
if hvm and pci_str:
bdf = xc.test_assign_device(self.domid, pci_str)
if bdf != 0:
+ if bdf == -1:
+ raise VmError("failed to assign device: maybe the platform"
+ " doesn't support VT-d, or VT-d isn't
enabled"
+ " properly?")
bus = (bdf >> 16) & 0xff
devfn = (bdf >> 8) & 0xff
dev = (devfn >> 3) & 0x1f
func = devfn & 0x7
- raise VmError("Fail to assign device(%x:%x.%x): maybe VT-d is "
- "not enabled, or the device is not exist, or it "
- "has already been assigned to other domain"
- % (bus, dev, func))
+ raise VmError("fail to assign device(%x:%x.%x): maybe it has"
+ " already been assigned to other domain, or
maybe"
+ " it doesn't exist." % (bus, dev, func))
# register the domain in the list
from xen.xend import XendDomain
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|