目次
パッケージインストール、ビルド
takayuki@ubuntu3:~/repos/libfuse/build$ sudo apt install meson
takayuki@ubuntu3:~/repos$ git clone https://github.com/libfuse/libfuse.git
takayuki@ubuntu3:~/repos/libfuse$ mkdir build
takayuki@ubuntu3:~/repos/libfuse$ cd build/
takayuki@ubuntu3:~/repos/libfuse/build$ meason
takayuki@ubuntu3:~/repos/libfuse/build$ meson configure -D disable-mtab=true
takayuki@ubuntu3:~/repos/libfuse/build$ ninja
サンプル実行
exampleディレクトリに移動して、root権限でサンプルを実行する。今回はsystemcallをパススルーするだけのpassthrough_llを使用する。
takayuki@ubuntu3:~/repos/libfuse/build/example$ sudo ./passthrough_ll /mnt/fuse
ftraceを有効化する
root@ubuntu3:/home/takayuki/repos/libfuse/build/example# cd /sys/kernel/debug/tracing
root@ubuntu3:/sys/kernel/debug/tracing# echo function_graph > current_tracer
root@ubuntu3:/sys/kernel/debug/tracing# echo 1 > /sys/kernel/debug/tracing/options/function-trace
root@ubuntu3:/sys/kernel/debug/tracing# cat /sys/kernel/debug/tracing/trace
root@ubuntu3:/sys/kernel/debug/tracing# echo 0 > trace
root@ubuntu3:/sys/kernel/debug/tracing# dd if=/dev/zero of=/mnt/fuse/test oflag=sync count=1 bs=1K
1+0 records in
1+0 records out
1024 bytes (1.0 kB, 1.0 KiB) copied, 0.038069 s, 26.9 kB/s
root@ubuntu3:/sys/kernel/debug/tracing# cat trace
trace trace_clock trace_marker trace_marker_raw trace_options trace_pipe trace_stat/
root@ubuntu3:/sys/kernel/debug/tracing# cat trace > /tmp/ftrace_write.txt