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

Derry Shribman
Wed Sep 29 18:33:00 GMT 2010


xstat() is a new Linux system call that allows a user-mode application to 
specifically request more (or less) stat information.

Since this is a new Linux API, it requires porting for existing Unix application 
to replace every single stat() calls in their code to xstat() in order to 
benefit from this API.

This is quite a big change in the code - and application maintainers will not 
rush to change their code until this new Linux kernels with this API are 
commonly installed.

So it does not fit what Cygwin needs because:
1) it requires a lot of change to existing code of every single application.
2) it will take many years until it will be available on most of the installed 
Linux kernel images.


On 9/29/2010 8:05 PM, Larry Hall (Cygwin Developers) wrote:
> On 9/29/2010 1:53 PM, Derry Shribman wrote:
>> Hi,
>> The xstat() is useless for the target of improving performance: it will takes
>> YEARS after Linux kernel will implement it until typical unix applications
>> will use it all around their code - just like other 'relativly new' kernel
>> APIs like epoll() took years until unix applications started adopting them.
>> Do we want Cygwin to be slow for another 10 years?!
>> The env variable is a practical immediate way to improve performance with
>> very little effort.
> I'm confused by your line of argument here. Weren't you advocating that
> application writers could use the environment variable to get the performance
> they wanted from Cygwin? If so, why wouldn't xstat() be just as useful to
> those same developers once it's available in Cygwin? Let's assume that
> Cygwin implements it once the API is settled and that this is measured on
> the order of months rather than years. Cygwin certainly uses Linux as a
> guideline for what it supports but it's not bound by that.

More information about the Cygwin-developers mailing list