linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ext4 not currently doing (much) multi-block allocation?
@ 2009-02-15  5:32 Theodore Tso
  2009-02-15 11:05 ` Aneesh Kumar K.V
  0 siblings, 1 reply; 6+ messages in thread
From: Theodore Tso @ 2009-02-15  5:32 UTC (permalink / raw)
  To: Aneesh Kumar K.V, linux-ext4

So I was looking at the ext4 code to see how hard it would be to add a
function that would take a struct inode *, and make sure that all of
the pages in the page cache had been allocated a physical block on
disk (but not necessarily writing the I/O to disk).  The idea would be
to do this on close if the file had been truncated or opened with
O_TRUNC, and to also call this function if the inode had been renamed
and in the process a destination inode was freed.  That way if we have
data=ordered, the blocks would be allocated, and at the next commit,
we would force the data blocks to disk.

While I was looking at the code, it looks to me like we are currently
only allocating a page at a time; ext4_da_writepages() may end up
allocating a number of pages, but it's doing it one page at a time,
not an extent at a time.  So if the filesystem blocksize is 4k (and
the page size is 4k), the only time we will ever call the mballoc with
an allocation request greater than 1 is in the fallocate() system call
handler.   This seems... non-optimal.   Am I missing something?

	   		 		     - Ted



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-02-15 21:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-15  5:32 ext4 not currently doing (much) multi-block allocation? Theodore Tso
2009-02-15 11:05 ` Aneesh Kumar K.V
2009-02-15 13:36   ` Theodore Tso
2009-02-15 17:36     ` Aneesh Kumar K.V
2009-02-15 19:37       ` Eric Sandeen
2009-02-15 21:12       ` Theodore Tso

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).