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

Re: [Xen-devel] [PATCH 06/10 v2] xen/arm: vpl011: Add vuart ring-buf and evtchn to xenstore

On Wed, 3 May 2017, Bhupinder Thakur wrote:
> Hi,
> >> > It looks like you are reusing the libxl__device_console_add call for the
> >> > main PV console for the domain, to also add the vuart nodes to xenstore.
> >> >
> >> > I don't think it is a good idea to mix the two. I suggest to introduce a
> >> > new libxl__device call to introduce the vuart nodes to xenstore, given
> >> > that they have no relantionship with the principal PV console of the
> >> > domain.
> >> >
> >> I have a doubt here. Do I have to create a new console device
> >> (libxl__device) to register the vuart console or can I use the
> >> existing console device (which is used for registering the primary
> >> console) to register the vuart nodes to xenstore?
> >>
> >> I suspect that if I try to register with the same console device then
> >> libxl__device_generic_add() may fail as it is already added.
> >
> > The vuart we are introducing with this patch series is a new and
> > different console from the existing PV console. So yes, I think we need
> > to create a new device for it.
> >
> > We either need to introduce a brand new function to add the vuart to
> > xenstore, something like libxl__device_vuart_add, or, if we are going
> > to reuse libxl__device_console_add, then we we need to create both a new
> > console device (libxl__device_console), and a new libxl__device for it.
> > For clarity, libxl__device_console is the input parameter of
> > libxl__device_console_add, while libxl__device is the output parameter.
> >
> I am trying to add a new vuart device by defining a new device type
> LIBXL__DEVICE_KIND_VUART  and a new function
> libxl__device_vuart_add().

I think that is the right way to do it.

> This function basically adds the vuart ring-ref ("0/ring-ref") and
> port ("0/port") to ro_front array and then it registers the device
> using the libxl__device_generic_add(). I pass NULL to "back" and
> "front" array arguments to  libxl__device_generic_add() as I am adding
> parameters only to "ro_front" array.
> I am adding the device at /local/domain/<domid>/vuart.
> However, xenconsoled fails to read the vuart ring-ref and port saying
> "no such directory or file".I verified that
> libxl__device_generic_add() is returning successfully.
> In xenconsoled, I verified that I am reading
> /local/domain/<domid>/vuart/0/ring-ref and
> /local/domain/<domid>/vuart/0/port.
> It is not clear why xenconsoled fails to read the values.

Double check the permissions of those nodes with xenstore-ls -p. Make
sure there are no races between libxl writing the nodes and xenconsoled
reading them.

Xen-devel mailing list



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