Messages in this thread | | | Date | Sun, 24 Jul 2005 06:16:04 -0700 (PDT) | From | li nux <> | Subject | ext2: buffer_head usage with and without O_DIRECT |
| |
This is with respect to 2.4.28 on http://lxr.linux.no/source/?v=2.4.18
When i do read/write on ext2 without opening files with O_DIRECT, i can see buffer_head constantly increasing in /proc/slabinfo.
But when I open files with O_DIRECT, the i/o is done without using buffer_head, /proc/slabinfo shows this as constant throughout the i/o. There is no other i/o activity on the box.
Stacks below show that both of them creates buffer_head's. Any idea why this is happening ?
As per the code, Without O_DIRECT, stack is: (See fs/buffer.c) submit_bh_rsector submit_bh block_read_full_page (This calls create_buffers to create buffer_head's) ext2_readpage do_generic_file_read generic_file_new_read generic_file_read
With O_DIRECT: brw_kiovec (This creates buffer_head's) generic_direct_sector_IO (cals prepare_direct_IO_iobuf) ext2_direct_IO generic_file_direct_IO generic_file_new_read generic_file_read
-Thanks.
____________________________________________________ Start your day with Yahoo! - make it your home page http://www.yahoo.com/r/hs - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |