On 04/22/2011 11:06 AM, Andreas Dilger wrote:
Sure, there are lots of wasted syscalls, but in this case the cost of doing 
extra SEEK_DATA and SEEK_HOLE operations may be fairly costly. This involves 
scanning the whole disk layout, possibly over a network, which might need tens 
or hundreds of disk seeks to read the metadata, unlike regular SEEK_SET.

Even SEEK_END is somewhat costly on a network filesystem, since the syscall 
needs to lock the file size in order to determine the end of the file, which 
can block other threads from writing to the file.

So while I agree that the Linux mantra that "syscalls are cheap" is true if 
those syscalls don't actually do any work, I think it also ignores the cost of what some 
syscalls need to do behind the scenes.

You have a point. I was just reviewing the possible patch for ocfs2
and it looks heavy.

One option is to scrap SEEK_* and make another syscall llfind() with FIND_*.
Or, do both.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to