Re: slow open() calls and o_nonblock

From: John Stoffel
Date: Mon Jun 04 2007 - 10:17:59 EST


>>>>> "Aaron" == Aaron Wiebe <epiphani@xxxxxxxxx> writes:

Aaron> On 6/4/07, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
>>
>> > Now, I'm a userspace guy so I can be pretty dense, but shouldn't a
>> > call with a nonblocking flag return EAGAIN if its going to take
>> > anywhere near 415ms?
>>
>> Violation of causality. We don't know it will block for 415ms until 415ms
>> have elapsed.

Aaron> Understood - but what I'm getting at is more the fact that
Aaron> there really doesn't appear to be any real implementation of
Aaron> nonblocking open(). On the socket side of the fence, I would
Aaron> consider a regular file open() to be equivalent to a connect()
Aaron> call - the difference obviously being that we already have a
Aaron> handle for the socket.

Aaron> The end result, however, is roughly the same. We have a file
Aaron> descriptor with the endpoint established. In the socket world,
Aaron> we assume that a nonblocking request will always return
Aaron> immediately and the application is expected to come back around
Aaron> and see if the request has completed. Regular files have no
Aaron> equivalent.

So how many files are in the directory where you're seeing the delays?
And what's the average size of the files in there?

John
-
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/