edf6bf0381
23955-x86-pv-cpuid-xsave.patch 23957-cpufreq-error-paths.patch - Upstream patches from Jan 23933-pt-bus2bridge-update.patch 23726-x86-intel-flexmigration-v2.patch 23925-x86-AMD-ARAT-Fam12.patch 23246-x86-xsave-enable.patch 23897-x86-mce-offline-again.patch - Update to Xen 4.1.2_rc3 c/s 23171 - bnc#720054 - Changed /etc/udev/rules.d/40-xen.rules to not run Xen's vif-bridge script when not running Xen. This is not a solution to the bug but an improvement in the rules regardless. Updated udev-rules.patch - Upstream patches from Jan 23868-vtd-RMRR-validation.patch 23871-x86-microcode-amd-silent.patch 23898-cc-option-grep.patch - Add pciback init script and sysconf file, giving users a simple mechanism to configure pciback. init.pciback sysconfig.pciback - update scripts to use xl -f, or xm if xend is running: xen-updown.sh, init.xendomains, xmclone.sh OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=146
116 lines
4.0 KiB
Diff
116 lines
4.0 KiB
Diff
changeset: 23839:42a45baf037d
|
|
user: Olaf Hering <olaf@aepfle.de>
|
|
date: Thu Sep 15 11:08:05 2011 +0100
|
|
files: docs/misc/xenstore.txt tools/xenstore/xenstored_core.c tools/xenstore/xenstored_domain.c tools/xenstore/xenstored_domain.h xen/include/public/io/xs_wire.h
|
|
description:
|
|
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@aepfle.de>
|
|
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
|
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
|
|
|
|
|
---
|
|
docs/misc/xenstore.txt | 3 +++
|
|
tools/xenstore/xenstored_core.c | 5 +++++
|
|
tools/xenstore/xenstored_domain.c | 9 +++++++++
|
|
tools/xenstore/xenstored_domain.h | 3 +++
|
|
xen/include/public/io/xs_wire.h | 3 ++-
|
|
5 files changed, 22 insertions(+), 1 deletion(-)
|
|
|
|
Index: xen-4.1.2-testing/docs/misc/xenstore.txt
|
|
===================================================================
|
|
--- xen-4.1.2-testing.orig/docs/misc/xenstore.txt
|
|
+++ xen-4.1.2-testing/docs/misc/xenstore.txt
|
|
@@ -217,6 +217,9 @@ WATCH_EVENT <epath>|<token>|
|
|
|
|
UNWATCH <wpath>|<token>|?
|
|
|
|
+RESET_WATCHES |
|
|
+ Reset all watches and transactions of the caller.
|
|
+
|
|
---------- Transactions ----------
|
|
|
|
TRANSACTION_START | <transid>|
|
|
Index: xen-4.1.2-testing/tools/xenstore/xenstored_core.c
|
|
===================================================================
|
|
--- xen-4.1.2-testing.orig/tools/xenstore/xenstored_core.c
|
|
+++ xen-4.1.2-testing/tools/xenstore/xenstored_core.c
|
|
@@ -120,6 +120,7 @@ static char *sockmsg_string(enum xsd_soc
|
|
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 @@ static void process_message(struct conne
|
|
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);
|
|
Index: xen-4.1.2-testing/tools/xenstore/xenstored_domain.c
|
|
===================================================================
|
|
--- xen-4.1.2-testing.orig/tools/xenstore/xenstored_domain.c
|
|
+++ xen-4.1.2-testing/tools/xenstore/xenstored_domain.c
|
|
@@ -537,6 +537,15 @@ void do_is_domain_introduced(struct conn
|
|
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);
|
|
Index: xen-4.1.2-testing/tools/xenstore/xenstored_domain.h
|
|
===================================================================
|
|
--- xen-4.1.2-testing.orig/tools/xenstore/xenstored_domain.h
|
|
+++ xen-4.1.2-testing/tools/xenstore/xenstored_domain.h
|
|
@@ -40,6 +40,9 @@ void do_set_target(struct connection *co
|
|
/* 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) */
|
|
Index: xen-4.1.2-testing/xen/include/public/io/xs_wire.h
|
|
===================================================================
|
|
--- xen-4.1.2-testing.orig/xen/include/public/io/xs_wire.h
|
|
+++ xen-4.1.2-testing/xen/include/public/io/xs_wire.h
|
|
@@ -48,7 +48,8 @@ enum xsd_sockmsg_type
|
|
XS_IS_DOMAIN_INTRODUCED,
|
|
XS_RESUME,
|
|
XS_SET_TARGET,
|
|
- XS_RESTRICT
|
|
+ XS_RESTRICT,
|
|
+ XS_RESET_WATCHES
|
|
};
|
|
|
|
#define XS_WRITE_NONE "NONE"
|