Module Name: src Committed By: bouyer Date: Mon Aug 24 17:34:03 UTC 2015
Modified Files: src/sbin/dump: dump.8 main.c rcache.c Log Message: Default the read block size (-k default value) to kern.maxphys (usually 64k these days). This gives a noticable performance boost on large filesystems. To generate a diff of this commit: cvs rdiff -u -r1.66 -r1.67 src/sbin/dump/dump.8 cvs rdiff -u -r1.71 -r1.72 src/sbin/dump/main.c cvs rdiff -u -r1.24 -r1.25 src/sbin/dump/rcache.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sbin/dump/dump.8 diff -u src/sbin/dump/dump.8:1.66 src/sbin/dump/dump.8:1.67 --- src/sbin/dump/dump.8:1.66 Tue Apr 28 09:48:30 2015 +++ src/sbin/dump/dump.8 Mon Aug 24 17:34:03 2015 @@ -1,4 +1,4 @@ -.\" $NetBSD: dump.8,v 1.66 2015/04/28 09:48:30 prlw1 Exp $ +.\" $NetBSD: dump.8,v 1.67 2015/08/24 17:34:03 bouyer Exp $ .\" .\" Copyright (c) 1980, 1991, 1993 .\" Regents of the University of California. @@ -30,7 +30,7 @@ .\" .\" @(#)dump.8 8.3 (Berkeley) 5/1/95 .\" -.Dd February 19, 2012 +.Dd August 24, 2015 .Dt DUMP 8 .Os .Sh NAME @@ -207,7 +207,9 @@ dump. .It Fl k Ar read-blocksize The size in kilobytes of the read buffers, rounded up to a multiple of the file system block size. -Default is 32k. +Default is the value of the +.Xr sysctl 7 +kern.maxphys. .It Fl L Ar label The user-supplied text string .Ar label Index: src/sbin/dump/main.c diff -u src/sbin/dump/main.c:1.71 src/sbin/dump/main.c:1.72 --- src/sbin/dump/main.c:1.71 Sun Sep 8 13:26:05 2013 +++ src/sbin/dump/main.c Mon Aug 24 17:34:03 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.71 2013/09/08 13:26:05 mlelstv Exp $ */ +/* $NetBSD: main.c,v 1.72 2015/08/24 17:34:03 bouyer Exp $ */ /*- * Copyright (c) 1980, 1991, 1993, 1994 @@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 19 #if 0 static char sccsid[] = "@(#)main.c 8.6 (Berkeley) 5/1/95"; #else -__RCSID("$NetBSD: main.c,v 1.71 2013/09/08 13:26:05 mlelstv Exp $"); +__RCSID("$NetBSD: main.c,v 1.72 2015/08/24 17:34:03 bouyer Exp $"); #endif #endif /* not lint */ @@ -47,6 +47,7 @@ __RCSID("$NetBSD: main.c,v 1.71 2013/09/ #include <sys/time.h> #include <sys/stat.h> #include <sys/mount.h> +#include <sys/sysctl.h> #include <ufs/ffs/fs.h> #include <ufs/ffs/ffs_extern.h> @@ -79,7 +80,7 @@ long dev_bsize = 1; /* recalculated bel long blocksperfile; /* output blocks per file */ const char *host; /* remote host (if any) */ int readcache = -1; /* read cache size (in readblksize blks) */ -int readblksize = 32 * 1024; /* read block size */ +int readblksize = -1; /* read block size */ char default_time_string[] = "%T %Z"; /* default timestamp string */ char *time_string = default_time_string; /* timestamp string */ Index: src/sbin/dump/rcache.c diff -u src/sbin/dump/rcache.c:1.24 src/sbin/dump/rcache.c:1.25 --- src/sbin/dump/rcache.c:1.24 Sat Jun 15 01:27:19 2013 +++ src/sbin/dump/rcache.c Mon Aug 24 17:34:03 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: rcache.c,v 1.24 2013/06/15 01:27:19 christos Exp $ */ +/* $NetBSD: rcache.c,v 1.25 2015/08/24 17:34:03 bouyer Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: rcache.c,v 1.24 2013/06/15 01:27:19 christos Exp $"); +__RCSID("$NetBSD: rcache.c,v 1.25 2015/08/24 17:34:03 bouyer Exp $"); #endif /* not lint */ #include <sys/types.h> @@ -98,6 +98,19 @@ initcache(int cachesize, int readblksize size_t len; size_t sharedSize; + if (readblksize == -1) { /* use kern.maxphys */ + int kern_maxphys; + int mib[2] = { CTL_KERN, KERN_MAXPHYS }; + + len = sizeof(kern_maxphys); + if (sysctl(mib, 2, &kern_maxphys, &len, NULL, 0) < 0) { + msg("sysctl(kern.maxphys) failed: %s\n", + strerror(errno)); + return; + } + readblksize = kern_maxphys; + } + /* Convert read block size in terms of filesystem block size */ nblksread = howmany(readblksize, ufsib->ufs_bsize);