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,

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.


Derry

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.



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