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,

> It doesn't matter anyway.  If you don't fetch st_nlink to recognize
> files with more than one link, then st_ino doesn't matter anymore
> and it can also just be a hash value.  What does it mean to have
> two files with the same inode number on the same device, both having
> a link count of 1?  A broken filesystem?

Fact is that st_nlink usage is very rare.

And these below examples show it.

So why do some applications such as below have st_ino but no st_nlink? because they use st_ino as a shortcut for checking whether the file is the same ('fast path') - and if the ino is not the same, they do a slow path file compare.

Derry

On 10/4/2010 12:28 PM, Corinna Vinschen wrote:
On Oct 3 23:57, Derry Shribman wrote:
Hi,

BZZZT.  Thanks for playing.
	find cvs-1.12.13 -type f | xargs grep 'st_ino'
shows 35 different uses of the st_ino member of struct stat.

grep st_nlink: zero results.


	find make-3.81 -type f | xargs grep 'st_ino' |wc
shows 11 different uses of the st_ino member of struct stat.

grep st_nlink: zero results.


st_ino information IS retrieved.

See Yoni's post of the cygtest.c application to test the stat()
performance: It calls NtQueryDirectoryFile() with
FILE_ID_BOTH_DIR_INFO, at st_ino is in fdi.FileId field.

It doesn't matter anyway. If you don't fetch st_nlink to recognize files with more than one link, then st_ino doesn't matter anymore and it can also just be a hash value. What does it mean to have two files with the same inode number on the same device, both having a link count of 1? A broken filesystem?


Corinna




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