git send-email --annotate --compose --to=kcchuang@cs.nctu.edu.tw 0001-bcache-clean-plugout-ed-backing-dev.patch
這樣會把commit額外加在0001-bcache-clean-plugout-ed-backing-dev.patch,而且還不能attach file.
2018年4月19日 星期四
2018年4月12日 星期四
C use O_DIRECT vs O_SYNC => blktrace
1. O_DIRECT
fd = open("/dev/escache0", O_RDWR | O_DIRECT);
fd = open("/dev/escache0", O_RDWR | O_DIRECT);
blktrace -d /dev/escache0 -o - | blkparse -i -
252,0 4 1 0.000000000 30655 Q WS 0 + 1 [openescache]
2. O_SYNC
252,0 6 1 129.714324326 30666 Q WS 0 + 8 [openescache]
252,0 6 2 129.725375608 30666 Q FWS [openescache]
F means 'flush'
openescache.c
#define _GNU_SOURCE
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stdio.h>
#define BLOCKSIZE 512
int main() {
int fd, i;
void *buffer;
char image[BLOCKSIZE];
for(i=0; i<BLOCKSIZE; i++)
image[i] = 0xa2;
posix_memalign(&buffer, BLOCKSIZE, BLOCKSIZE);
memcpy(buffer, image, sizeof(image));
fd = open("/dev/escache0", O_RDWR | O_SYNC);
if (fd == -1) {
printf("open failed");
return -1;
}
write(fd, buffer, BLOCKSIZE);
close(fd);
free(buffer);
return 0;
}
2018年4月10日 星期二
shell script learning
--20180411--
$1:/dev/sdb
for i in $(ls /dev/escache*)
do
find /sys/block/`echo $i|sed 's/\/dev\///g'`/slaves -name `echo $1|sed 's/\/dev\///g'`
if [ $? -eq 0 ] ;then
cache=$(ls /sys/block/`echo $i|sed 's/\/dev\///g'`/slaves |grep -v `echo $1|sed 's/\/dev\///g'`)
/usr/sbin/bcache-super-show /dev/$cache | grep "cache device"
if [ $? -eq 0 ] ;then
echo 1 > /sys/block/$cache/escache/set/stop
fi
fi
done
-- Test --
$1:/dev/sdb
for i in $(ls /dev/escache*)
do
find /sys/block/`echo $i|sed 's/\/dev\///g'`/slaves -name `echo $1|sed 's/\/dev\///g'`
if [ $? -eq 0 ] ;then
cache=$(ls /sys/block/`echo $i|sed 's/\/dev\///g'`/slaves |grep -v `echo $1|sed 's/\/dev\///g'`)
/usr/sbin/bcache-super-show /dev/$cache | grep "cache device"
if [ $? -eq 0 ] ;then
echo 1 > /sys/block/$cache/escache/set/stop
fi
fi
done
[' is actually a program, just like ls and other programs, so it must be surrounded by spaces:keep kernel module symbol table
vim drivers/md/bcache/Makefile:
obj-$(CONFIG_BCACHE) += escache.o
ccflags-y := -O1
escache-y := alloc.o bset.o btree.o closure.o debug.o extents.o\
io.o journal.o movinggc.o request.o stats.o super.o sysfs.o trace.o\
util.o writeback.o
CFLAGS_request.o += -Iblock
obj-$(CONFIG_BCACHE) += escache.o
ccflags-y := -O1
escache-y := alloc.o bset.o btree.o closure.o debug.o extents.o\
io.o journal.o movinggc.o request.o stats.o super.o sysfs.o trace.o\
util.o writeback.o
CFLAGS_request.o += -Iblock
訂閱:
意見 (Atom)
kgdb
--0313-- ken 不好意思 请教一下 之前你有交过我 在没有coredump的情况下 可以用gdb直接载入ko.debug, 然后dis -l register_bcache, 我记得使用方式是不是这样, 不过我现在dis -l出现错误^^" [root@...
-
" Scheduling while atomic " means that a thread has called schedule() during an operation which is supposed to be atomic (ie u...
-
== param sync and buffer == man fio: sync=bool Use synchronous I/O for buffered writes. For the majority of I/...
-
modules dependencies ---> /lib/modules/2.6.31.5-127.fc12.x86_64/modules.dep For example, if /lib/modules/2.6.29/kernel/a.ko dep...