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>