#
372a6663 |
|
17-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
X86VMTranslationMapPAE: Add some ktracing for page (un)mapping
|
#
1fe24d0c |
|
03-Dec-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Add heap with guard pages to detect out of bound reads/writes. This is a very simple heap implementation that allocates memory so that the end of each allocation always coincides with a page end and is followed by a guard page which is marked non-present. Out of bounds access (both read and write) therefore cause a crash (unhandled page fault). Note that this allocator is neither speed nor space efficient, indeed it wastes huge amounts of pages and address space so it is quite easy to hit limits. It is intended as a pure debug feature.
|
#
865a0be1 |
|
04-Nov-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Add optional stack traces to {Allocate|Free}Page[Run] tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43185 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e1c6140e |
|
01-Nov-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
mmlr + bonefish: * Add optional stack trace capturing for slab memory manager tracing. * Add allocation tracking for the slab allocator (enabled via SLAB_ALLOCATION_TRACKING). The allocation tracking requires tracing with stack traces to be enabled for object caches and/or the memory manager. - Add class AllocationTrackingInfo that associates an allocation with its respective tracing entry. The structure is added to the end of an allocation done by the memory manager. For the object caches there's a separate array for each slab. - Add code range markers to the slab code, so that the first caller into the slab code can be retrieved from the stack traces. - Add KDL command "allocations_per_caller" that lists all allocations summarized by caller. * Move debug definitions from slab_private.h to slab_debug.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43072 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
72156a40 |
|
31-Oct-2011 |
Michael Lotz <mmlr@mlotz.ch> |
bonefish+mmlr: * Introduce "paranoid" malloc/free into the slab allocator (initializing allocated memory to 0xcc and setting freed memory to 0xdeadbeef). * Allow for optional stack traces for slab object cache tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43046 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
74fc3e9a |
|
14-Apr-2010 |
Michael Lotz <mmlr@mlotz.ch> |
bonefish+mmlr: * Add file descriptor and IO context tracing. * Some minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36272 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bd7645a1 |
|
20-Feb-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Made vm_page::state private and added accessor methods. * Added kernel tracing for page state transitions. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35538 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b4e5e498 |
|
25-Jan-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
MemoryManager: * Added support to do larger raw allocations (up to one large chunk (128 pages)) in the slab areas. For an even larger allocation an area is created (haven't seen that happen yet, though). * Added kernel tracing (SLAB_MEMORY_MANAGER_TRACING). * _FreeArea(): Copy and paste bug: The meta chunks of the to be freed area would be added to the free lists instead of being removed from them. This would corrupt the lists and also lead to all kinds of misuse of meta chunks. object caches: * Implemented CACHE_ALIGN_ON_SIZE. It is no longer set for all small object caches, but the block allocator sets it on all power of two size caches. * object_cache_reserve_internal(): Detect recursion and don't wait in such a case. The function could deadlock itself, since HashedObjectCache::CreateSlab() does allocate memory, thus potentially reentering. * object_cache_low_memory(): - I missed some returns when reworking that one in r35254, so the function might stop early and also leave the cache in maintenance mode, which would cause it to be ignored by object cache resizer and low memory handler from that point on. - Since ReturnSlab() potentially unlocks, the conditions weren't quite correct and too many slabs could be freed. - Simplified things a bit. * object_cache_alloc(): Since object_cache_reserve_internal() does potentially unlock the cache, the situation might have changed and their might not be an empty slab available, but a partial one. The function would crash. * Renamed the object cache tracing variable to SLAB_OBJECT_CACHE_TRACING. * Renamed debugger command "cache_info" to "slab_cache" to avoid confusion with the VMCache commands. * ObjectCache::usage was not maintained anymore since I introduced the MemoryManager. object_cache_get_usage() would thus always return 0 and the block cache would not be considered cached memory. This was only of informational relevance, though. slab allocator misc.: * Disable the object depots of block allocator caches for object sizes > 2 KB. Allocations of those sizes aren't so common that the object depots yield any benefit. * The slab allocator is now fully self-sufficient. It allocates its bootstrap memory from the MemoryManager, and the hash tables for HashedObjectCaches use the block allocator instead of the heap, now. * Added option to use the slab allocator for malloc() and friends (USE_SLAB_ALLOCATOR_FOR_MALLOC). Currently disabled. Works in principle and has virtually no lock contention. Handling for low memory situations is yet missing, though. * Improved the output of some debugger commands. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35283 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a38f8503 |
|
22-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* arch_debug_get_stack_trace(): - Replaced the "userOnly" parameter by a "flags" parameter, that allows to specify kernel and userland stack traces individually. - x86, m68k: Don't always skip the first frame as that prevents the caller from being able to record its own address. * capture_tracing_stack_trace(): Replaced the "userOnly" parameter by "kernelOnly", since one is probably always interested in the kernel stack trace, but might not want the userland stack trace. * Added stack trace support for VM cache kernel tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34742 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ac4f1f2 |
|
26-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* I even had a second look, but didn't spot this one - thanks Urias! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33786 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4cadec3d |
|
22-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Thanks for the heads up, David! :-)) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33738 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f28dd36b |
|
22-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The alphabet is obviously hard, moved some tracing defines at their (hopefully) correct place. * It seems to be even harder to understand basic locking primitives: when you think about it, it shouldn't surprise you that conditional variables never return B_WOULD_BLOCK. This fixes gdb again. * Added tracing support to the ports subsystem. * get_port_message() will now resize the port heap if needed (but will also take timeouts into account while doing so, more or less). The initial port space is 4MB (as before), the growth rate is the same, and the system wide limit is arbitrarily set to 64 MB (all swappable). A team limit has been set to 8 MB, but is not enforced yet. Since ports are using up address space in the kernel, those seems to be proper limits. * This also fixes a strange, and rare lockup where the mouse cursor would still move, but everything else would basically hang, but look perfectly normal from KDL on the first look. As recently happened on Brecht's laptop, and debugged by mmlr and me: the cbuf space got used up when lots of windows wanted to redraw after a workspace switch. The app_server wouldn't answer anymore to client requests, but thought it would have done so, as LinkSender::Flush() doesn't care if it got a B_NO_MEMORY (the ports will now block until memory is available if possible, so that should not be a problem anymore). * Improved "port" KDL command, it now also prints the messages in the port. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33735 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
81f9115d |
|
10-Sep-2009 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
added tracing of ATA DMA transfers git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33040 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b2cfc2b1 |
|
23-Oct-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added kernel tracing for page faults. * vm_clone_area() does now set the B_SHARED_AREA flag on both the source and the cloned area. This is necessary, since it would no longer be guaranteed that areas are backed by leaf caches only (after fork()ing), which doesn't work with our cache merging strategy. Fixes #2605. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28296 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d654f56a |
|
11-Oct-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added kernel tracing for the page daemon and the page writer. * Added some commented out debug output in vm.cpp. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27971 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
886c05d0 |
|
03-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Macro for additional scheduling analysis tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27305 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b3feb86 |
|
01-Sep-2008 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
Preparing support for ATA and ATAPI tracing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27273 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fa2fa606 |
|
23-Aug-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added kernel tracing for the swap support. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27178 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3d3fe5a5 |
|
11-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added tracing support to our scheduler to be able to do better diagnosis with scheduling problems. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26929 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
58306fec |
|
02-Aug-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added tracing for vfs_{read,write}_pages). * {read,write}_pages() use vfs_{read,write}_pages() now, instead of invoking the FS {read,write}_pages() hooks. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26750 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0d066dea |
|
19-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added block level tracing to the block cache. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0a871009 |
|
29-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added VM cache kernel tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25715 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b3d6c12d |
|
17-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed kernel tracing for gcc 4. The ABI changed in a way that isn't compatible with what our code assumed (pointers to objects of TraceEntry and its POD base class trace_entry aren't identical anymore). * Added optional stack traces for ktrace_printf() output in the kernel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25531 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c1b9831b |
|
02-May-2008 |
Bruno G. Albuquerque <bga@bug-br.org.br> |
- Moved AHCI_PORT_TRACING define to its correct position. - Prepend "ahci port" to all trace entries in ahci_port.cpp. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25293 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
110d4031 |
|
02-May-2008 |
Bruno G. Albuquerque <bga@bug-br.org.br> |
- Added AHCI port tracing (Only PRD table tracing for now). - Added controller attribute to the AHCIPort class for debugging purposes. AHCI is failing whenever the PRD table has an address above the 2048 Mb mark. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25291 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e671b34 |
|
30-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Introduced kernel tracing in wait_for_objects.cpp (in r25273), ATM only for select(), though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25274 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ec12806d |
|
30-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Reverted r25258 - I didn't know that an undefined value defaults to 0. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25270 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e4941e8 |
|
29-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Forgot this one: Stack trace depth macro for net_buffer tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6ad0d967 |
|
29-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed build when ENABLE_TRACING is 0. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25258 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e8edffc |
|
29-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed at least the "dd" part of bug #2148: the second double indirect array block would be incorrectly addressed when allocating a stream - this could cause random blocks to be overwritten, and therefore could cause many sorts of problems. * Moved BFS_TRACING macro to the tracing_config.h file, and let it follow the new semantics of those other macros in there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25249 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5abeea69 |
|
29-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added tracing for binds and connects as well. * Introduced the TCP_TRACING macro in tracing_config.h. * Enlarged the default trace size to something a tiny bit useful (but still acceptable for systems with little RAM). * Cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25235 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c88b9c8 |
|
27-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added kernel tracing for the interesting net buffer operations. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25216 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6bf15ffc |
|
27-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Changed macros that enable tracing for individual components from defined/undefined to numeric values (0 for undefined). This allows for trace levels. * Set SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT default to 1, since this is what one usually wants. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25213 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b8ae28a |
|
26-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added kernel tracing. Even with optional stack traces. * Added "mode" parameter to set_paranoia_check(), which specifies whether the check is supposed to already exist/not exist yet. This allows for, as it turns out, very useful additional tests. Added {ADD,UPDATE}_PARANOIA_CHECK macros that imply the used "mode" parameter. * PARANOIA_SLOT_COUNT was accidentally redefined in the source file. * Fixed remove_paranoia_check(). It didn't remove anything. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25207 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
67411c9d |
|
26-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added object cache kernel tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82d444a2 |
|
27-Mar-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Changed the page allocation tracking history to kernel tracing instead. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24614 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
071f9c3a |
|
27-Mar-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Build configurations shouldn't be done in svn controlled files, so I finally created a solution to avoid that: Header files that contain configuration settings (and nothing else) go to build/config_headers. To change settings, create a directory build/user_config_headers (which is ignored by svn), copy the respective header there and modify it at your leisure. Currently only tracing_config.h has been moved to the new location, but more files will follow eventually. It is also recommended to move optional macro definitions in Jamfile (as for BFS) to a config header instead; the build system will then automatically rebuild on changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
372a66634410cf0450e426716c14ad42d40c0da4 |
|
17-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
X86VMTranslationMapPAE: Add some ktracing for page (un)mapping
|
#
1fe24d0cd0b547a771c00f6fca8f50ba6ca2fb2c |
|
03-Dec-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Add heap with guard pages to detect out of bound reads/writes. This is a very simple heap implementation that allocates memory so that the end of each allocation always coincides with a page end and is followed by a guard page which is marked non-present. Out of bounds access (both read and write) therefore cause a crash (unhandled page fault). Note that this allocator is neither speed nor space efficient, indeed it wastes huge amounts of pages and address space so it is quite easy to hit limits. It is intended as a pure debug feature.
|
#
865a0be1c022cdd7d155ecb3a44ca2769bce4f60 |
|
04-Nov-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Add optional stack traces to {Allocate|Free}Page[Run] tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43185 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e1c6140eaa641aa95fc6d82f0d5c53cf4fe41a16 |
|
01-Nov-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
mmlr + bonefish: * Add optional stack trace capturing for slab memory manager tracing. * Add allocation tracking for the slab allocator (enabled via SLAB_ALLOCATION_TRACKING). The allocation tracking requires tracing with stack traces to be enabled for object caches and/or the memory manager. - Add class AllocationTrackingInfo that associates an allocation with its respective tracing entry. The structure is added to the end of an allocation done by the memory manager. For the object caches there's a separate array for each slab. - Add code range markers to the slab code, so that the first caller into the slab code can be retrieved from the stack traces. - Add KDL command "allocations_per_caller" that lists all allocations summarized by caller. * Move debug definitions from slab_private.h to slab_debug.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43072 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
72156a402f54ea4be9dc3e3e9704c612f7d9ad16 |
|
31-Oct-2011 |
Michael Lotz <mmlr@mlotz.ch> |
bonefish+mmlr: * Introduce "paranoid" malloc/free into the slab allocator (initializing allocated memory to 0xcc and setting freed memory to 0xdeadbeef). * Allow for optional stack traces for slab object cache tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43046 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
74fc3e9a8bc4831206f84209be224cad7792dc0e |
|
14-Apr-2010 |
Michael Lotz <mmlr@mlotz.ch> |
bonefish+mmlr: * Add file descriptor and IO context tracing. * Some minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36272 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bd7645a12ab594d5eb1c6d6a70c3a82a429410dd |
|
20-Feb-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Made vm_page::state private and added accessor methods. * Added kernel tracing for page state transitions. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35538 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b4e5e4982360e684c5a13d227b9a958dbe725554 |
|
25-Jan-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
MemoryManager: * Added support to do larger raw allocations (up to one large chunk (128 pages)) in the slab areas. For an even larger allocation an area is created (haven't seen that happen yet, though). * Added kernel tracing (SLAB_MEMORY_MANAGER_TRACING). * _FreeArea(): Copy and paste bug: The meta chunks of the to be freed area would be added to the free lists instead of being removed from them. This would corrupt the lists and also lead to all kinds of misuse of meta chunks. object caches: * Implemented CACHE_ALIGN_ON_SIZE. It is no longer set for all small object caches, but the block allocator sets it on all power of two size caches. * object_cache_reserve_internal(): Detect recursion and don't wait in such a case. The function could deadlock itself, since HashedObjectCache::CreateSlab() does allocate memory, thus potentially reentering. * object_cache_low_memory(): - I missed some returns when reworking that one in r35254, so the function might stop early and also leave the cache in maintenance mode, which would cause it to be ignored by object cache resizer and low memory handler from that point on. - Since ReturnSlab() potentially unlocks, the conditions weren't quite correct and too many slabs could be freed. - Simplified things a bit. * object_cache_alloc(): Since object_cache_reserve_internal() does potentially unlock the cache, the situation might have changed and their might not be an empty slab available, but a partial one. The function would crash. * Renamed the object cache tracing variable to SLAB_OBJECT_CACHE_TRACING. * Renamed debugger command "cache_info" to "slab_cache" to avoid confusion with the VMCache commands. * ObjectCache::usage was not maintained anymore since I introduced the MemoryManager. object_cache_get_usage() would thus always return 0 and the block cache would not be considered cached memory. This was only of informational relevance, though. slab allocator misc.: * Disable the object depots of block allocator caches for object sizes > 2 KB. Allocations of those sizes aren't so common that the object depots yield any benefit. * The slab allocator is now fully self-sufficient. It allocates its bootstrap memory from the MemoryManager, and the hash tables for HashedObjectCaches use the block allocator instead of the heap, now. * Added option to use the slab allocator for malloc() and friends (USE_SLAB_ALLOCATOR_FOR_MALLOC). Currently disabled. Works in principle and has virtually no lock contention. Handling for low memory situations is yet missing, though. * Improved the output of some debugger commands. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35283 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a38f85036021b7ccaffa47fd8584afff473acf3d |
|
22-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* arch_debug_get_stack_trace(): - Replaced the "userOnly" parameter by a "flags" parameter, that allows to specify kernel and userland stack traces individually. - x86, m68k: Don't always skip the first frame as that prevents the caller from being able to record its own address. * capture_tracing_stack_trace(): Replaced the "userOnly" parameter by "kernelOnly", since one is probably always interested in the kernel stack trace, but might not want the userland stack trace. * Added stack trace support for VM cache kernel tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34742 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ac4f1f2584050438ff059c0556c55802b38de95 |
|
26-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* I even had a second look, but didn't spot this one - thanks Urias! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33786 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4cadec3d6e9b4e290b8f66a0eaac80c27331c1bc |
|
22-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Thanks for the heads up, David! :-)) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33738 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f28dd36b8271a80746985faef453afee6526f416 |
|
22-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The alphabet is obviously hard, moved some tracing defines at their (hopefully) correct place. * It seems to be even harder to understand basic locking primitives: when you think about it, it shouldn't surprise you that conditional variables never return B_WOULD_BLOCK. This fixes gdb again. * Added tracing support to the ports subsystem. * get_port_message() will now resize the port heap if needed (but will also take timeouts into account while doing so, more or less). The initial port space is 4MB (as before), the growth rate is the same, and the system wide limit is arbitrarily set to 64 MB (all swappable). A team limit has been set to 8 MB, but is not enforced yet. Since ports are using up address space in the kernel, those seems to be proper limits. * This also fixes a strange, and rare lockup where the mouse cursor would still move, but everything else would basically hang, but look perfectly normal from KDL on the first look. As recently happened on Brecht's laptop, and debugged by mmlr and me: the cbuf space got used up when lots of windows wanted to redraw after a workspace switch. The app_server wouldn't answer anymore to client requests, but thought it would have done so, as LinkSender::Flush() doesn't care if it got a B_NO_MEMORY (the ports will now block until memory is available if possible, so that should not be a problem anymore). * Improved "port" KDL command, it now also prints the messages in the port. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33735 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
81f9115df076e02ae50761d33ecec46fb87ba550 |
|
10-Sep-2009 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
added tracing of ATA DMA transfers git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33040 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b2cfc2b1c0696ecab857119653ce033372935bc1 |
|
23-Oct-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added kernel tracing for page faults. * vm_clone_area() does now set the B_SHARED_AREA flag on both the source and the cloned area. This is necessary, since it would no longer be guaranteed that areas are backed by leaf caches only (after fork()ing), which doesn't work with our cache merging strategy. Fixes #2605. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28296 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d654f56af243580068a6260e11e5c832b325d291 |
|
11-Oct-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added kernel tracing for the page daemon and the page writer. * Added some commented out debug output in vm.cpp. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27971 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
886c05d0b60db5f654db4301e72d7b0ddb5f326f |
|
03-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Macro for additional scheduling analysis tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27305 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5b3feb866e361300b8a1c74874f3dfe923297a6e |
|
01-Sep-2008 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
Preparing support for ATA and ATAPI tracing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27273 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fa2fa606af0da950d416b10e53dafc771738be25 |
|
23-Aug-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added kernel tracing for the swap support. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27178 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3d3fe5a58cdfb08f1621718d5bd77702e47271b7 |
|
11-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added tracing support to our scheduler to be able to do better diagnosis with scheduling problems. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26929 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
58306fecd6c5645210f041ae4d88abe56016f841 |
|
02-Aug-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added tracing for vfs_{read,write}_pages). * {read,write}_pages() use vfs_{read,write}_pages() now, instead of invoking the FS {read,write}_pages() hooks. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26750 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0d066dea36860490a670e4120e08966ae83406df |
|
19-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added block level tracing to the block cache. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26521 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0a871009db653ca147065f1892c446394086969c |
|
29-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added VM cache kernel tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25715 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b3d6c12dbf620c22c071b1a6a4c44dfce88d265c |
|
17-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed kernel tracing for gcc 4. The ABI changed in a way that isn't compatible with what our code assumed (pointers to objects of TraceEntry and its POD base class trace_entry aren't identical anymore). * Added optional stack traces for ktrace_printf() output in the kernel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25531 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c1b9831bbe4ac55ea5d7d93681421ebe1f64ed88 |
|
02-May-2008 |
Bruno G. Albuquerque <bga@bug-br.org.br> |
- Moved AHCI_PORT_TRACING define to its correct position. - Prepend "ahci port" to all trace entries in ahci_port.cpp. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25293 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
110d4031fb55f72790afe108e77805fdaaaff183 |
|
02-May-2008 |
Bruno G. Albuquerque <bga@bug-br.org.br> |
- Added AHCI port tracing (Only PRD table tracing for now). - Added controller attribute to the AHCIPort class for debugging purposes. AHCI is failing whenever the PRD table has an address above the 2048 Mb mark. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25291 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e671b34c25116f0965974c69ae8d2fb0e190778 |
|
30-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Introduced kernel tracing in wait_for_objects.cpp (in r25273), ATM only for select(), though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25274 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ec12806d2f1d0beb23e9ce62062bbbae7ddcf24c |
|
30-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Reverted r25258 - I didn't know that an undefined value defaults to 0. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25270 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e4941e81085d80d1758efea54d017fd58840257 |
|
29-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Forgot this one: Stack trace depth macro for net_buffer tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6ad0d967f02e07db898547afd2fd93a67e83ffdb |
|
29-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Fixed build when ENABLE_TRACING is 0. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25258 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8e8edffce7fdf16a8ae17b2de36bffa05082114e |
|
29-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed at least the "dd" part of bug #2148: the second double indirect array block would be incorrectly addressed when allocating a stream - this could cause random blocks to be overwritten, and therefore could cause many sorts of problems. * Moved BFS_TRACING macro to the tracing_config.h file, and let it follow the new semantics of those other macros in there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25249 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5abeea69a5458c008758fcdd25c503da9c38bbc5 |
|
29-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added tracing for binds and connects as well. * Introduced the TCP_TRACING macro in tracing_config.h. * Enlarged the default trace size to something a tiny bit useful (but still acceptable for systems with little RAM). * Cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25235 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c88b9c82a96f00b3c3f555e6b72ef7b06760496 |
|
27-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added kernel tracing for the interesting net buffer operations. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25216 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6bf15ffcdcfc62c39948e0e9449064e65b7f13bd |
|
27-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Changed macros that enable tracing for individual components from defined/undefined to numeric values (0 for undefined). This allows for trace levels. * Set SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT default to 1, since this is what one usually wants. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25213 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2b8ae28a150f72c0afac406d6c9bf12d66d88d84 |
|
26-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added kernel tracing. Even with optional stack traces. * Added "mode" parameter to set_paranoia_check(), which specifies whether the check is supposed to already exist/not exist yet. This allows for, as it turns out, very useful additional tests. Added {ADD,UPDATE}_PARANOIA_CHECK macros that imply the used "mode" parameter. * PARANOIA_SLOT_COUNT was accidentally redefined in the source file. * Fixed remove_paranoia_check(). It didn't remove anything. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25207 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
67411c9d36b48c6c7a7d5c00fb060ac4388647a4 |
|
26-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added object cache kernel tracing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82d444a25e08fe5daab2258551308be720cdd477 |
|
27-Mar-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Changed the page allocation tracking history to kernel tracing instead. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24614 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
071f9c3aa2c2215feaa56a8ff59557dd00b27f37 |
|
27-Mar-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Build configurations shouldn't be done in svn controlled files, so I finally created a solution to avoid that: Header files that contain configuration settings (and nothing else) go to build/config_headers. To change settings, create a directory build/user_config_headers (which is ignored by svn), copy the respective header there and modify it at your leisure. Currently only tracing_config.h has been moved to the new location, but more files will follow eventually. It is also recommended to move optional macro definitions in Jamfile (as for BFS) to a config header instead; the build system will then automatically rebuild on changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|