freebsd-nq/sys
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
..
alpha Remove dead code. 2005-03-07 02:18:52 +00:00
amd64 Remove diffs to i386 version that came in via the compiler support ifdefs. 2005-03-11 22:16:09 +00:00
arm Fixup KTR traces. 2005-03-08 14:49:05 +00:00
boot Don't try to use 'typedef struct foo' if just 'struct foo' makes more sense 2005-03-07 15:38:37 +00:00
bsm Add a stub audit_kevents.h, which defines exactly one audit event: 2005-02-02 14:27:36 +00:00
cam Reference a pointer correctly when copying to it's location. 2005-02-21 00:28:36 +00:00
coda Replace the workaround for a deadlock bug in Coda with a different 2005-02-20 23:01:57 +00:00
compat Add kernel-only flag MSG_NOSIGNAL to be used in emulation layers to surpress 2005-03-08 16:11:41 +00:00
conf just use crypto/rijndael 2005-03-11 17:58:24 +00:00
contrib Move all of the hptmv files to /sys/dev/hptmv so that they won't be mistaken 2005-03-02 05:14:28 +00:00
crypto gbde(8) is also rejndael user. 2005-03-11 22:07:04 +00:00
ddb Start each of the license/copyright comments with /*- 2005-01-06 01:34:41 +00:00
dev Adding missing module dependency. This should fix the undefined symbol 2005-03-11 16:15:43 +00:00
doc
fs The mbnambuf routines combine multiple substrings into a single 2005-03-11 23:27:45 +00:00
gdb /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 18:27:30 +00:00
geom stop including rijndael-api-fst.h from rijndael.h. 2005-03-11 15:42:51 +00:00
gnu Remove debug printout of major/minor numbers, print name instead. 2005-02-27 21:16:26 +00:00
i4b /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 22:18:23 +00:00
i386 Whitespace sync with amd64. (Rather than re-add the extra blank lines 2005-03-11 22:10:25 +00:00
ia64 Remove dead code. 2005-03-07 02:18:52 +00:00
isa Whitespace sync with amd64. (Rather than re-add the extra blank lines 2005-03-11 22:10:25 +00:00
isofs/cd9660 Conditionalize cd9660 chattiness regarding the nature of the file system 2005-02-18 10:49:55 +00:00
kern First step in simplifying accept filter socket option logic in the 2005-03-11 21:37:45 +00:00
libkern Add strspn() to libkern. 2005-02-10 20:39:39 +00:00
modules reorder ath_rate_onoe to after ath_rate_sample so it gets used as the 2005-03-11 19:40:34 +00:00
net When neither of supported frame type is enabled via kernel options enable 2005-03-06 23:03:58 +00:00
net80211 honor any desired bssid when creating an ibss 2005-03-08 17:04:14 +00:00
netatalk When generating a phase II ARP lookup from aarpwhohas(), use a 2005-02-22 14:37:22 +00:00
netatm In the current world order, solisten() implements the state transition of 2005-02-21 21:58:17 +00:00
netgraph Fix getting stats from many links with index > 0. 2005-03-11 10:29:38 +00:00
netinet Add antifootshooting workaround, which will make all routes "connected" 2005-03-10 15:26:45 +00:00
netinet6 refer opencrypto/cast.h directly. 2005-03-11 12:37:07 +00:00
netipsec correct space check 2005-03-09 15:28:48 +00:00
netipx Marginally reformat my copyright statement to remove the spurious ','. 2005-03-10 14:19:31 +00:00
netkey fixed an unexpected addr/port matching failure in IPv6 SA management 2005-01-10 13:06:42 +00:00
netnatm Mark netatm and netnatm explicitly as requiring Giant, as they still do. 2005-02-17 14:21:22 +00:00
netncp avoid potential null ptr derefs 2005-02-23 22:44:38 +00:00
netsmb /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
nfs /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
nfs4client Follow v_id changes in NFSv[23] 2005-02-22 15:15:28 +00:00
nfsclient Minor cleanup in nfs_request() and removal of a comment that doesn't 2005-02-26 18:55:36 +00:00
nfsserver Don't try to create vnode_pager objects on other filesystems vnodes, 2005-01-24 22:09:13 +00:00
opencrypto just use crypto/rijndael, and nuke opencrypto/rindael.[ch]. 2005-03-11 17:24:46 +00:00
pc98 Backout revision 1.20. I was a misunderstanding. 2005-03-10 13:07:32 +00:00
pccard Remove more deadwood that never got implemented in NEWCARD, since NEWCARD 2005-02-15 02:54:53 +00:00
pci Bugger, wiped out a needed comma in the previous commit. 2005-03-09 00:54:55 +00:00
posix4 /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
powerpc Replaced previous hw.physmem extraction with des's mods to 2005-03-07 07:31:20 +00:00
rpc /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
security Remove an accidental clearing of the new label pointer on a system V 2005-02-24 16:08:41 +00:00
sparc64 Declare as volatile the memory location referenced by a pointer rather than 2005-03-06 20:57:08 +00:00
sys Make MSG_NOSIGNAL available to native programs. 2005-03-09 00:17:33 +00:00
tools Add VOP_FOO_APV() which takes a pointer to the vop_vector. 2005-02-08 12:54:32 +00:00
ufs - Fix anoter dyslexic moment; an atomic_set_int should've become ACTIVESET, 2005-03-01 07:38:45 +00:00
vm Revert the first part of revision 1.114 and modify the second part. On 2005-02-24 06:13:01 +00:00
Makefile When building cscopnamefile, default architecture to ${MACHINE}, not i386. 2005-03-08 00:09:41 +00:00