All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Guthro <bguthro@virtualiron.com>
To: xen-devel <xen-devel@lists.xensource.com>
Cc: Daniel Li <dli@virtualiron.com>
Subject: [PATCH] Dump flush write performance
Date: Wed, 24 Oct 2007 17:10:23 -0400	[thread overview]
Message-ID: <471FB4BF.6030008@virtualiron.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 771 bytes --]

Two changes to avoid disk driver using up kernel memory and triggering 
oom-killer
while creating guest dump to a disk file:

1) Decreased write chunks from 16MB to 2MB;
2) Flush (fsync) after each 2MB write.

To make sure we don't suffer significant write performance penalty, each 
of the
following cases have been tested several times to dump a 1GB guest to a 
file on
a SAN disk:

With current code (16MB writes, sync once after all writes); ~38s
16MB writes, sync after each write: ~46s
2MB writes, sync after each write: ~49s

Sync-often costs us about 20%, smaller-write-size costs another 8%. The 
total is
less than 30% and about 10 seconds more for a 1GB guest.

Signed-off-by: Ben Guthro <bguthro@virtualron.com>
Signed-off-by: Daniel Li <dli@virtualiron.com>

[-- Attachment #2: xen-dump-flush-writes.patch --]
[-- Type: text/x-patch, Size: 760 bytes --]

diff -r 9d263e1fcd02 tools/libxc/xc_core.c
--- a/tools/libxc/xc_core.c	Wed Oct 24 16:25:11 2007 -0400
+++ b/tools/libxc/xc_core.c	Wed Oct 24 16:26:04 2007 -0400
@@ -56,7 +56,7 @@
 #include <unistd.h>
 
 /* number of pages to write at a time */
-#define DUMP_INCREMENT (4 * 1024)
+#define DUMP_INCREMENT (512)
 
 /* Don't yet support cross-address-size core dump */
 #define guest_width (sizeof (unsigned long))
@@ -875,7 +875,7 @@ static int local_file_dump(void *args, c
     if (length >= DUMP_INCREMENT*PAGE_SIZE) {
         // Now dumping pages -- make sure we discard clean pages from
         // the cache after each write
-        discard_file_cache(da->fd, 0 /* no flush */);
+        discard_file_cache(da->fd, 1 /* flush */);
     }
 
     return 0;

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

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

             reply	other threads:[~2007-10-24 21:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-24 21:10 Ben Guthro [this message]
2007-10-25 14:32 ` [PATCH] Dump flush write performance Keir Fraser

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=471FB4BF.6030008@virtualiron.com \
    --to=bguthro@virtualiron.com \
    --cc=dli@virtualiron.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.