WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] xenstored: allow guest to shutdown all it

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] xenstored: allow guest to shutdown all its watches/transactions
From: Xen patchbot-unstable <patchbot@xxxxxxx>
Date: Thu, 15 Sep 2011 13:11:08 +0100
Delivery-date: Thu, 15 Sep 2011 05:11:16 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Olaf Hering <olaf@xxxxxxxxx>
# Date 1316081285 -3600
# Node ID 42a45baf037dfc0d0ad09c29b0f6149304023802
# Parent  e90438f6e6d1585a71b18784a99c162b5d95f390
xenstored: allow guest to shutdown all its watches/transactions

During kexec all old watches have to be removed, otherwise the new
kernel will receive unexpected events. Allow a guest to reset itself
and cleanup all of its watches and transactions.

Add a new XS_RESET_WATCHES command to do the reset on behalf of the
guest.

(Changes by iwj: specify the argument to be a single nul byte.  Permit
read-only clients to use the new command.)

Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---


diff -r e90438f6e6d1 -r 42a45baf037d docs/misc/xenstore.txt
--- a/docs/misc/xenstore.txt    Wed Sep 14 11:38:13 2011 +0100
+++ b/docs/misc/xenstore.txt    Thu Sep 15 11:08:05 2011 +0100
@@ -217,6 +217,9 @@
 
 UNWATCH                        <wpath>|<token>|?
 
+RESET_WATCHES          |
+       Reset all watches and transactions of the caller.
+
 ---------- Transactions ----------
 
 TRANSACTION_START      |                       <transid>|
diff -r e90438f6e6d1 -r 42a45baf037d tools/xenstore/xenstored_core.c
--- a/tools/xenstore/xenstored_core.c   Wed Sep 14 11:38:13 2011 +0100
+++ b/tools/xenstore/xenstored_core.c   Thu Sep 15 11:08:05 2011 +0100
@@ -120,6 +120,7 @@
        case XS_IS_DOMAIN_INTRODUCED: return "XS_IS_DOMAIN_INTRODUCED";
        case XS_RESUME: return "RESUME";
        case XS_SET_TARGET: return "SET_TARGET";
+       case XS_RESET_WATCHES: return "RESET_WATCHES";
        default:
                return "**UNKNOWN**";
        }
@@ -1242,6 +1243,10 @@
                do_set_target(conn, in);
                break;
 
+       case XS_RESET_WATCHES:
+               do_reset_watches(conn);
+               break;
+
        default:
                eprintf("Client unknown operation %i", in->hdr.msg.type);
                send_error(conn, ENOSYS);
diff -r e90438f6e6d1 -r 42a45baf037d tools/xenstore/xenstored_domain.c
--- a/tools/xenstore/xenstored_domain.c Wed Sep 14 11:38:13 2011 +0100
+++ b/tools/xenstore/xenstored_domain.c Thu Sep 15 11:08:05 2011 +0100
@@ -537,6 +537,15 @@
        send_reply(conn, XS_IS_DOMAIN_INTRODUCED, result ? "T" : "F", 2);
 }
 
+/* Allow guest to reset all watches */
+void do_reset_watches(struct connection *conn)
+{
+       conn_delete_all_watches(conn);
+       conn_delete_all_transactions(conn);
+
+       send_ack(conn, XS_RESET_WATCHES);
+}
+
 static int close_xc_handle(void *_handle)
 {
        xc_interface_close(*(xc_interface**)_handle);
diff -r e90438f6e6d1 -r 42a45baf037d tools/xenstore/xenstored_domain.h
--- a/tools/xenstore/xenstored_domain.h Wed Sep 14 11:38:13 2011 +0100
+++ b/tools/xenstore/xenstored_domain.h Thu Sep 15 11:08:05 2011 +0100
@@ -40,6 +40,9 @@
 /* domid */
 void do_get_domain_path(struct connection *conn, const char *domid_str);
 
+/* Allow guest to reset all watches */
+void do_reset_watches(struct connection *conn);
+
 void domain_init(void);
 
 /* Returns the implicit path of a connection (only domains have this) */
diff -r e90438f6e6d1 -r 42a45baf037d xen/include/public/io/xs_wire.h
--- a/xen/include/public/io/xs_wire.h   Wed Sep 14 11:38:13 2011 +0100
+++ b/xen/include/public/io/xs_wire.h   Thu Sep 15 11:08:05 2011 +0100
@@ -48,7 +48,8 @@
     XS_IS_DOMAIN_INTRODUCED,
     XS_RESUME,
     XS_SET_TARGET,
-    XS_RESTRICT
+    XS_RESTRICT,
+    XS_RESET_WATCHES
 };
 
 #define XS_WRITE_NONE "NONE"

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] xenstored: allow guest to shutdown all its watches/transactions, Xen patchbot-unstable <=