Even more slab allocator updates.
[srvx.git] / ChangeLog
index 4f254831d5aff51a7387319f8188074db8a82e79..8a558c9204a48e34464af5756bc1aef01d36f61a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,256 @@
 # arch-tag: automatic-ChangeLog--srvx@srvx.net--2005-srvx/srvx--devo--1.3
 #
 
+2005-02-05 03:52:51 GMT        Michael Poole <mdpoole@troilus.org>     patch-14
+
+    Summary:
+      Even more slab allocator updates.
+    Revision:
+      srvx--devo--1.3--patch-14
+
+    src/slab-alloc.c (SLAB_DEBUG): Default to on.
+    (SMALL_CUTOFF): Fix default value (must be a multiple of 4).
+    (slab_unalloc): Fix slab counting.  When SLAB_RESERVE, allocate the
+    set of pages in a burst, rather than supplementing them as we unmap.
+    (slab_realloc): Fix a rather embarassing (and LARGE) memory leak.
+
+    modified files:
+     ChangeLog src/alloc-slab.c
+
+
+2005-02-04 16:36:40 GMT        Michael Poole <mdpoole@troilus.org>     patch-13
+
+    Summary:
+      more debugging updates
+    Revision:
+      srvx--devo--1.3--patch-13
+
+    src/alloc-slab.c: Switch free slab list from a stack to queue, and
+    make sure there are SLAB_RESERVE in the queue before an old slab is
+    dereferenced.  This causes a fault when dereferencing stale pointers
+    to the last SLAB_RESERVE full slabs.
+    
+    src/log.c: Make struct logEntry *last static, to make sure gcc does
+    not optimize it away.
+
+    modified files:
+     ChangeLog src/alloc-slab.c src/log.c
+
+
+2005-01-31 22:28:59 GMT        Michael Poole <mdpoole@troilus.org>     patch-12
+
+    Summary:
+      More slab allocator updates.
+    Revision:
+      srvx--devo--1.3--patch-12
+
+    src/alloc-slab.c: Disable extra debugging by default.  Add more
+    statistics counters.  Change element type of little_slabs[].  Keep a
+    global list of unused (full) slab pages, rather than per-slab.
+    Various other cleanups and fixes.
+    
+    src/chanserv.h: Can only be off-channel with off_channel > 1.
+    
+    src/main.c: Update years in copyright notice.
+    
+    src/opserv.c: Remove OSMSG_STATS_MEMORY.  Make cmd_stats_memory()
+    allocator-specific.
+
+    modified files:
+     ChangeLog src/alloc-slab.c src/chanserv.h src/main.c
+     src/opserv.c
+
+
+2005-01-31 11:08:15 GMT        Michael Poole <mdpoole@troilus.org>     patch-11
+
+    Summary:
+      Add "?stats memory" and optional alloc_header to slab.
+    Revision:
+      srvx--devo--1.3--patch-11
+
+    src/alloc-slab.c: Add alloc_header (but no redzone) debug support,
+    enabled by default.  Update alloc_count and alloc_size.
+    
+    src/opserv.c: Provide "stats memory" command for slab allocator.
+
+    modified files:
+     ChangeLog src/alloc-slab.c src/opserv.c
+
+
+2005-01-31 05:14:52 GMT        Michael Poole <mdpoole@troilus.org>     patch-10
+
+    Summary:
+      Add slab allocator; reduce delta with srvx-gs.
+    Revision:
+      srvx--devo--1.3--patch-10
+
+    configure.in: Check for getpagesize().  Support --with-malloc=slab.
+    
+    src/Makefile.am: Add alloc-slab.c as an extra source file.
+    
+    src/alloc-srvx.c: Clean up srvx_free() slightly.  Check for previously
+    allocated blocks.
+    
+    srvx.conf.example, src/chanserv.c, src/main.c, src/modcmd.c,
+    src/proto-p10.c: Apply patches to bring closer to srvx-gs branch.
+    
+    src/log.c: Assert and _exit() on fatal log messages.
+    
+    src/opserv.c: Clarify logic for modes to set on join floods.
+    
+    src/proto-common.c: Accept off-channel commands in registered channels.
+
+    new files:
+     src/.arch-ids/alloc-slab.c.id src/alloc-slab.c
+
+    modified files:
+     ChangeLog configure.in src/Makefile.am src/alloc-srvx.c
+     src/chanserv.c src/chanserv.h src/common.h src/hash.h
+     src/helpfile.c src/log.c src/main.c src/modcmd.c src/opserv.c
+     src/proto-common.c src/proto-p10.c srvx.conf.example
+
+
+2005-01-26 21:16:54 GMT        Michael Poole <mdpoole@troilus.org>     patch-9
+
+    Summary:
+      offchannel fixes; more memory verification
+    Revision:
+      srvx--devo--1.3--patch-9
+
+    src/chanserv.c (cmd_register): Do not join channels if the default
+    options include being offchannel.
+    
+    src/common.h: Verify list allocations when appending or removing.
+    
+    src/hash.c (GetUserMode): Verify channel and user list allocations.
+    
+    src/log.c (log_entry_search): Keep pointer to last visited log entry.
+    
+    src/proto-p10.c (mod_chanmode_parse): Fail if trying to change +z when
+    passed MCP_REGISTERED.
+
+    modified files:
+     ChangeLog src/chanserv.c src/common.h src/hash.c src/log.c
+     src/proto-p10.c
+
+
+2005-01-24 17:12:38 GMT        Michael Poole <mdpoole@troilus.org>     patch-8
+
+    Summary:
+      typo fix in alloc-srvx.c; avoid dereferencing free()'d bans
+    Revision:
+      srvx--devo--1.3--patch-8
+
+    src/alloc-srvx.c (srvx_realloc): Fix argument list to srvx_free().
+    
+    src/chanserv.c (find_matching_bans): Make temporary copies of bans to
+    be removed.  Double-check remove count at end of loop.
+    (unban_user, cmd_open): Free the string copies.
+    (cmd_unbanall): Make temporary copies of removed bans and free them.
+    (handle_mode): Likewise.
+    
+    src/opserv.c (cmd_clearbans): Likewise.
+
+    modified files:
+     ChangeLog src/alloc-srvx.c src/chanserv.c src/opserv.c
+
+
+2005-01-24 16:45:44 GMT        Michael Poole <mdpoole@troilus.org>     patch-7
+
+    Summary:
+      More allocation debugging support.
+    Revision:
+      srvx--devo--1.3--patch-7
+
+    src/alloc-srvx.c (srvx_realloc): Reorganize.
+    (verify): New function.
+    
+    src/common.h (verify): Define and/or declare suitably.
+    
+    src/dict-splay.c (dict_splay): Verify node at each iteration.
+    (dict_insert, dict_remove2, dict_find, dict_delete,
+    dict_sanity_check): Verify entire dict.
+    (dict_sanity_check_node): Verify node as valid allocation.
+    
+    src/hash.c (DelChannel): Verify channel before deletion.
+    (GetUserMode): Verify channel, user, and each modeNode.
+    
+    src/mod-sockcheck.c (sockcheck_free_client): Verify client.
+    (sockcheck_timeout_client, sockcheck_advance, sockcheck_readable,
+    sockcheck_connected, sockcheck_begin_test): Likewise.
+    (sockcheck_queue_address): Verify cached sockcheck entries.
+    
+    src/proto-p10.c (DelUser): Verify user before deletion.
+
+    modified files:
+     ChangeLog src/alloc-srvx.c src/common.h src/dict-splay.c
+     src/hash.c src/mod-sockcheck.c src/proto-p10.c
+
+
+2005-01-21 15:10:49 GMT        Michael Poole <mdpoole@troilus.org>     patch-6
+
+    Summary:
+      More debug allocator fixes and enhancements
+    Revision:
+      srvx--devo--1.3--patch-6
+
+    src/alloc-srvx.c (*_MAGIC): ASk recognized the CCSDS ASM sequence.
+    (srvx_free): Overwrite with 0xDE bytes to distinguish from
+    uninitialized values.  As SailorFrag suggested, only overwrite the
+    user region.
+    
+    src/dict-splay.c (dict_insert): Check whether free functions need to
+    be worked around here as well.
+
+    modified files:
+     ChangeLog src/alloc-srvx.c src/dict-splay.c
+
+
+2005-01-21 00:48:35 GMT        Michael Poole <mdpoole@troilus.org>     patch-5
+
+    Summary:
+      Add redzone and statistics reporting to debug allocator.
+    Revision:
+      srvx--devo--1.3--patch-5
+
+    src/alloc-srvx.c (redzone): New variable to detect buffer overwrites.
+    (alloc_count, alloc_size): New variables to track allocation stats.
+    (srvx_malloc, srvx_realloc, srvx_free): Use the above.
+    
+    src/opserv.c (OSMSG_STATS_MEMORY): New translation string.
+    (cmd_stats_memory): New (conditional) command function.
+    (init_opserv): Conditionally provide cmd_stats_memory.
+
+    modified files:
+     ChangeLog src/alloc-srvx.c src/opserv.c
+
+
+2005-01-20 23:41:17 GMT        Michael Poole <mdpoole@troilus.org>     patch-4
+
+    Summary:
+      Add built-in debug malloc wrapper.
+    Revision:
+      srvx--devo--1.3--patch-4
+
+    TODO: Remove the completed TODO item.
+    
+    configure.in: Add --with-malloc=srvx support.
+    
+    src/Makefile.am: Add alloc-srvx.c to extra sources.
+    
+    src/common.h: Reindent debug malloc directives; add directives for
+    WITH_MALLOC_SRVX.
+    
+    src/dict-splay.c: Kludge around free() as macro vs function.
+
+    new files:
+     src/.arch-ids/alloc-srvx.c.id src/alloc-srvx.c
+
+    modified files:
+     ChangeLog TODO configure.in src/Makefile.am src/common.h
+     src/dict-splay.c
+
+
 2005-01-20 22:51:54 GMT        Michael Poole <mdpoole@troilus.org>     patch-3
 
     Summary: