mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-02-23 00:00:02 +03:00
Cleanups
This commit is contained in:
parent
8dc5698fe9
commit
e7b1ba1bd0
8
Makefile
8
Makefile
@ -1,9 +1,15 @@
|
|||||||
|
|
||||||
|
PREFIX=/usr/local
|
||||||
CFLAGS=-O2 -Wall -g
|
CFLAGS=-O2 -Wall -g
|
||||||
|
|
||||||
all: make-bcache bcache-test
|
all: make-bcache
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f make-bcache bcache-test *.o
|
rm -f make-bcache bcache-test *.o
|
||||||
|
|
||||||
|
install: make-bcache
|
||||||
|
install -m0755 make-bcache ${PREFIX}/sbin/
|
||||||
|
install -m0755 bcache-test ${PREFIX}/sbin/
|
||||||
|
|
||||||
|
|
||||||
bcache-test: LDFLAGS += -lm -lssl -lcrypto
|
bcache-test: LDFLAGS += -lm -lssl -lcrypto
|
||||||
|
@ -28,6 +28,8 @@ static const unsigned char bcache_magic[] = {
|
|||||||
|
|
||||||
unsigned char zero[4096];
|
unsigned char zero[4096];
|
||||||
|
|
||||||
|
bool klog = false;
|
||||||
|
|
||||||
#define Pread(fd, buf, size, offset) do { \
|
#define Pread(fd, buf, size, offset) do { \
|
||||||
int _read = 0, _r; \
|
int _read = 0, _r; \
|
||||||
while (_read < size) { \
|
while (_read < size) { \
|
||||||
@ -97,9 +99,29 @@ struct pagestuff {
|
|||||||
int writecount;
|
int writecount;
|
||||||
};
|
};
|
||||||
|
|
||||||
void flushlog(int fd, char *logbuf)
|
void flushlog(void)
|
||||||
{
|
{
|
||||||
int w = 0, len = klogctl(4, logbuf, 1 << 21);
|
char logbuf[1 << 21];
|
||||||
|
int w = 0, len;
|
||||||
|
static int fd;
|
||||||
|
|
||||||
|
if (!klog)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!fd) {
|
||||||
|
klogctl(8, 0, 6);
|
||||||
|
|
||||||
|
sprintf(logbuf, "log.%i", abs(random()) % 1000);
|
||||||
|
fd = open(logbuf, O_WRONLY|O_CREAT|O_TRUNC, 0644);
|
||||||
|
|
||||||
|
if (fd == -1) {
|
||||||
|
perror("Error opening log file");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
len = klogctl(4, logbuf, 1 << 21);
|
||||||
|
|
||||||
if (len == -1) {
|
if (len == -1) {
|
||||||
perror("Error reading kernel log");
|
perror("Error reading kernel log");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
@ -127,20 +149,19 @@ void usage()
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
bool walk = false, randsize = false, verbose = false, csum = false, destructive = false, log = false;
|
bool walk = false, randsize = false, verbose = false, csum = false, destructive = false;
|
||||||
int fd1, fd2 = 0, logfd, direct = 0, nbytes = 4096, j, o;
|
int fd1, fd2 = 0, direct = 0, nbytes = 4096, j, o;
|
||||||
unsigned long size, i, offset = 0, done = 0, unique = 0, benchmark = 0;
|
unsigned long size, i, offset = 0, done = 0, unique = 0, benchmark = 0;
|
||||||
void *buf1 = NULL, *buf2 = NULL;
|
void *buf1 = NULL, *buf2 = NULL;
|
||||||
struct pagestuff *pages, *p;
|
struct pagestuff *pages, *p;
|
||||||
unsigned char c[16];
|
unsigned char c[16];
|
||||||
char logbuf[1 << 21];
|
|
||||||
time_t last_printed = 0;
|
time_t last_printed = 0;
|
||||||
extern char *optarg;
|
extern char *optarg;
|
||||||
|
|
||||||
RC4_KEY writedata;
|
RC4_KEY writedata;
|
||||||
RC4_set_key(&writedata, 16, bcache_magic);
|
RC4_set_key(&writedata, 16, bcache_magic);
|
||||||
|
|
||||||
while ((o = getopt(argc, argv, "dwvscwlb:")) != EOF)
|
while ((o = getopt(argc, argv, "dnwvscwlb:")) != EOF)
|
||||||
switch (o) {
|
switch (o) {
|
||||||
case 'd':
|
case 'd':
|
||||||
direct = O_DIRECT;
|
direct = O_DIRECT;
|
||||||
@ -161,7 +182,7 @@ int main(int argc, char **argv)
|
|||||||
destructive = true;
|
destructive = true;
|
||||||
break;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
log = true;
|
klog = true;
|
||||||
break;
|
break;
|
||||||
case 'b':
|
case 'b':
|
||||||
benchmark = atol(optarg);
|
benchmark = atol(optarg);
|
||||||
@ -207,16 +228,6 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
//setvbuf(stdout, NULL, _IONBF, 0);
|
//setvbuf(stdout, NULL, _IONBF, 0);
|
||||||
|
|
||||||
if (log) {
|
|
||||||
sprintf(logbuf, "log.%i", abs(random()) % 1000);
|
|
||||||
logfd = open(logbuf, O_WRONLY|O_CREAT|O_TRUNC, 0644);
|
|
||||||
if (logfd == -1) {
|
|
||||||
perror("Error opening log file");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
klogctl(8, 0, 6);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; !benchmark || i < benchmark; i++) {
|
for (i = 0; !benchmark || i < benchmark; i++) {
|
||||||
bool writing = destructive && (i & 1);
|
bool writing = destructive && (i & 1);
|
||||||
nbytes = randsize ? drand48() * 16 + 1 : 1;
|
nbytes = randsize ? drand48() * 16 + 1 : 1;
|
||||||
@ -227,8 +238,8 @@ int main(int argc, char **argv)
|
|||||||
offset %= size;
|
offset %= size;
|
||||||
offset <<= 12;
|
offset <<= 12;
|
||||||
|
|
||||||
if (log && !(i % 200))
|
if (!(i % 200))
|
||||||
flushlog(logfd, logbuf);
|
flushlog();
|
||||||
|
|
||||||
if (!verbose) {
|
if (!verbose) {
|
||||||
time_t now = time(NULL);
|
time_t now = time(NULL);
|
||||||
@ -278,11 +289,12 @@ print: printf("Loop %6li offset %9li sectors %3i, %6lu mb done, %6lu mb unique
|
|||||||
if (writing && !csum && !benchmark)
|
if (writing && !csum && !benchmark)
|
||||||
Pwrite(fd2, buf2, nbytes, offset);
|
Pwrite(fd2, buf2, nbytes, offset);
|
||||||
}
|
}
|
||||||
|
printf("Loop %6li offset %9li sectors %3i, %6lu mb done, %6lu mb unique\n",
|
||||||
|
i, offset >> 9, nbytes >> 9, done >> 11, unique >> 11);
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
err:
|
err:
|
||||||
perror("IO error");
|
perror("IO error");
|
||||||
if (log)
|
flushlog();
|
||||||
flushlog(logfd, logbuf);
|
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
bad:
|
bad:
|
||||||
printf("Bad read! loop %li offset %li readcount %i writecount %i\n",
|
printf("Bad read! loop %li offset %li readcount %i writecount %i\n",
|
||||||
@ -291,6 +303,6 @@ bad:
|
|||||||
if (!memcmp(&p->oldcsum[0], c, 16))
|
if (!memcmp(&p->oldcsum[0], c, 16))
|
||||||
printf("Matches previous csum\n");
|
printf("Matches previous csum\n");
|
||||||
|
|
||||||
flushlog(logfd, logbuf);
|
flushlog();
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
@ -75,19 +74,24 @@ long hatoi(const char *s)
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void usage()
|
||||||
|
{
|
||||||
|
printf("");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int64_t nblocks, bucketsize = 32, blocksize = 8;
|
int64_t nblocks, bucketsize = 32, blocksize = 8;
|
||||||
int fd, i, c;
|
int fd, i, c;
|
||||||
struct cache_sb sb;
|
struct cache_sb sb;
|
||||||
|
|
||||||
while ((c = getopt(argc, argv, "b:")) != -1) {
|
while ((c = getopt(argc, argv, "b:")) != -1)
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'b':
|
case 'b':
|
||||||
bucketsize = hatoi(optarg) / 512;
|
bucketsize = hatoi(optarg) / 512;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (argc <= optind) {
|
if (argc <= optind) {
|
||||||
printf("Please supply a device\n");
|
printf("Please supply a device\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user