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

Re: [Xen-devel] [PATCH] libxl: create control/sysrq xenstore node



On Wed, Sep 05, 2018 at 09:22:03AM +0100, Wei Liu wrote:
> Also CC Linux maintainers.
> 
> On Tue, Sep 04, 2018 at 07:27:31PM +0200, Vitaly Kuznetsov wrote:
> > Wei Liu <wei.liu2@xxxxxxxxxx> writes:
> > 
> > > On Tue, Sep 04, 2018 at 01:39:29PM +0200, Vitaly Kuznetsov wrote:
> > >> 'xl sysrq' command doesn't work with modern Linux guests with the 
> > >> following
> > >> message in guest's log:
> > >> 
> > >>  xen:manage: sysrq_handler: Error -13 writing sysrq in control/sysrq
> > >> 
> > >> xenstore trace confirms:
> > >> 
> > >>  IN 0x24bd9a0 20180904 04:36:32 WRITE (control/sysrq )
> > >>  OUT 0x24bd9a0 20180904 04:36:32 ERROR (EACCES )
> > >> 
> > >> The problem seems to be in the fact that we don't pre-create 
> > >> control/sysrq
> > >> xenstore node and libxl_send_sysrq() doing libxl__xs_printf() creates it 
> > >> as
> > >> read-only. As we want to allow guests to clean 'control/sysrq' after the
> > >> requested action is performed, we need to make this node writable.
> > >> 
> > >> Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
> > >
> > > Hmm... this node isn't documented.
> > >
> > 
> > But libxl already writes it, see libxl_send_sysrq().
> 
> I think your patch is fine.
> 
> What I wanted to do is to document this node. :p
> 
> > 
> > > Can you point me to the code in Linux?
> > >
> > 
> > Sure,
> > 
> > drivers/xen/manage.c:
> 
> Alright, it appears DomU only expects a single character to be written.
> 
> I have written the following diff, do you think it is sensible? I
> believe this is Linux only, but I have CC Roger for correction.
> 
> 
> diff --git a/docs/misc/xenstore-paths.markdown 
> b/docs/misc/xenstore-paths.markdown
> index 60c8b3fbe5..33d281915c 100644
> --- a/docs/misc/xenstore-paths.markdown
> +++ b/docs/misc/xenstore-paths.markdown
> @@ -410,6 +410,14 @@ by udev ("0") or will be run by the toolstack directly 
> ("1").
>  
>  ### Platform Feature and Control Paths
>  
> +#### ~/control/sysrq = (""|COMMAND) [w]
> +
> +This is the PV SysRq control node. A toolstack can write a single character
> +representing a magic SysRq key understood by the Linux kernel.  The guest
> +acknowledges a request by writing the empty string back to the command node.
> +
> +This protocol is Linux only.
> +
>  #### ~/control/shutdown = (""|COMMAND) [w]
>  
>  This is the PV shutdown control node. A toolstack can write various

LGTM. I haven't implemented this on FreeBSD, and I very much doubt
NetBSD uses it at all. FreeBSD doesn't have such thing as sysrq keys,
there's only a key sequence used in order to break into the debugger from
the console AFAIK.

Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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