Speed up test suite by avoiding fsync

Add grub_util_disable_fd_syncs call to turn grub_util_fd_sync calls into
no-ops, and use it in programs that copy files but do not need to take
special care to sync writes (grub-mknetdir, grub-rescue,
grub-mkstandalone).

On my laptop, this reduces partmap_test's runtime from 1236 seconds to
204 seconds.
This commit is contained in:
Colin Watson 2013-11-27 10:06:07 +00:00
parent fc3f2b72cd
commit 5c7206e45e
9 changed files with 52 additions and 11 deletions

View file

@ -492,7 +492,7 @@ grub_install_make_image_wrap (const char *dir, const char *prefix,
memdisk_path, config_path,
mkimage_target, note, comp);
fflush (fp);
fsync (fileno (fp));
grub_util_fd_sync (fileno (fp));
fclose (fp);
}

View file

@ -171,6 +171,7 @@ main (int argc, char *argv[])
const char *pkglibdir;
grub_util_host_init (&argc, &argv);
grub_util_disable_fd_syncs ();
rootdir = xstrdup ("/srv/tftp");
pkglibdir = grub_util_get_pkglibdir ();

View file

@ -369,6 +369,7 @@ main (int argc, char *argv[])
const char *pkgdatadir;
grub_util_host_init (&argc, &argv);
grub_util_disable_fd_syncs ();
pkgdatadir = grub_util_get_pkgdatadir ();
@ -529,7 +530,7 @@ main (int argc, char *argv[])
GRUB_COMPRESSION_AUTO);
sz = ftello (sa);
fflush (sa);
fsync (fileno (sa));
grub_util_fd_sync (fileno (sa));
fclose (sa);
if (sz > 32768)

View file

@ -305,6 +305,7 @@ main (int argc, char *argv[])
int i;
grub_util_host_init (&argc, &argv);
grub_util_disable_fd_syncs ();
files = xmalloc ((argc + 1) * sizeof (files[0]));