Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Apr 2017 17:37:36 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-standards@FreeBSD.org
Subject:   [Bug 218622] libc/gen/telldir [hack-n-PATCH] performance limited to O(n) vs file count, O(n^2) against samba ls workload
Message-ID:  <bug-218622-15-vxmFToRCsm@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-218622-15@https.bugs.freebsd.org/bugzilla/>
References:  <bug-218622-15@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218622

--- Comment #2 from John Baldwin <jhb@FreeBSD.org> ---
So this wasn't purely about standards@ compliance, but there was actual
software that was broken on FreeBSD because of this (it might have involved
using telldir() on a large directory accessed via NFS where the client brok=
e.=20
If it's the thing I'm thinking of then you would have an 'ls' on a large NFS
directory that would never complete).  The larger fix is to change
getdirentries() to report a valid seek location with each 'struct dirent'.=
=20
That depends on changing the contents of 'struct dirent' which is a non-tri=
vial
thing to do, but is included in the ongoing 'ino64' work.  Once that is in
place you don't need the telldir cookies at all.  One thing you could do for
now is replace the linear O(n) search with something better like a tree that
you can do a binary search on.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-218622-15-vxmFToRCsm>