Commit Graph

14 Commits

Author SHA1 Message Date
Kevin P. Fleming
d10c4137fb fix some minor issues with rev 144924
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@144925 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-09-27 15:13:30 +00:00
Kevin P. Fleming
a07df230fa simplify calculation
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@129967 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-11 14:14:52 +00:00
Kevin P. Fleming
043c97235c fix a flaw found while experimenting with structure alignment and padding; low-fence checking would not work properly on 64-bit platforms, because the compiler was putting 4 bytes of padding between the fence field and the allocation memory block
added a very obvious runtime warning if this condition reoccurs, so the developer who broke it can be chastised into fixing it :-)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@129966 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-07-11 14:03:52 +00:00
Russell Bryant
fd7bc75ce9 Remove a lock that doesn't make any sense. The regions lock needs to be held
when traversing the list of allocated chunks so that they can be printed out
to the CLI.
(Thanks to eliel on #asterisk-dev for pointing this out!)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@87373 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-29 19:21:06 +00:00
Tilghman Lesher
992f4d1aeb Minor FreeBSD build fix
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@86787 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-10-22 17:38:13 +00:00
Russell Bryant
2f41cceb1f Add some improvements to lock debugging. These changes take effect
with DEBUG_THREADS enabled and provide the following:

 * This will keep track of which locks are held by which thread as well as
   which lock a thread is waiting for in a thread-local data structure.  A
   reference to this structure is available on the stack in the dummy_start()
   function, which is the common entry point for all threads.  This information
   can be easily retrieved using gdb if you switch to the dummy_start() stack
   frame of any thread and print the contents of the lock_info variable.

 * All of the thread-local structures for keeping track of this lock information
   are also stored in a list so that the information can be dumped to the CLI
   using the "core show locks" CLI command.  This introduces a little bit of a
   performance hit as it requires additional underlying locking operations
   inside of every lock/unlock on an ast_mutex.  However, the benefits of
   having this information available at the CLI is huge, especially considering
   this is only done in DEBUG_THREADS mode.  It means that in most cases where
   we debug deadlocks, we no longer have to request access to the machine to
   analyze the contents of ast_mutex_t structures.  We can now just ask them
   to get the output of "core show locks", which gives us all of the information
   we needed in most cases.

I also had to make some additional changes to astmm.c to make this work when
both MALLOC_DEBUG and DEBUG_THREADS are enabled.  I disabled tracking of one
of the locks in astmm.c because it gets used inside the replacement memory
allocation routines, and the lock tracking code allocates memory.  This caused
infinite recursion.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@78095 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-03 19:39:49 +00:00
Joshua Colp
50f951764f Add missing newlines for two memory CLI commands.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@50820 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-14 21:59:05 +00:00
Kevin P. Fleming
b2c8abbc6d allow 'show memory' and 'show memory summary' to distinguish memory allocations that were done for caching purposes, so they don't look like memory leaks
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48987 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-27 18:29:13 +00:00
Russell Bryant
97502fdec0 Fix the total allocation count and total byte count in the memory summary
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@43383 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-20 22:13:16 +00:00
Russell Bryant
28ffdcc783 Fix the memory summary so that it doesn't print the first file in the list over
and over again.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43375 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-20 21:42:57 +00:00
Russell Bryant
6f442c4a3c fix some breakage from the CLI command changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43372 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-20 21:14:02 +00:00
Kevin P. Fleming
fcb999c01c merge qwell's CLI verbification work
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43212 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 19:54:18 +00:00
Russell Bryant
5d3869a1c8 various cleanups, including ...
- Create an astmm_log() macro that logs the same message to both stderr as well
  as the mmlog file if it is open instead of duplicating the code everywhere.
- Use for loops for list traversals instead of while loops
- reduce nesting
- ensure locking isn't put around more than is necessary
- localize a struct definition
- change the limit of the path to the mmlog to PATH_MAX instead of 80


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40780 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 19:18:09 +00:00
Kevin P. Fleming
0a27d8bfe5 merge new_loader_completion branch, including (at least):
- restructured build tree and makefiles to eliminate recursion problems
  - support for embedded modules
  - support for static builds
  - simpler cross-compilation support
  - simpler module/loader interface (no exported symbols)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40722 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-21 02:11:39 +00:00