git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC/PATCH v2 1/1] cygwin: Add fast_lstat() and fast_fstat() functions

From
Mark Levedahl <mlevedahl@gmail.com>
Date
Jul 19, 2013, 15:34 UTC
Message-ID
<51E95C6D.9030806@gmail.com>
In-Reply-To
<7vd2qf1m2s.fsf@alter.siamese.dyndns.org>
On 07/18/2013 07:32 PM, Junio C Hamano wrote:
Show 26 quoted lines
> Mark Levedahl <mlevedahl@gmail.com> writes:
>
>> Unlike the results on the fast Win7 laptop, the above show
>> statistically significant slow down from the fast_lstat approach. I'm
>> just not seeing a case for the special case handling, and of course
>> Junio has already voted with his preference of removing the special
>> case stuff as well.
> Please don't take what I said as any "vote" in this thread.  I do
> not have a first-hand data to back anything up.
>
> I was primarily trying to see my understanding of the consensus of
> the thread was correct. If we can do without s/lstat/fast_lstat/
> almost everywhere in the codebase, of course, I would be happier, as
> it would give us one less thing to worry about.
>
> If the assumptions like "they were declining minority and only lose
> population over time", "it is easy for them to revert the removal
> and keep going", and "removal will not hurt them too much in the
> first place, only a few hundred milliseconds", that might trump the
> longer-term maintainability issue, and we may end up having to carry
> that win32 stat implementation a bit longer until these users all
> switch to Cygwin 1.7, but judging from the "cvs binary seems to be
> built incorrectly" incident the other day, it might be the case some
> users still hesitate to update, fearing that 1.7 series may not be
> solid enough, perhaps?
>

I cannot say how many users of 1.5 exist. I see no evidence of 1.5 users on the Cygwin lists, the developers noted a total of 14 downloads of the 1.5 installer in the year prior to removal of 1.5 from the mirrors. The stated reason for keeping 1.5 available for four years after its development stopped was support of older Windows variants (which Microsoft dropped support of before Cygwin did, BTW). But, none of this is conclusive about the current relevance of v 1.5.

The status as I understand things:
1) The existing schizophrenic stat on master is incompatible with the 
new reference api on pu, therefore some change is required.
2) Ramsay has graciously provided two separate patches to address the 
above, one reverting to use only of cygwin stat/lstat, one including a 
fast_lstat that should provide better speed at the expense of POSIX 
compliance.
3) We have conflicting reports about the speed of the second patch: 
Ramsay shows a good speed up on Cygwin 1.5, with slight performance 
regrets on MINGW, no change on Linux. I found no effect on a current 
bare-metal Window 7 installation using Cygwin 1.7, but degradation on a 
virtualized WinXP installation using Cygwin 1.7. Ramsay also showed a 
significant performance difference between running from the git tree vs 
being installed, I looked for this effect but failed to replicate it.

The maintenance argument between the two patches is clear, the performance argument less so. Perhaps others can help clarify this.

Mark
Previous: Junio C HamanoNext: Mark Levedahl
Message 12 of 16 in “cygwin: Add fast_lstat() and fast_fstat() functions”
  1. 1/1 cygwin: Add fast_lstat() and fast_fstat() functionsRamsay Jones, Jul 10, 2013
  2. Mark LevedahlJul 14, 2013
  3. Junio C HamanoJul 15, 2013
  4. Torsten BögershausenJul 16, 2013
  5. Mark LevedahlJul 16, 2013
  6. Dmitry PotapovJul 16, 2013
  7. Mark LevedahlJul 16, 2013
  8. Ramsay JonesJul 18, 2013
  9. Torsten BögershausenJul 18, 2013
  10. Mark LevedahlJul 18, 2013
  11. Junio C HamanoJul 18, 2013
  12. Mark LevedahlJul 19, 2013
  13. Mark LevedahlJul 16, 2013
  14. Ramsay JonesJul 16, 2013
  15. Mark LevedahlJul 16, 2013
  16. Junio C HamanoJul 18, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.