Messages in this thread | | | Date | Sat, 8 Nov 2003 14:25:39 +0100 | From | Jens Axboe <> | Subject | Re: [PATCH] cfq + io priorities |
| |
On Sat, Nov 08 2003, Jens Axboe wrote: > I'm attaching the simple ionice tool. It's used as follows:
Here's one that works, sorry about that. To compile:
# gcc -Wall -D__X86 -o ionice ionice.c
or other define for PPC or X86_64.
-- Jens Axboe
#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <getopt.h> #include <unistd.h> #include <sys/ptrace.h> #include <asm/unistd.h>
extern int sys_ioprio_set(int); extern int sys_ioprio_get(void);
#ifdef __X86 #define __NR_ioprio_set 274 #define __NR_ioprio_get 275 #endif
#ifdef __X86_64 #define __NR_ioprio_set 237 #define __NR_ioprio_get 238 #endif
#ifdef __PPC #define __NR_ioprio_set 255 #define __NR_ioprio_get 256 #endif
#ifndef __NR_ioprio_set #error set arch #endif
_syscall1(int, ioprio_set, int, ioprio); _syscall0(int, ioprio_get);
int main(int argc, char *argv[]) { int ioprio = 2, set = 0; int c;
while ((c = getopt(argc, argv, "+n:")) != EOF) { switch (c) { case 'n': ioprio = strtol(optarg, NULL, 10); set = 1; break; } }
if (!set) printf("%d\n", ioprio_get()); else if (argv[optind]) { if (ioprio_set(ioprio) == -1) { perror("ioprio_set"); return 1; }
execvp(argv[optind], &argv[optind]); } return 0; }
| |