This is the mail archive of the cygwin-developers mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cygwin Filesystem Performance degradation 1.7.5 vs 1.7.7, and methods for improving performance


Hi,

What's really strange is the fact that the non-GENERIC_READ version is
noticable *slower* when accessing a Samba share.  I checked the access
with sysinternal's Procmon, but apart from the different acesss flags,
eveything else is identical.  Very strange, that.

I didn't apply the patch for now, just attached it here.  Maybe I did
something wrong?!?

Here's a quick guess on what the problem may be:
---------------------------------------------------------------
For local shares (non-network shares: NTFS, FAT, UDFS), opening a non-GENERIC_READ handle should be cheap, since the FS driver does not really need to "open" the file's data. So we saw in the perf-tests this is around 0.02ms.


For network shares (SAMBA), opening any handle, even a non-GENERIC_READ handle requires a round-trip to the SAMBA server over the network. This could easily be 1ms for LAN (and much much more for WAN). And only after you have the handle you can query it. So thats what the "open network file information" structures and APIs are: for network shares that the additional round-trip for CreateFile/CloseFile makes it slower.
---------------------------------------------------------------


If so, what is needed is that lstat() will do QIF/QDF() for local shares, and QAF() for network shares.
If so - the information on the volume per-lstat() request is already available in cygwin.


Derry


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]