build-sys: remove deprecated elvtune command
The command is deprecated for years and useless with 2.6.x kernels. Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
1cc62b3538
commit
7f1fe74248
10
configure.ac
10
configure.ac
|
@ -667,7 +667,6 @@ AC_ARG_ENABLE([most-builds],
|
|||
)
|
||||
AS_IF([test "x$enable_most_builds" = xyes], [
|
||||
enable_chfn_chsh=yes
|
||||
enable_elvtune=check
|
||||
enable_line=yes
|
||||
enable_mesg=yes
|
||||
enable_newgrp=yes
|
||||
|
@ -1034,15 +1033,6 @@ UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
|
|||
AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
|
||||
|
||||
|
||||
AC_ARG_ENABLE([elvtune],
|
||||
AS_HELP_STRING([--enable-elvtune], [build elvtune (only works with 2.2 and 2.4 kernels)]),
|
||||
[], [enable_elvtune=no]
|
||||
)
|
||||
UL_BUILD_INIT([elvtune])
|
||||
UL_REQUIRES_LINUX([elvtune])
|
||||
AM_CONDITIONAL([BUILD_ELVTUNE], [test "x$build_elvtune" = xyes])
|
||||
|
||||
|
||||
AC_ARG_ENABLE([tunelp],
|
||||
AS_HELP_STRING([--enable-tunelp], [build tunelp]),
|
||||
[], [enable_tunelp=no]
|
||||
|
|
|
@ -74,14 +74,6 @@ fsck_CFLAGS = $(AM_CFLAGS) -I$(ul_libmount_incdir) -I$(ul_libblkid_incdir)
|
|||
endif
|
||||
|
||||
|
||||
if BUILD_ELVTUNE
|
||||
sbin_PROGRAMS += elvtune
|
||||
dist_man_MANS += disk-utils/elvtune.8
|
||||
elvtune_SOURCES = disk-utils/elvtune.c
|
||||
elvtune_LDADD = $(LDADD) libcommon.la
|
||||
endif
|
||||
|
||||
|
||||
if BUILD_RAW
|
||||
sbin_PROGRAMS += raw
|
||||
dist_man_MANS += disk-utils/raw.8
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
.\" -*- nroff -*-
|
||||
.TH ELVTUNE 8 "March 2000" "util-linux" "System Administration"
|
||||
.SH NAME
|
||||
elvtune \- I/O elevator tuner
|
||||
.SH SYNOPSIS
|
||||
.B elvtune
|
||||
.RB [ \-r
|
||||
.IR r_lat ]
|
||||
.RB [ \-w
|
||||
.IR w_lat ]
|
||||
.RB [ \-b
|
||||
.IR b_max ]
|
||||
.IR device ...
|
||||
.br
|
||||
.B elvtune \-h
|
||||
.br
|
||||
.B elvtune \-v
|
||||
.SH DESCRIPTION
|
||||
.B elvtune
|
||||
allows to tune the I/O elevator per blockdevice queue. The
|
||||
tuning can be safely done at runtime. Tuning the elevator means
|
||||
being able to change disk performance and interactiveness.
|
||||
In the output of
|
||||
.B elvtune
|
||||
the address of the queue tuned will be shown;
|
||||
it can be considered as a queue ID.
|
||||
Multiple partitions on the same harddisk will
|
||||
share the same queue and so tuning one partition will be
|
||||
like tuning the whole HD.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BI -r \ r_lat
|
||||
Set the maximum latency that the I/O scheduler will provide on
|
||||
each read.
|
||||
.TP
|
||||
.BI -w \ w_lat
|
||||
Set the maximum latency that the I/O scheduler will provide on
|
||||
each write.
|
||||
.TP
|
||||
.BI -b \ b_max
|
||||
Set the maximum coalescing factor allowed on writes when there are reads
|
||||
pending in the queue.
|
||||
.TP
|
||||
.BI -h
|
||||
Display help text and exit.
|
||||
.TP
|
||||
.BI -v
|
||||
Display version information and exit.
|
||||
.SH NOTE
|
||||
Actually, the only fields tunable are those relative
|
||||
to the IO scheduler. It's not possible to select
|
||||
a one-way or two-way elevator yet.
|
||||
.PP
|
||||
For logical blockdevices like LVM the tuning has to
|
||||
be done on the
|
||||
.I physical
|
||||
devices. Tuning the queue of the LVM logical device
|
||||
is useless.
|
||||
.SH RETURN VALUE
|
||||
0 on success and 1 on failure.
|
||||
.SH HISTORY
|
||||
Ioctls for tuning elevator behaviour were added in Linux 2.3.99-pre1.
|
||||
.SH AUTHORS
|
||||
Andrea Arcangeli <andrea@suse.de> SuSE
|
||||
.SH AVAILABILITY
|
||||
The elvtune command is part of the util-linux package and is available from
|
||||
ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
|
|
@ -1,174 +0,0 @@
|
|||
/*
|
||||
* elvtune.c - I/O elevator tuner
|
||||
*
|
||||
* Copyright (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This command is deprecated. The utility is in maintenance mode,
|
||||
* meaning we keep them in source tree for backward compatibility
|
||||
* only. Do not waste time making this command better, unless the
|
||||
* fix is about security or other very critical issue.
|
||||
*
|
||||
* See Documentation/deprecated.txt for more information.
|
||||
*/
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <getopt.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/utsname.h>
|
||||
#include "nls.h"
|
||||
#include "blkdev.h"
|
||||
#include "closestream.h"
|
||||
#include "linux_version.h"
|
||||
|
||||
/* this has to match with the kernel structure */
|
||||
/* current version for ac19 and 2.2.16 */
|
||||
typedef struct blkelv_ioctl_arg_s {
|
||||
int queue_ID;
|
||||
int read_latency;
|
||||
int write_latency;
|
||||
int max_bomb_segments;
|
||||
} blkelv_ioctl_arg_t;
|
||||
|
||||
static void
|
||||
usage(void) {
|
||||
fprintf(stderr, "elvtune (%s)\n", PACKAGE_STRING);
|
||||
fprintf(stderr, _("usage:\n"));
|
||||
fprintf(stderr, "\telvtune [-r r_lat] [-w w_lat] [-b b_lat]"
|
||||
" /dev/blkdev1 [/dev/blkdev2...]\n");
|
||||
fprintf(stderr, "\telvtune -h\n");
|
||||
fprintf(stderr, "\telvtune -v\n");
|
||||
fprintf(stderr, _("\tNOTE: elvtune only works with 2.4 kernels\n"));
|
||||
/* (ioctls exist in 2.2.16 - 2.5.57) */
|
||||
}
|
||||
|
||||
static void
|
||||
version(void) {
|
||||
fprintf(stderr, UTIL_LINUX_VERSION);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char * argv[]) {
|
||||
int read_value = 0xbeefbeef, write_value = 0xbeefbeef, bomb_value = 0xbeefbeef;
|
||||
int read_set, write_set, bomb_set, set;
|
||||
char * devname;
|
||||
int fd;
|
||||
blkelv_ioctl_arg_t elevator;
|
||||
|
||||
read_set = write_set = bomb_set = set = 0;
|
||||
|
||||
setlocale(LC_MESSAGES, "");
|
||||
bindtextdomain(PACKAGE, LOCALEDIR);
|
||||
textdomain(PACKAGE);
|
||||
atexit(close_stdout);
|
||||
|
||||
for (;;) {
|
||||
int opt;
|
||||
|
||||
opt = getopt(argc, argv, "r:w:b:hv");
|
||||
if (opt == -1)
|
||||
break;
|
||||
switch (opt) {
|
||||
case 'r':
|
||||
read_value = atoi(optarg);
|
||||
read_set = set = 1;
|
||||
break;
|
||||
case 'w':
|
||||
write_value = atoi(optarg);
|
||||
write_set = set = 1;
|
||||
break;
|
||||
case 'b':
|
||||
bomb_value = atoi(optarg);
|
||||
bomb_set = set = 1;
|
||||
break;
|
||||
|
||||
case 'h':
|
||||
usage(), exit(0);
|
||||
case 'v':
|
||||
version(), exit(0);
|
||||
|
||||
default:
|
||||
usage(), exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (optind >= argc)
|
||||
fprintf(stderr, _("missing blockdevice, use -h for help\n")), exit(1);
|
||||
|
||||
while (optind < argc) {
|
||||
devname = argv[optind++];
|
||||
|
||||
fd = open(devname, O_RDONLY|O_NONBLOCK);
|
||||
if (fd < 0) {
|
||||
perror("open");
|
||||
break;
|
||||
}
|
||||
|
||||
/* mmj: If we get EINVAL it's not a 2.4 kernel, so warn about
|
||||
that and exit. It should return ENOTTY however, so check for
|
||||
that as well in case it gets corrected in the future */
|
||||
|
||||
if (ioctl(fd, BLKELVGET, &elevator) < 0) {
|
||||
int errsv = errno;
|
||||
perror("ioctl get");
|
||||
if ((errsv == EINVAL || errsv == ENOTTY) &&
|
||||
get_linux_version() >= KERNEL_VERSION(2,5,58)) {
|
||||
fprintf(stderr,
|
||||
_("\nelvtune is only useful on older "
|
||||
"kernels;\nfor 2.6 use IO scheduler "
|
||||
"sysfs tunables instead..\n"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (set) {
|
||||
if (read_set)
|
||||
elevator.read_latency = read_value;
|
||||
if (write_set)
|
||||
elevator.write_latency = write_value;
|
||||
if (bomb_set)
|
||||
elevator.max_bomb_segments = bomb_value;
|
||||
|
||||
if (ioctl(fd, BLKELVSET, &elevator) < 0) {
|
||||
perror("ioctl set");
|
||||
break;
|
||||
}
|
||||
if (ioctl(fd, BLKELVGET, &elevator) < 0) {
|
||||
perror("ioctl reget");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
printf("\n%s elevator ID\t\t%d\n", devname, elevator.queue_ID);
|
||||
printf("\tread_latency:\t\t%d\n", elevator.read_latency);
|
||||
printf("\twrite_latency:\t\t%d\n", elevator.write_latency);
|
||||
printf("\tmax_bomb_segments:\t%d\n\n", elevator.max_bomb_segments);
|
||||
|
||||
if (close(fd) < 0) {
|
||||
perror("close");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -38,7 +38,6 @@ ctrlaltdel:
|
|||
cytune:
|
||||
delpart:
|
||||
dmesg:
|
||||
elvtune:
|
||||
fallocate:
|
||||
fdformat:
|
||||
flock:
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
mkswap: libblkid libselinux libuuid
|
||||
swaplabel: libblkid libuuid
|
||||
blockdev:
|
||||
elvtune:
|
||||
fdformat:
|
||||
fsck.cramfs: libz
|
||||
fsck.minix:
|
||||
|
|
|
@ -38,7 +38,6 @@ ctrlaltdel:
|
|||
cytune:
|
||||
delpart:
|
||||
dmesg:
|
||||
elvtune:
|
||||
fallocate:
|
||||
fdformat:
|
||||
flock:
|
||||
|
|
|
@ -38,7 +38,6 @@ ctrlaltdel:
|
|||
cytune:
|
||||
delpart:
|
||||
dmesg:
|
||||
elvtune:
|
||||
fallocate:
|
||||
fdformat:
|
||||
flock:
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
mkswap: libblkid libselinux libuuid
|
||||
swaplabel: libblkid libuuid
|
||||
blockdev:
|
||||
elvtune:
|
||||
fdformat:
|
||||
fsck.cramfs: libz
|
||||
fsck.minix:
|
||||
|
|
|
@ -38,7 +38,6 @@ ctrlaltdel:
|
|||
cytune:
|
||||
delpart:
|
||||
dmesg:
|
||||
elvtune:
|
||||
fallocate:
|
||||
fdformat:
|
||||
flock:
|
||||
|
|
Loading…
Reference in New Issue