Closed fff7d1bc closed 9 years ago
Hi, thank you for reporting issue. It seems that you are trying to run it as a user 'piotr'. Make sure that you have read/write permissions to directory /dev/shm/io_cache/. If it would not work, send me please strace output of command.
Hello,
I do have permissions there. I also saw failing creat() for /dev/shm/io_cache//libiorouter/3794.stats so if I create the libiorouter dir under CACHEDIR manually, the stats and jounral files are created and never removed.
The full strace log of /bin/cat with libiorouter.so:
LD_PRELOAD=/home/piotr/src/libiorouter/libiorouter.so strace -f /bin/cat /home/piotr/bar
execve("/bin/cat", ["/bin/cat", "/home/piotr/bar"], [/* 79 vars */]) = 0
brk(0) = 0x1718000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f33d5d8c000
open("/home/piotr/src/libiorouter/libiorouter.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "177ELF21100000000030>01000300%000000"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0700, st_size=70968, ...}) = 0
mmap(NULL, 2143120, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f33d5960000
mprotect(0x7f33d596a000, 2093056, PROT_NONE) = 0
mmap(0x7f33d5b69000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x7f33d5b69000
mmap(0x7f33d5b6b000, 912, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f33d5b6b000
close(3) = 0
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=147300, ...}) = 0
mmap(NULL, 147300, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f33d5d68000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "177ELF21130000000030>01000p1200000"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1705856, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f33d5d67000
mmap(NULL, 3813312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f33d55bd000
mprotect(0x7f33d5756000, 2097152, PROT_NONE) = 0
mmap(0x7f33d5956000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x199000) = 0x7f33d5956000
mmap(0x7f33d595c000, 16320, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f33d595c000
close(3) = 0
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "177ELF21100000000030>0100034016000000"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14416, ...}) = 0
mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f33d53b9000
mprotect(0x7f33d53bb000, 2097152, PROT_NONE) = 0
mmap(0x7f33d55bb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f33d55bb000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f33d5d66000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f33d5d65000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f33d5d64000
arch_prctl(ARCH_SET_FS, 0x7f33d5d65700) = 0
mprotect(0x7f33d5956000, 16384, PROT_READ) = 0
mprotect(0x7f33d55bb000, 4096, PROT_READ) = 0
mprotect(0x7f33d5b69000, 4096, PROT_READ) = 0
mprotect(0x60b000, 4096, PROT_READ) = 0
mprotect(0x7f33d5d8d000, 4096, PROT_READ) = 0
munmap(0x7f33d5d68000, 147300) = 0
getpid() = 3794
open("/proc/3794/comm", O_RDONLY) = 3
read(3, "catn", 4096) = 4
close(3) = 0
brk(0) = 0x1718000
brk(0x1739000) = 0x1739000
open("/etc/localtime", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2705, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=2705, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f33d5d8b000
read(3, "TZif2000000000000000000v000v0000"..., 4096) = 2705
lseek(3, -1707, SEEK_CUR) = 998
read(3, "TZif2000000000000000000v000v0000"..., 4096) = 1707
close(3) = 0
munmap(0x7f33d5d8b000, 4096) = 0
socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = 0
sendto(3, "<11>Jul 16 12:42:23 cat: libioro"..., 54, MSG_NOSIGNAL, NULL, 0) = 54
sendto(3, "<11>Jul 16 12:42:23 cat: libioro"..., 157, MSG_NOSIGNAL, NULL, 0) = 157
sendto(3, "<11>Jul 16 12:42:23 cat: libioro"..., 111, MSG_NOSIGNAL, NULL, 0) = 111
sendto(3, "<11>Jul 16 12:42:23 cat: libioro"..., 85, MSG_NOSIGNAL, NULL, 0) = 85
sendto(3, "<11>Jul 16 12:42:23 cat: libioro"..., 75, MSG_NOSIGNAL, NULL, 0) = 75
sendto(3, "<11>Jul 16 12:42:23 cat: libioro"..., 65, MSG_NOSIGNAL, NULL, 0) = 65
sendto(3, "<11>Jul 16 12:42:23 cat: libioro"..., 69, MSG_NOSIGNAL, NULL, 0) = 69
sendto(3, "<11>Jul 16 12:42:23 cat: libioro"..., 141, MSG_NOSIGNAL, NULL, 0) = 141
sendto(3, "<11>Jul 16 12:42:23 cat: libioro"..., 55, MSG_NOSIGNAL, NULL, 0) = 55
creat("/dev/shm/io_cache//libiorouter/3794.stats", 0646) = -1 ENOENT (No such file or directory)
rt_sigaction(SIGTTIN, {0x7f33d59626fe, [TTIN], SA_RESTORER|SA_RESTART, 0x7f33d55f0b80}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTTOU, {0x7f33d596273c, [TTOU], SA_RESTORER|SA_RESTART, 0x7f33d55f0b80}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGURG, {0x7f33d59626c0, [URG], SA_RESTORER|SA_RESTART, 0x7f33d55f0b80}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGPROF, {0x7f33d59631e9, [PROF], SA_RESTORER|SA_RESTART, 0x7f33d55f0b80}, {SIG_DFL, [], 0}, 8) = 0
open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=2207776, ...}) = 0
mmap(NULL, 2207776, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f33d519d000
close(4) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
access("/dev/shm/io_cache//home/piotr/bar.whiteout", F_OK) = -1 ENOENT (No such file or directory)
open("/home/piotr/bar", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0600, st_size=4, ...}) = 0
fadvise64(4, 0, 0, POSIX_FADV_SEQUENTIAL) = 0
mmap(NULL, 139264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f33d5d6a000
read(4, "foon", 131072) = 4
write(1, "foon", 4foo
) = 4
read(4, "", 131072) = 0
munmap(0x7f33d5d6a000, 139264) = 0
close(4) = 0
close(1) = 0
close(2) = 0
exit_group(0) = ?
+++ exited with 0 +++
ultimately I'd like to use libiorouter with gcc, that uses some headers and libs from NFS share which have huge impact on performance.
Okey so it seems to be filling system logger with useful info.
I have to setup LIBIOR_IO to on and not yes, the readme is wrong on this one. With LIBIOR_IO=on it does works.
Sorry for misleading README, I have fixed that.
Let me know if you need anything in case it does not work as expected.
Hi,
libiorouter does not seems to work at all here.
I've set env variable LIBIOR_IO=yes, I have also modified libiorouter.h:
then I've been testing few random binaries like sh, cat or vim with LD_PRELOAD set on the new libiorouter.so, no cache has been created in /dev/shm/io_cache/, also I've notice multiple failures while opening /dev/shm/io_cache//libiorouter. After manually creating it some .stats and .journal has been created there.
When checking on /home/piotr/.zshrc one of .stats files does indeed contain
However there seems to not be any cache in /dev/shm/io_cache/ at all.