1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00
freebsd/sys/fs
Nate Lawson 4cdb148352 The mbnambuf routines combine multiple substrings into a single
long filename.  Each substring is indexed by the windows ID, a
sequential one-based value.  The previous code was extremely slow,
doing a malloc/strcpy/free for each substring.

This code optimizes these routines with this in mind, using the ID
to index into a single array and concatenating each WIN_CHARS chunk
at once.  (The last chunk is variable-length.)

This code has been tested as working on an FS with difficult filename
sizes (255, 13, 26, etc.)  It gives a 77.1% decrease in profiled
time (total across all functions) and a 73.7% decrease in wall time.
Test was "ls -laR > /dev/null".

Per-function time savings:
mbnambuf_init:  -90.7%
mbnambuf_write: -18.7%
mbnambuf_flush: -67.1%

MFC after:	1 month
2005-03-11 23:27:45 +00:00
..
cd9660 Conditionalize cd9660 chattiness regarding the nature of the file system 2005-02-18 10:49:55 +00:00
coda Replace the workaround for a deadlock bug in Coda with a different 2005-02-20 23:01:57 +00:00
deadfs Introduce vx_wait{l}() and use it instead of home-rolled versions. 2005-02-17 10:49:51 +00:00
devfs One more bit of the major/minor patch to make ttyname happy as well. 2005-03-10 18:49:17 +00:00
fdescfs Make fdesc_root static 2005-02-10 12:09:15 +00:00
fifofs
hpfs Make a bunch of malloc types static. 2005-02-10 12:02:37 +00:00
msdosfs The mbnambuf routines combine multiple substrings into a single 2005-03-11 23:27:45 +00:00
ntfs make M_NTFSMNT and ntfs_calccfree() static 2005-02-10 12:09:49 +00:00
nullfs Introduce vx_wait{l}() and use it instead of home-rolled versions. 2005-02-17 10:49:51 +00:00
nwfs vp->v_id is a private field for the vfs namecache and it is a big mistake 2005-02-22 15:06:30 +00:00
portalfs
procfs
pseudofs Avoid a couple of mutex operations in the process exit path for the 2005-03-01 12:20:49 +00:00
smbfs vp->v_id is a private field for the vfs namecache and it is a big mistake 2005-02-22 15:06:30 +00:00
udf Remove basically unused root_vp pointer in udfmount. 2005-02-18 11:47:51 +00:00
umapfs
unionfs remove dead code 2005-02-22 19:02:24 +00:00