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

Re: [Xen-devel] [PATCH v4] add support for libvirt-like channels



On 7 Aug 2014, at 15:26, Stefano Stabellini <Stefano.Stabellini@xxxxxxxxxxxxx> 
wrote:

> On Thu, 7 Aug 2014, David Vrabel wrote:
>> On 07/08/14 14:37, Dave Scott wrote:
>>> 
>>> On 28 Jul 2014, at 15:22, David Vrabel <david.vrabel@xxxxxxxxxx> wrote:
>>> 
>>>> On 22/07/14 16:05, David Scott wrote:
>>>>> 
>>>>> Note: I've seen a problem with some Linux console frontends which attempt
>>>>> to overwrite the read-only key 'type' (= xenconsoled|ioemu) in the 
>>>>> frontend
>>>>> directory. [ this key is already present, it's not added by these patches 
>>>>> ]
>>>>> Since 'type' refers to the toolstack's choice of implementation service
>>>>> (which is none of the guest's business) I think the read/only permissions
>>>>> are right. The location of the key is not ideal (it should be in the
>>>>> backend directory IMHO) but this is the case with several other keys 
>>>>> located
>>>>> in the frontend such as 'limit' and 'tty'. I think this is a Linux 
>>>>> frontend
>>>>> bug which should be fixed there. These patches work with Mirage VMs and
>>>>> with Linux if I workaround the permissions by giving the guest read/write
>>>>> to the 'type' key. 
>>>> 
>>>> Which Linux front ends?
>>> 
>>> I just tested a Debian jessie with
>>> 
>>>  # uname -a
>>>  Linux jessie 3.13-6-686-pae #1 SMP Debian 3.13.5-1 (2014-03-04) i686 
>>> GNU/Linux
>>> 
>>> In my xenstored access log I see:
>>> 
>>>  Aug  7 14:28:30 localhost xenstored:  D40.6        write     
>>> device/console/1/ring-ref 8
>>>  Aug  7 14:28:30 localhost xenstored:  D40.6        write     
>>> device/console/1/port 10
>>>  Aug  7 14:28:30 localhost xenstored:  D40.6        write     
>>> device/console/1/type ioemu
>>> 
>>> — I think the last line is suspicious.
>> 
>> This was introduced by Stefano in 3.4 with 02e19f9c7cac (hvc_xen:
>> implement multiconsole support).
>> 
>> Stefano, can you advise on whether it it safe to remove the write of the
>> "type" key or whether we need to make it conditional on it being absent.
> 
> I think that the original idea was that since only ioemu backends (QEMU)
> are capable of handling multiple consoles and the new xenstore based
> console protocol, then the "type" had to be "ioemu".
> 
> I agree that the type key has no business being in the frontend
> directory.
> I also agree that the frontend shouldn't be writing it, since the
> backend would have already been started anyway.

Would you like me to move the key to the backend directory? I could leave a 
writable (but unused) key in the frontend directory for backwards 
compatibility. Or should I leave this alone?

> 
> I think it would be OK to:
> 
> ---
> xen_hvc: no reason to write the type key on xenstore
> 
> The backend type is chosen by the toolstack. Regardless the frontend
> should not care.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> 
> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
> index 636c9ba..b8491f5 100644
> --- a/drivers/tty/hvc/hvc_xen.c
> +++ b/drivers/tty/hvc/hvc_xen.c
> @@ -402,9 +402,6 @@ static int xencons_connect_backend(struct xenbus_device 
> *dev,
>                           evtchn);
>       if (ret)
>               goto error_xenbus;
> -     ret = xenbus_printf(xbt, dev->nodename, "type", "ioemu");
> -     if (ret)
> -             goto error_xenbus;
>       ret = xenbus_transaction_end(xbt, 0);
>       if (ret) {
>               if (ret == -EAGAIN)

This looks good to me :-)

Cheers,
Dave


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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