Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sbin/dump Default the read block size (-k default value) to ...
details: https://anonhg.NetBSD.org/src/rev/ddb4a96e9cc7
branches: trunk
changeset: 340141:ddb4a96e9cc7
user: bouyer <bouyer%NetBSD.org@localhost>
date: Mon Aug 24 17:34:03 2015 +0000
description:
Default the read block size (-k default value) to kern.maxphys (usually
64k these days). This gives a noticable performance boost on large filesystems.
diffstat:
sbin/dump/dump.8 | 8 +++++---
sbin/dump/main.c | 7 ++++---
sbin/dump/rcache.c | 17 +++++++++++++++--
3 files changed, 24 insertions(+), 8 deletions(-)
diffs (102 lines):
diff -r 1a098c4b2091 -r ddb4a96e9cc7 sbin/dump/dump.8
--- a/sbin/dump/dump.8 Mon Aug 24 16:07:10 2015 +0000
+++ b/sbin/dump/dump.8 Mon Aug 24 17:34:03 2015 +0000
@@ -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 @@
.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
diff -r 1a098c4b2091 -r ddb4a96e9cc7 sbin/dump/main.c
--- a/sbin/dump/main.c Mon Aug 24 16:07:10 2015 +0000
+++ b/sbin/dump/main.c Mon Aug 24 17:34:03 2015 +0000
@@ -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 @@
#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 @@
#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 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 */
diff -r 1a098c4b2091 -r ddb4a96e9cc7 sbin/dump/rcache.c
--- a/sbin/dump/rcache.c Mon Aug 24 16:07:10 2015 +0000
+++ b/sbin/dump/rcache.c Mon Aug 24 17:34:03 2015 +0000
@@ -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 @@
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);
Home |
Main Index |
Thread Index |
Old Index