xsplice: Print build_id in keyhandler and on bootup.
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 20 Apr 2016 20:20:37 +0000 (16:20 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 29 Apr 2016 07:59:10 +0000 (03:59 -0400)
As it should be an useful debug mechanism.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
xen/common/xsplice.c

index b5df367e2f3ebb3c6d5fb2b76dd6a611af92f070..696880eddd096f8f6611f091e157394827d21bb3 100644 (file)
@@ -16,6 +16,7 @@
 #include <xen/spinlock.h>
 #include <xen/string.h>
 #include <xen/symbols.h>
+#include <xen/version.h>
 #include <xen/virtual_region.h>
 #include <xen/vmap.h>
 #include <xen/wait.h>
@@ -1352,10 +1353,15 @@ static const char *state2str(unsigned int state)
 static void xsplice_printall(unsigned char key)
 {
     struct payload *data;
+    const void *binary_id = NULL;
+    unsigned int len = 0;
     unsigned int i;
 
     printk("'%c' pressed - Dumping all xsplice patches\n", key);
 
+    if ( !xen_build_id(&binary_id, &len) )
+        printk("build-id: %*phN\n", len, binary_id);
+
     if ( !spin_trylock(&payload_lock) )
     {
         printk("Lock held. Try again.\n");
@@ -1392,6 +1398,12 @@ static void xsplice_printall(unsigned char key)
 
 static int __init xsplice_init(void)
 {
+    const void *binary_id;
+    unsigned int len;
+
+    if ( !xen_build_id(&binary_id, &len) )
+        printk(XENLOG_INFO XSPLICE ": build-id: %*phN\n", len, binary_id);
+
     register_keyhandler('x', xsplice_printall, "print xsplicing info", 1);
 
     arch_xsplice_init();