global in_process global writers global last global seeks probe kernel.function("__log_wait_for_space@fs/jbd/checkpoint.c") { printf("%d ext3 waiting for space\n", pid()) p = pid() writers[p] = 0 in_process[p] = 1 last[p] = 0 seeks[p] = 0 } probe kernel.function("__log_wait_for_space@fs/jbd/checkpoint.c").return { p = pid() in_process[p] = 0 printf("%d ext3 done waiting for space total wrote %d blocks seeks %d\n", p, writers[p], seeks[p]) } probe kernel.function("submit_bh") { p = pid() in_proc = in_process[p] if (in_proc != 0) { writers[p] += 1 block = $bh->b_blocknr last_block = last[p] diff = 0 if (last_block != 0) { if (last_block < block && block - last_block > 16) { diff = block - last_block } if (last_block > block && last_block - block > 16) { diff = last_block - block } } last[p] = block if (diff != 0) { printf("seek log write pid %d last %d this %d diff %d\n", p, last_block, block, diff); seeks[p] += 1 } } }