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] Revert 11475:11645dda144c3c8365dd2a6a64cb

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Revert 11475:11645dda144c3c8365dd2a6a64cb5a7d7da01170
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 18 Sep 2006 16:20:21 +0000
Delivery-date: Mon, 18 Sep 2006 09:21:07 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/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 kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID ef3a08ab559fe385305b4dfd63122d26767ee870
# Parent  dc9fa4dcd19ce206889674ab4d7d62190d4fe216
Revert 11475:11645dda144c3c8365dd2a6a64cb5a7d7da01170
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 tools/libxc/xc_core.c |   71 +++++++++++---------------------------------------
 tools/libxc/xenctrl.h |    2 -
 2 files changed, 18 insertions(+), 55 deletions(-)

diff -r dc9fa4dcd19c -r ef3a08ab559f tools/libxc/xc_core.c
--- a/tools/libxc/xc_core.c     Mon Sep 18 14:15:03 2006 +0100
+++ b/tools/libxc/xc_core.c     Mon Sep 18 14:25:26 2006 +0100
@@ -5,12 +5,6 @@
 /* number of pages to write at a time */
 #define DUMP_INCREMENT (4 * 1024)
 #define round_pgup(_p)    (((_p)+(PAGE_SIZE-1))&PAGE_MASK)
-
-/* Callback args for writing to a local dump file. */
-struct dump_args {
-    int     fd;
-    int     incomp_fd;
-};
 
 static int
 copy_from_domain_page(int xc_handle,
@@ -33,7 +27,7 @@ xc_domain_dumpcore_via_callback(int xc_h
                                 void *args,
                                 dumpcore_rtn_t dump_rtn)
 {
-    unsigned long n, nr_pages;
+    unsigned long nr_pages;
     xen_pfn_t *page_array = NULL;
     xc_dominfo_t info;
     int i, nr_vcpus = 0;
@@ -43,12 +37,6 @@ xc_domain_dumpcore_via_callback(int xc_h
     char dummy[PAGE_SIZE];
     int dummy_len;
     int sts;
-    unsigned int cpy_err_cnt = 0;
-    struct dump_args *da = args;
-    int fd = da->fd;
-    int incomp_fd = da->incomp_fd;
-    char cpy_err_mesg[64];
-    int mesg_bytes;
 
     if ( (dump_mem_start = malloc(DUMP_INCREMENT*PAGE_SIZE)) == NULL )
     {
@@ -85,11 +73,11 @@ xc_domain_dumpcore_via_callback(int xc_h
                  (nr_pages * sizeof(xen_pfn_t)));
     header.xch_pages_offset = round_pgup(dummy_len);
 
-    sts = dump_rtn(fd, (char *)&header, sizeof(struct xc_core_header));
+    sts = dump_rtn(args, (char *)&header, sizeof(struct xc_core_header));
     if ( sts != 0 )
         goto error_out;
 
-    sts = dump_rtn(fd, (char *)&ctxt, sizeof(ctxt[0]) * nr_vcpus);
+    sts = dump_rtn(args, (char *)&ctxt, sizeof(ctxt[0]) * nr_vcpus);
     if ( sts != 0 )
         goto error_out;
 
@@ -103,39 +91,27 @@ xc_domain_dumpcore_via_callback(int xc_h
         IPRINTF("Could not get the page frame list\n");
         goto error_out;
     }
-    sts = dump_rtn(fd, (char *)page_array, nr_pages * sizeof(xen_pfn_t));
+    sts = dump_rtn(args, (char *)page_array, nr_pages * sizeof(xen_pfn_t));
     if ( sts != 0 )
         goto error_out;
 
     /* Pad the output data to page alignment. */
     memset(dummy, 0, PAGE_SIZE);
-    sts = dump_rtn(fd, dummy, header.xch_pages_offset - dummy_len);
+    sts = dump_rtn(args, dummy, header.xch_pages_offset - dummy_len);
     if ( sts != 0 )
         goto error_out;
 
-    for ( dump_mem = dump_mem_start, n = 0; n < nr_pages; n++ )
+    for ( dump_mem = dump_mem_start, i = 0; i < nr_pages; i++ )
     {
-        sts = copy_from_domain_page(xc_handle, domid, page_array[i], dump_mem);
-        if( sts != 0 ){
-            memset(dump_mem, 0, PAGE_SIZE);
-            cpy_err_cnt++;
-            memset(cpy_err_mesg, 0, sizeof(cpy_err_mesg));
-            mesg_bytes = sprintf(cpy_err_mesg, "Cannot copy_from_domain_page 
(%lu)\n", n);
-            dump_rtn(incomp_fd, (char *)cpy_err_mesg, mesg_bytes);
-        }
-
+        copy_from_domain_page(xc_handle, domid, page_array[i], dump_mem);
         dump_mem += PAGE_SIZE;
-        if ( ((n + 1) % DUMP_INCREMENT == 0) || ((n + 1) == nr_pages) )
+        if ( ((i + 1) % DUMP_INCREMENT == 0) || ((i + 1) == nr_pages) )
         {
-            sts = dump_rtn(fd, dump_mem_start, dump_mem - dump_mem_start);
+            sts = dump_rtn(args, dump_mem_start, dump_mem - dump_mem_start);
             if ( sts != 0 )
                 goto error_out;
             dump_mem = dump_mem_start;
         }
-    }
-    if( cpy_err_cnt != 0 ){
-        IPRINTF("Could not copy from domid=%d (%d)pages\n", domid, 
cpy_err_cnt);
-        goto error_out;
     }
 
     free(dump_mem_start);
@@ -148,14 +124,20 @@ xc_domain_dumpcore_via_callback(int xc_h
     return -1;
 }
 
+/* Callback args for writing to a local dump file. */
+struct dump_args {
+    int     fd;
+};
+
 /* Callback routine for writing to a local dump file. */
-static int local_file_dump(int fd, char *buffer, unsigned int length)
+static int local_file_dump(void *args, char *buffer, unsigned int length)
 {
+    struct dump_args *da = args;
     int bytes, offset;
 
     for ( offset = 0; offset < length; offset += bytes )
     {
-        bytes = write(fd, &buffer[offset], length-offset);
+        bytes = write(da->fd, &buffer[offset], length-offset);
         if ( bytes <= 0 )
         {
             PERROR("Failed to write buffer: %s", strerror(errno));
@@ -172,7 +154,6 @@ xc_domain_dumpcore(int xc_handle,
                    const char *corename)
 {
     struct dump_args da;
-    char *incomp_file;
     int sts;
 
     if ( (da.fd = open(corename, O_CREAT|O_RDWR, S_IWUSR|S_IRUSR)) < 0 )
@@ -181,28 +162,10 @@ xc_domain_dumpcore(int xc_handle,
         return -errno;
     }
 
-    
-    if ( (incomp_file = (char *)malloc(sizeof(corename) + 12)) == NULL )
-    {
-        PERROR("Could not allocate incomp_file");
-        return -errno;
-    }
-
-    sprintf(incomp_file, "%s-incomp.list", corename);
-    if ( (da.incomp_fd = open(incomp_file, O_CREAT|O_RDWR, S_IWUSR|S_IRUSR)) < 
0 )
-    {
-        PERROR("Could not open corefile %s: %s", incomp_file, strerror(errno));
-        return -errno;
-    }
-
     sts = xc_domain_dumpcore_via_callback(
         xc_handle, domid, &da, &local_file_dump);
 
     close(da.fd);
-    close(da.incomp_fd);
-
-    if( sts == 0)
-        unlink(incomp_file);
 
     return sts;
 }
diff -r dc9fa4dcd19c -r ef3a08ab559f tools/libxc/xenctrl.h
--- a/tools/libxc/xenctrl.h     Mon Sep 18 14:15:03 2006 +0100
+++ b/tools/libxc/xenctrl.h     Mon Sep 18 14:25:26 2006 +0100
@@ -166,7 +166,7 @@ int xc_domain_dumpcore(int xc_handle,
  * and passes an opaque object for the use of the function and
  * created by the caller of xc_domain_dumpcore_via_callback.
  */
-typedef int (dumpcore_rtn_t)(int fd, char *buffer, unsigned int length);
+typedef int (dumpcore_rtn_t)(void *arg, char *buffer, unsigned int length);
 
 int xc_domain_dumpcore_via_callback(int xc_handle,
                                     uint32_t domid,

_______________________________________________
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] Revert 11475:11645dda144c3c8365dd2a6a64cb5a7d7da01170, Xen patchbot-unstable <=