I removed the 3.1 check in the i86pc xpv driver so I could test
a s10u5 PV NIC on a 3.1 dom0.. The hvm domU panics.
: on10-public-x[2]; wx pdiffs
------- usr/src/uts/i86pc/io/xpv/xpv_support.c -------
Index: usr/src/uts/i86pc/io/xpv/xpv_support.c
26c26
< #pragma ident "@(#)xpv_support.c 1.2 07/12/13 SMI"
---
> #pragma ident "%Z%%M% %I% %E% SMI"
125c125
< "xpv driver 1.2",
---
> "xpv driver %I%",
342,346d341
< if (xen_major != 3 || xen_minor != 0) {
< cmn_err(CE_WARN, "Xen version %d.%d is not supported",
< xen_major, xen_minor);
< return (-1);
< }
: on10-public-x[2];
WARNING: Could not allocate evtchn interrupt: 1
panic[cpu0]/thread=ffffffff81702520: assertion failed: xenstore_up, file: ../../common/xen/io/xenbus_xs.c, line: 772
fffffe80004f79b0 fffffffffba34173 ()
fffffe80004f79f0 xpv:register_xenbus_watch+d8 ()
fffffe80004f7a10 xpv:i_xvdi_watch_device+44 ()
fffffe80004f7a30 xpv:xvdi_watch_devices+3b ()
fffffe80004f7a50 xpvd:xpvd_attach+68 ()
fffffe80004f7ab0 genunix:devi_attach+9e ()
fffffe80004f7ae0 genunix:attach_node+11f ()
fffffe80004f7b10 genunix:i_ndi_config_node+eb ()
fffffe80004f7b30 genunix:i_ddi_attachchild+83 ()
fffffe80004f7b60 genunix:devi_attach_node+a5 ()
fffffe80004f7ba0 genunix:config_immediate_children+c7 ()
fffffe80004f7bd0 genunix:devi_config_common+66 ()
fffffe80004f7c00 genunix:ndi_devi_config+33 ()
fffffe80004f7c40 devinfo:di_copytree+10d ()
fffffe80004f7cd0 devinfo:di_snapshot+109 ()
fffffe80004f7cf0 devinfo:di_snapshot_and_clean+21 ()
fffffe80004f7d10 devinfo:di_cache_update+53 ()
fffffe80004f7d70 devinfo:di_ioctl+411 ()
fffffe80004f7d80 genunix:cdev_ioctl+1d ()
fffffe80004f7da0 specfs:spec_ioctl+50 ()
fffffe80004f7dd0 genunix:fop_ioctl+25 ()
fffffe80004f7eb0 genunix:ioctl+ac ()
fffffe80004f7f00 unix:brand_sys_sysenter+23d ()
syncing file systems... 2 done
dumping to /dev/dsk/c0d0s1, offset 214761472, content: kernel
100% done: 26408 pages dumped, compression ratio 3.09, dump succeeded
rebooting...
Work Around
edit /etc/driver_aliases and change the line:
xpv "pci5853,1"
to
xpv "pci5853,1.1"
and reboot
This doesn't quite work; the xpv driver has an explicit check for 3.0.4, so even with this workaround, the driver doesn't load.
In addition to updating /etc/driver_aliases, the xpv driver binary in /platform/i86hvm/kernel/drv{/amd64} must be updated to bits that include the fix for this bug.