[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Errors when trying to create VM with "channel" device(s)



A customer is complaining to be unable to create multiple "channel" devices
in a HVM domain. I've verified the same happens with upstream Xen.

The "channel" configuration is:

channel = [ "connection=socket, name=test.ch1, path=/run/testsocket1", "connection=socket, name=test.ch2, path=/run/testsocket2" ]

When creating the domain, I see:

libxl: error: libxl_console.c:285:libxl__device_console_add: Domain 4:Primary console has invalid configuration

Both /run/testsocket1 and /run/testsocket2 are being created in dom0.

"xl channel-list 4" gives me:
Idx BE state evt-ch ring-ref connection
0   0  1     -1     -1       socket

"xenstore-ls /local/domain/0/backend/console/4" prints only one channel:
1 = ""
 frontend = "/local/domain/4/device/console/1"
 frontend-id = "4"
 online = "1"
 state = "2"
 protocol = "vt100"
 name = "test.ch2"
 connection = "socket"
 path = "/run/testsocket2"
 hotplug-status = "connected"
0 = ""
 frontend = "/local/domain/4/console"
 frontend-id = "4"
 online = "1"
 state = "1"
 protocol = "vt100"

While qemu seems to have been started with the information for both.
Output of "xl -vvv create":

...
libxl: debug: libxl_dm.c:2994:libxl__spawn_local_dm: Domain 4:  -chardev
libxl: debug: libxl_dm.c:2994:libxl__spawn_local_dm: Domain 4: socket,id=libxl-channel0,path=/run/testsocket1,server=on,wait=off
libxl: debug: libxl_dm.c:2994:libxl__spawn_local_dm: Domain 4:  -chardev
libxl: debug: libxl_dm.c:2994:libxl__spawn_local_dm: Domain 4: socket,id=libxl-channel1,path=/run/testsocket2,server=on,wait=off
...

"xenstore-ls /local/domain/4/device/console" only shows:
1 = ""
 backend = "/local/domain/0/backend/console/4/1"
 backend-id = "0"
 state = "1"
 protocol = "vt100"
 name = "test.ch2"
 limit = "1048576"
 type = "ioemu"
 output = "chardev:libxl-channel1"
 tty = ""

So the console AND the first channel are missing.

"xenstore-ls /local/domain/4/error" shows:
device = ""
 console = ""
  1 = ""
   error = "22 xenbus_dev_probe on device/console/1"

Now doing the same with only one "channel" device shows the same error when
creating the guest. The guest has no channel device after that and the Xenstore
error node is not present.

I'm not that familiar with this code area, so I thought I post this here in the
hope someone has an idea where to look first.


Juergen



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.