Does with-aio-support work?

Yuehai Xu yuehaixu at gmail.com
Thu Aug 19 18:26:14 MDT 2010


On Thu, Aug 19, 2010 at 11:39 AM, Volker Lendecke
<Volker.Lendecke at sernet.de> wrote:
> On Thu, Aug 19, 2010 at 09:43:37AM -0400, Yuehai Xu wrote:
>> Since the processes in the client are very simple program that I
>> write, they just read data with certain stride size, so, the
>> asynchronous from client should work. Is it because I use cifs to
>> mount the directory from samba server so that no asynchronous requests
>> are found? You have said I need to look at the specific docs when
>> cifsfs is used, but the client is also running in Linux, is it
>> different that I use smbclient to read data or mount with cifsfs and
>> then read?
>
> Yes, using a cifs mountpoint is different from using
> smbclient. I would have to look into the network traces to
> see whether cifs can multiplex different processes in a way
> that requests are sent out in parallel. I would hope it does
> so, but I'm pretty certain that for example smbfs does not
> do that, neither does smbclient before version 3.2.
>

Can you please tell me how to trace it by monitoring the network, how
to do you know which requests are from which clients? Here, I might
misunderstand the definition of client, does it mean a process(running
smbclient) or a machine? Because I know the IP address can help me to
know where the requests are from, but, if several processes send
requests concurrently from a single machine, how can you differentiate
them?


>> In my opinion, because smbd might handle several clients at the same
>> time, so, dispatching the requests from different clients
>> asynchronously does make sense because it is no need for one client to
>> wait for the completion of request from another client.
>
> This right now is being taken care of by the fact that Samba
> uses a process per client.
>

Here, I am still a little puzzled about the definition of "client",
smbclient? or machine?

>> Should this be the motivation to use libaio?
>
> We're not using libaio, we're using the glibc async io
> facilities. Async I/O is just not supported propely in the
> Linux kernel, this has to be done in user space with
> multiple threads or processes.

Thanks,
Yuehai


More information about the samba-technical mailing list