Re: How to determine whether a file was opened O_DIRECT?

From: Eugene Teo
Date: Mon Oct 09 2006 - 04:26:02 EST


Helge Hafting wrote:
> BÃszÃrmÃnyi ZoltÃn wrote:
>> Hi,
>>
>> I would like to run some diagnostics on a database
>> process and I would like to know what flags it used
>> for opening its files. Is there any way to get this info?
>>
>> Thanks in advance,
>> ZoltÃn BÃszÃrmÃnyi
>>
> 1. Look at the source code for the database - if you have it.
> 2. Run your database under strace, then search the voluminous
> output for "open" calls and look at the flags.
> 3. Patch your kernel to "printk" information whenever
> someone opens with O_DIRECT.

$ stap -x PID -e 'probe syscall.open { if (target() == pid()) log(argstr) }' \
| grep O_DIRECT
"/net", O_RDONLY|O_DIRECTORY|O_LARGEFILE|O_NONBLOCK
"/net", O_RDONLY|O_DIRECTORY|O_LARGEFILE|O_NONBLOCK
...

http://www.sourceware.org/systemtap

Eugene
--
eteo redhat.com ph: +65 6490 4142 http://www.kernel.org/~eugeneteo
gpg fingerprint: 47B9 90F6 AE4A 9C51 37E0 D6E1 EA84 C6A2 58DF 8823

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/