How can I find which process is causing this IO read (tried iotop already)

http://www.linuxinsight.com/proc_sys_vm_block_dump.html

Set vm.block_dump for a second, and then turn it off immediately (sysctl -w ... ; sleep 1; sysctl -w ...). dmesg then reveals all the low-down.


As you already used iotop,I am not sure how much this is useful,but you can use systemtap like

stap -v iotop.stp

and it will give you output

     Process       KB Read  KB Written
        Xorg            21           0
       crond            10           0
       wfica             2           0

try with process accounting.

tools like atop in pair with process accounting will be able to show you what processes are using the disk I/O the most.

you can also check "sa" command line tool to interpret process accounting info and sort processes by (average)number of I/O operations