Index: kernel/generic/include/adt/avl.h
===================================================================
--- kernel/generic/include/adt/avl.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/adt/avl.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -34,7 +34,8 @@
 
 #ifndef KERN_AVLTREE_H_
-#define KERN_AVLTREE_H_ 
+#define KERN_AVLTREE_H_
 
 #include <typedefs.h>
+#include <trace.h>
 
 /**
@@ -110,5 +111,5 @@
  * @param t AVL tree.
  */
-static inline void avltree_create(avltree_t *t)
+NO_TRACE static inline void avltree_create(avltree_t *t)
 {
 	t->root = NULL;
@@ -120,5 +121,5 @@
  * @param node Node which is initialized.
  */
-static inline void avltree_node_initialize(avltree_node_t *node)
+NO_TRACE static inline void avltree_node_initialize(avltree_node_t *node)
 {
 	node->key = 0;
Index: kernel/generic/include/adt/list.h
===================================================================
--- kernel/generic/include/adt/list.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/adt/list.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -37,4 +37,5 @@
 
 #include <typedefs.h>
+#include <trace.h>
 
 /** Doubly linked list head and link type. */
@@ -57,5 +58,5 @@
  * @param link Pointer to link_t structure to be initialized.
  */
-static inline void link_initialize(link_t *link)
+NO_TRACE static inline void link_initialize(link_t *link)
 {
 	link->prev = NULL;
@@ -69,5 +70,5 @@
  * @param head Pointer to link_t structure representing head of the list.
  */
-static inline void list_initialize(link_t *head)
+NO_TRACE static inline void list_initialize(link_t *head)
 {
 	head->prev = head;
@@ -82,5 +83,5 @@
  * @param head Pointer to link_t structure representing head of the list.
  */
-static inline void list_prepend(link_t *link, link_t *head)
+NO_TRACE static inline void list_prepend(link_t *link, link_t *head)
 {
 	link->next = head->next;
@@ -97,5 +98,5 @@
  * @param head Pointer to link_t structure representing head of the list.
  */
-static inline void list_append(link_t *link, link_t *head)
+NO_TRACE static inline void list_append(link_t *link, link_t *head)
 {
 	link->prev = head->prev;
@@ -112,5 +113,5 @@
  * 		contained in.
  */
-static inline void list_remove(link_t *link)
+NO_TRACE static inline void list_remove(link_t *link)
 {
 	link->next->prev = link->prev;
@@ -125,5 +126,5 @@
  * @param head Pointer to link_t structure representing head of the list.
  */
-static inline bool list_empty(link_t *head)
+NO_TRACE static inline bool list_empty(link_t *head)
 {
 	return head->next == head ? true : false;
@@ -143,5 +144,5 @@
  *		headless) list. 
  */
-static inline void headless_list_split_or_concat(link_t *part1, link_t *part2)
+NO_TRACE static inline void headless_list_split_or_concat(link_t *part1, link_t *part2)
 {
 	link_t *hlp;
@@ -164,5 +165,5 @@
  *		headless list. 
  */
-static inline void headless_list_split(link_t *part1, link_t *part2)
+NO_TRACE static inline void headless_list_split(link_t *part1, link_t *part2)
 {
 	headless_list_split_or_concat(part1, part2);
@@ -176,5 +177,5 @@
  * @param part2 Pointer to link_t structure leading the second headless list.
  */
-static inline void headless_list_concat(link_t *part1, link_t *part2)
+NO_TRACE static inline void headless_list_concat(link_t *part1, link_t *part2)
 {
 	headless_list_split_or_concat(part1, part2);
Index: kernel/generic/include/atomic.h
===================================================================
--- kernel/generic/include/atomic.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/atomic.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -40,5 +40,5 @@
 #include <verify.h>
 
-ATOMIC static inline void atomic_set(atomic_t *val, atomic_count_t i)
+NO_TRACE ATOMIC static inline void atomic_set(atomic_t *val, atomic_count_t i)
     WRITES(&val->count)
     REQUIRES_EXTENT_MUTABLE(val)
@@ -47,5 +47,5 @@
 }
 
-ATOMIC static inline atomic_count_t atomic_get(atomic_t *val)
+NO_TRACE ATOMIC static inline atomic_count_t atomic_get(atomic_t *val)
     REQUIRES_EXTENT_MUTABLE(val)
 {
Index: kernel/generic/include/bitops.h
===================================================================
--- kernel/generic/include/bitops.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/bitops.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -36,4 +36,6 @@
 #define KERN_BITOPS_H_
 
+#include <trace.h>
+
 #ifdef __32_BITS__
 	#define fnzb(arg)  fnzb32(arg)
@@ -49,5 +51,5 @@
  *
  */
-static inline uint8_t fnzb32(uint32_t arg)
+NO_TRACE static inline uint8_t fnzb32(uint32_t arg)
 {
 	uint8_t n = 0;
@@ -84,5 +86,5 @@
  *
  */
-static inline uint8_t fnzb64(uint64_t arg)
+NO_TRACE static inline uint8_t fnzb64(uint64_t arg)
 {
 	uint8_t n = 0;
Index: kernel/generic/include/context.h
===================================================================
--- kernel/generic/include/context.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/context.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -37,4 +37,5 @@
 
 #include <typedefs.h>
+#include <trace.h>
 #include <arch/context.h>
 
@@ -89,6 +90,5 @@
  *
  */
-static inline void __attribute__((no_instrument_function))
-    context_restore(context_t *ctx)
+NO_TRACE static inline void context_restore(context_t *ctx)
 {
 	context_restore_arch(ctx);
Index: kernel/generic/include/macros.h
===================================================================
--- kernel/generic/include/macros.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/macros.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -39,4 +39,5 @@
 
 #include <typedefs.h>
+#include <trace.h>
 
 /** Return true if the intervals overlap.
@@ -47,6 +48,6 @@
  * @param sz2 Size of the second interval.
  */
-static inline int __attribute__((no_instrument_function))
-    overlaps(uintptr_t s1, size_t sz1, uintptr_t s2, size_t sz2)
+NO_TRACE static inline int overlaps(uintptr_t s1, size_t sz1, uintptr_t s2,
+    size_t sz2)
 {
 	uintptr_t e1 = s1 + sz1;
Index: kernel/generic/include/main/main.h
===================================================================
--- kernel/generic/include/main/main.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/main/main.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -32,5 +32,5 @@
 /** @file
  */
- 
+
 #ifndef KERN_MAIN_H_
 #define KERN_MAIN_H_
Index: kernel/generic/include/main/version.h
===================================================================
--- kernel/generic/include/main/version.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/main/version.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -42,3 +42,2 @@
 /** @}
  */
-
Index: kernel/generic/include/mm/frame.h
===================================================================
--- kernel/generic/include/mm/frame.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/mm/frame.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -38,4 +38,5 @@
 
 #include <typedefs.h>
+#include <trace.h>
 #include <adt/list.h>
 #include <mm/buddy.h>
@@ -115,15 +116,15 @@
 extern zones_t zones;
 
-static inline uintptr_t PFN2ADDR(pfn_t frame)
+NO_TRACE static inline uintptr_t PFN2ADDR(pfn_t frame)
 {
 	return (uintptr_t) (frame << FRAME_WIDTH);
 }
 
-static inline pfn_t ADDR2PFN(uintptr_t addr)
+NO_TRACE static inline pfn_t ADDR2PFN(uintptr_t addr)
 {
 	return (pfn_t) (addr >> FRAME_WIDTH);
 }
 
-static inline size_t SIZE2FRAMES(size_t size)
+NO_TRACE static inline size_t SIZE2FRAMES(size_t size)
 {
 	if (!size)
@@ -132,10 +133,10 @@
 }
 
-static inline size_t FRAMES2SIZE(size_t frames)
+NO_TRACE static inline size_t FRAMES2SIZE(size_t frames)
 {
 	return (size_t) (frames << FRAME_WIDTH);
 }
 
-static inline bool zone_flags_available(zone_flags_t flags)
+NO_TRACE static inline bool zone_flags_available(zone_flags_t flags)
 {
 	return ((flags & (ZONE_RESERVED | ZONE_FIRMWARE)) == 0);
Index: kernel/generic/include/security/cap.h
===================================================================
--- kernel/generic/include/security/cap.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/security/cap.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup generic 
+/** @addtogroup generic
  * @{
  */
@@ -35,5 +35,5 @@
 /**
  * @file
- * @brief	Capabilities definitions.
+ * @brief Capabilities definitions.
  *
  * Capabilities represent virtual rights that entitle their
Index: kernel/generic/include/smp/smp.h
===================================================================
--- kernel/generic/include/smp/smp.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/smp/smp.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup generic	
+/** @addtogroup generic
  * @{
  */
@@ -41,8 +41,12 @@
 
 #ifdef CONFIG_SMP
+
 extern void smp_init(void);
 extern void kmp(void *arg);
-#else
+
+#else /* CONFIG_SMP */
+
 #define smp_init()
+
 #endif /* CONFIG_SMP */
 
Index: kernel/generic/include/synch/spinlock.h
===================================================================
--- kernel/generic/include/synch/spinlock.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/synch/spinlock.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -124,5 +124,5 @@
  *
  */
-static inline void spinlock_unlock_nondebug(spinlock_t *lock)
+NO_TRACE static inline void spinlock_unlock_nondebug(spinlock_t *lock)
 {
 	/*
Index: kernel/generic/include/syscall/sysarg64.h
===================================================================
--- kernel/generic/include/syscall/sysarg64.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/syscall/sysarg64.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -33,5 +33,5 @@
 /**
  * @file
- * @brief	Wrapper for explicit 64-bit arguments passed to syscalls.
+ * @brief Wrapper for explicit 64-bit arguments passed to syscalls.
  */
 
Index: kernel/generic/include/trace.h
===================================================================
--- kernel/generic/include/trace.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
+++ kernel/generic/include/trace.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2010 Martin Decky
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup genericdebug
+ * @{
+ */
+/** @file
+ */
+
+#ifndef KERN_TRACE_H_
+#define KERN_TRACE_H_
+
+#define NO_TRACE  __attribute__((no_instrument_function))
+
+#endif
+
+/** @}
+ */
Index: kernel/generic/include/udebug/udebug_ipc.h
===================================================================
--- kernel/generic/include/udebug/udebug_ipc.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/udebug/udebug_ipc.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup generic	
+/** @addtogroup generic
  * @{
  */
@@ -41,5 +41,4 @@
 void udebug_call_receive(call_t *call);
 
-
 #endif
 
Index: kernel/generic/include/udebug/udebug_ops.h
===================================================================
--- kernel/generic/include/udebug/udebug_ops.h	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/include/udebug/udebug_ops.h	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup generic	
+/** @addtogroup generic
  * @{
  */
Index: kernel/generic/src/adt/btree.c
===================================================================
--- kernel/generic/src/adt/btree.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/adt/btree.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -53,4 +53,5 @@
 #include <panic.h>
 #include <print.h>
+#include <trace.h>
 
 static slab_cache_t *btree_node_slab;
@@ -79,5 +80,5 @@
  *
  */
-static void node_initialize(btree_node_t *node)
+NO_TRACE static void node_initialize(btree_node_t *node)
 {
 	unsigned int i;
@@ -118,5 +119,5 @@
  *
  */
-static void btree_destroy_subtree(btree_node_t *root)
+NO_TRACE static void btree_destroy_subtree(btree_node_t *root)
 {
 	size_t i;
@@ -151,6 +152,6 @@
  *
  */
-static void node_insert_key_and_rsubtree(btree_node_t *node, btree_key_t key,
-    void *value, btree_node_t *rsubtree)
+NO_TRACE static void node_insert_key_and_rsubtree(btree_node_t *node,
+    btree_key_t key, void *value, btree_node_t *rsubtree)
 {
 	size_t i;
@@ -186,6 +187,6 @@
  *
  */
-static size_t find_key_by_subtree(btree_node_t *node, btree_node_t *subtree,
-    bool right)
+NO_TRACE static size_t find_key_by_subtree(btree_node_t *node,
+    btree_node_t *subtree, bool right)
 {
 	size_t i;
@@ -209,5 +210,6 @@
  *
  */
-static void node_remove_key_and_lsubtree(btree_node_t *node, btree_key_t key)
+NO_TRACE static void node_remove_key_and_lsubtree(btree_node_t *node,
+    btree_key_t key)
 {
 	size_t i;
@@ -242,5 +244,6 @@
  *
  */
-static void node_remove_key_and_rsubtree(btree_node_t *node, btree_key_t key)
+NO_TRACE static void node_remove_key_and_rsubtree(btree_node_t *node,
+    btree_key_t key)
 {
 	size_t i, j;
@@ -273,6 +276,6 @@
  *
  */
-static void node_insert_key_and_lsubtree(btree_node_t *node, btree_key_t key,
-    void *value, btree_node_t *lsubtree)
+NO_TRACE static void node_insert_key_and_lsubtree(btree_node_t *node,
+    btree_key_t key, void *value, btree_node_t *lsubtree)
 {
 	size_t i;
@@ -313,5 +316,6 @@
  *
  */
-static void rotate_from_left(btree_node_t *lnode, btree_node_t *rnode, size_t idx)
+NO_TRACE static void rotate_from_left(btree_node_t *lnode, btree_node_t *rnode,
+    size_t idx)
 {
 	btree_key_t key = lnode->key[lnode->keys - 1];
@@ -348,5 +352,6 @@
  *
  */
-static void rotate_from_right(btree_node_t *lnode, btree_node_t *rnode, size_t idx)
+NO_TRACE static void rotate_from_right(btree_node_t *lnode, btree_node_t *rnode,
+    size_t idx)
 {
 	btree_key_t key = rnode->key[0];
@@ -385,5 +390,5 @@
  *
  */
-static bool try_insert_by_rotation_to_left(btree_node_t *node,
+NO_TRACE static bool try_insert_by_rotation_to_left(btree_node_t *node,
     btree_key_t inskey, void *insvalue, btree_node_t *rsubtree)
 {
@@ -434,5 +439,5 @@
  *
  */
-static bool try_insert_by_rotation_to_right(btree_node_t *node,
+NO_TRACE static bool try_insert_by_rotation_to_right(btree_node_t *node,
     btree_key_t inskey, void *insvalue, btree_node_t *rsubtree)
 {
@@ -488,5 +493,5 @@
  *
  */
-static btree_node_t *node_split(btree_node_t *node, btree_key_t key,
+NO_TRACE static btree_node_t *node_split(btree_node_t *node, btree_key_t key,
     void *value, btree_node_t *rsubtree, btree_key_t *median)
 {
@@ -552,5 +557,5 @@
  *
  */
-static void _btree_insert(btree_t *t, btree_key_t key, void *value,
+NO_TRACE static void _btree_insert(btree_t *t, btree_key_t key, void *value,
     btree_node_t *rsubtree, btree_node_t *node)
 {
@@ -639,5 +644,5 @@
  *
  */
-static bool try_rotation_from_left(btree_node_t *rnode)
+NO_TRACE static bool try_rotation_from_left(btree_node_t *rnode)
 {
 	size_t idx;
@@ -676,5 +681,5 @@
  *
  */
-static bool try_rotation_from_right(btree_node_t *lnode)
+NO_TRACE static bool try_rotation_from_right(btree_node_t *lnode)
 {
 	size_t idx;
@@ -714,5 +719,5 @@
  *
  */
-static btree_node_t *node_combine(btree_node_t *node)
+NO_TRACE static btree_node_t *node_combine(btree_node_t *node)
 {
 	size_t idx;
@@ -764,5 +769,6 @@
  *
  */
-static void _btree_remove(btree_t *t, btree_key_t key, btree_node_t *node)
+NO_TRACE static void _btree_remove(btree_t *t, btree_key_t key,
+    btree_node_t *node)
 {
 	if (ROOT_NODE(node)) {
Index: kernel/generic/src/console/kconsole.c
===================================================================
--- kernel/generic/src/console/kconsole.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/console/kconsole.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -160,5 +160,5 @@
 
 /** Print count times a character */
-static void print_cc(wchar_t ch, size_t count)
+NO_TRACE static void print_cc(wchar_t ch, size_t count)
 {
 	size_t i;
@@ -168,5 +168,6 @@
 
 /** Try to find a command beginning with prefix */
-static const char *cmdtab_search_one(const char *name, link_t **startpos)
+NO_TRACE static const char *cmdtab_search_one(const char *name,
+    link_t **startpos)
 {
 	size_t namelen = str_length(name);
@@ -202,5 +203,5 @@
  *
  */
-static int cmdtab_compl(char *input, size_t size)
+NO_TRACE static int cmdtab_compl(char *input, size_t size)
 {
 	const char *name = input;
@@ -237,5 +238,5 @@
 }
 
-static wchar_t *clever_readline(const char *prompt, indev_t *indev)
+NO_TRACE static wchar_t *clever_readline(const char *prompt, indev_t *indev)
 {
 	printf("%s> ", prompt);
@@ -422,5 +423,6 @@
 }
 
-static bool parse_int_arg(const char *text, size_t len, unative_t *result)
+NO_TRACE static bool parse_int_arg(const char *text, size_t len,
+    unative_t *result)
 {
 	bool isaddr = false;
@@ -507,5 +509,6 @@
  *
  */
-static bool parse_argument(const char *cmdline, size_t size, size_t *start, size_t *end)
+NO_TRACE static bool parse_argument(const char *cmdline, size_t size,
+    size_t *start, size_t *end)
 {
 	ASSERT(start != NULL);
@@ -543,5 +546,5 @@
  *
  */
-static cmd_info_t *parse_cmdline(const char *cmdline, size_t size)
+NO_TRACE static cmd_info_t *parse_cmdline(const char *cmdline, size_t size)
 {
 	size_t start = 0;
Index: kernel/generic/src/ddi/ddi.c
===================================================================
--- kernel/generic/src/ddi/ddi.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/ddi/ddi.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -52,4 +52,5 @@
 #include <align.h>
 #include <errno.h>
+#include <trace.h>
 
 /** This lock protects the parea_btree. */
@@ -99,5 +100,5 @@
  *
  */
-static int ddi_physmem_map(uintptr_t pf, uintptr_t vp, size_t pages,
+NO_TRACE static int ddi_physmem_map(uintptr_t pf, uintptr_t vp, size_t pages,
     unsigned int flags)
 {
@@ -187,5 +188,6 @@
  *
  */
-static int ddi_iospace_enable(task_id_t id, uintptr_t ioaddr, size_t size)
+NO_TRACE static int ddi_iospace_enable(task_id_t id, uintptr_t ioaddr,
+    size_t size)
 {
 	/*
Index: kernel/generic/src/interrupt/interrupt.c
===================================================================
--- kernel/generic/src/interrupt/interrupt.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/interrupt/interrupt.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -55,4 +55,5 @@
 #include <arch/cycle.h>
 #include <str.h>
+#include <trace.h>
 
 exc_table_t exc_table[IVT_ITEMS];
@@ -97,5 +98,5 @@
  *
  */
-void exc_dispatch(unsigned int n, istate_t *istate)
+NO_TRACE void exc_dispatch(unsigned int n, istate_t *istate)
 {
 	ASSERT(CPU);
@@ -159,5 +160,5 @@
  *
  */
-static void exc_undef(unsigned int n, istate_t *istate)
+NO_TRACE static void exc_undef(unsigned int n, istate_t *istate)
 {
 	fault_if_from_uspace(istate, "Unhandled exception %u.", n);
@@ -168,5 +169,5 @@
  *
  */
-void fault_if_from_uspace(istate_t *istate, const char *fmt, ...)
+NO_TRACE void fault_if_from_uspace(istate_t *istate, const char *fmt, ...)
 {
 	if (!istate_from_uspace(istate))
@@ -215,5 +216,5 @@
  *
  */
-static int cmd_exc_print(cmd_arg_t *argv)
+NO_TRACE static int cmd_exc_print(cmd_arg_t *argv)
 {
 	bool excs_all;
Index: kernel/generic/src/main/main.c
===================================================================
--- kernel/generic/src/main/main.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/main/main.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -131,5 +131,5 @@
  *
  */
-void __attribute__((no_instrument_function)) main_bsp(void)
+NO_TRACE void main_bsp(void)
 {
 	config.cpu_count = 1;
Index: kernel/generic/src/mm/as.c
===================================================================
--- kernel/generic/src/mm/as.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/mm/as.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -116,5 +116,5 @@
 as_t *AS_KERNEL = NULL;
 
-static int as_constructor(void *obj, unsigned int flags)
+NO_TRACE static int as_constructor(void *obj, unsigned int flags)
 {
 	as_t *as = (as_t *) obj;
@@ -128,5 +128,5 @@
 }
 
-static size_t as_destructor(void *obj)
+NO_TRACE static size_t as_destructor(void *obj)
 {
 	as_t *as = (as_t *) obj;
@@ -274,5 +274,5 @@
  *
  */
-void as_hold(as_t *as)
+NO_TRACE void as_hold(as_t *as)
 {
 	atomic_inc(&as->refcount);
@@ -287,5 +287,5 @@
  *
  */
-void as_release(as_t *as)
+NO_TRACE void as_release(as_t *as)
 {
 	if (atomic_predec(&as->refcount) == 0)
@@ -303,5 +303,5 @@
  *
  */
-static bool check_area_conflicts(as_t *as, uintptr_t va, size_t size,
+NO_TRACE static bool check_area_conflicts(as_t *as, uintptr_t va, size_t size,
     as_area_t *avoid_area)
 {
@@ -463,5 +463,5 @@
  *
  */
-static as_area_t *find_area_and_lock(as_t *as, uintptr_t va)
+NO_TRACE static as_area_t *find_area_and_lock(as_t *as, uintptr_t va)
 {
 	ASSERT(mutex_locked(&as->lock));
@@ -717,5 +717,5 @@
  *
  */
-static void sh_info_remove_reference(share_info_t *sh_info)
+NO_TRACE static void sh_info_remove_reference(share_info_t *sh_info)
 {
 	bool dealloc = false;
@@ -1010,5 +1010,5 @@
  *
  */
-static unsigned int area_flags_to_page_flags(unsigned int aflags)
+NO_TRACE static unsigned int area_flags_to_page_flags(unsigned int aflags)
 {
 	unsigned int flags = PAGE_USER | PAGE_PRESENT;
Index: kernel/generic/src/mm/frame.c
===================================================================
--- kernel/generic/src/mm/frame.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/mm/frame.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -75,20 +75,20 @@
 /********************/
 
-static inline size_t frame_index(zone_t *zone, frame_t *frame)
+NO_TRACE static inline size_t frame_index(zone_t *zone, frame_t *frame)
 {
 	return (size_t) (frame - zone->frames);
 }
 
-static inline size_t frame_index_abs(zone_t *zone, frame_t *frame)
+NO_TRACE static inline size_t frame_index_abs(zone_t *zone, frame_t *frame)
 {
 	return (size_t) (frame - zone->frames) + zone->base;
 }
 
-static inline bool frame_index_valid(zone_t *zone, size_t index)
+NO_TRACE static inline bool frame_index_valid(zone_t *zone, size_t index)
 {
 	return (index < zone->count);
 }
 
-static inline size_t make_frame_index(zone_t *zone, frame_t *frame)
+NO_TRACE static inline size_t make_frame_index(zone_t *zone, frame_t *frame)
 {
 	return (frame - zone->frames);
@@ -100,5 +100,5 @@
  *
  */
-static void frame_initialize(frame_t *frame)
+NO_TRACE static void frame_initialize(frame_t *frame)
 {
 	frame->refcount = 1;
@@ -121,5 +121,5 @@
  *
  */
-static size_t zones_insert_zone(pfn_t base, size_t count)
+NO_TRACE static size_t zones_insert_zone(pfn_t base, size_t count)
 {
 	if (zones.count + 1 == ZONES_MAX) {
@@ -162,5 +162,5 @@
  */
 #ifdef CONFIG_DEBUG
-static size_t total_frames_free(void)
+NO_TRACE static size_t total_frames_free(void)
 {
 	size_t total = 0;
@@ -206,5 +206,5 @@
 
 /** @return True if zone can allocate specified order */
-static bool zone_can_alloc(zone_t *zone, uint8_t order)
+NO_TRACE static bool zone_can_alloc(zone_t *zone, uint8_t order)
 {
 	return (zone_flags_available(zone->flags)
@@ -222,5 +222,6 @@
  *
  */
-static size_t find_free_zone(uint8_t order, zone_flags_t flags, size_t hint)
+NO_TRACE static size_t find_free_zone(uint8_t order, zone_flags_t flags,
+    size_t hint)
 {
 	if (hint >= zones.count)
@@ -262,6 +263,6 @@
  *
  */
-static link_t *zone_buddy_find_block(buddy_system_t *buddy, link_t *child,
-    uint8_t order)
+NO_TRACE static link_t *zone_buddy_find_block(buddy_system_t *buddy,
+    link_t *child, uint8_t order)
 {
 	frame_t *frame = list_get_instance(child, frame_t, buddy_link);
@@ -285,5 +286,6 @@
  *
  */
-static link_t *zone_buddy_find_buddy(buddy_system_t *buddy, link_t *block) 
+NO_TRACE static link_t *zone_buddy_find_buddy(buddy_system_t *buddy,
+    link_t *block)
 {
 	frame_t *frame = list_get_instance(block, frame_t, buddy_link);
@@ -321,5 +323,5 @@
  *
  */
-static link_t *zone_buddy_bisect(buddy_system_t *buddy, link_t *block)
+NO_TRACE static link_t *zone_buddy_bisect(buddy_system_t *buddy, link_t *block)
 {
 	frame_t *frame_l = list_get_instance(block, frame_t, buddy_link);
@@ -339,6 +341,6 @@
  *
  */
-static link_t *zone_buddy_coalesce(buddy_system_t *buddy, link_t *block_1,
-    link_t *block_2)
+NO_TRACE static link_t *zone_buddy_coalesce(buddy_system_t *buddy,
+    link_t *block_1, link_t *block_2)
 {
 	frame_t *frame1 = list_get_instance(block_1, frame_t, buddy_link);
@@ -355,5 +357,5 @@
  *
  */
-static void zone_buddy_set_order(buddy_system_t *buddy, link_t *block,
+NO_TRACE static void zone_buddy_set_order(buddy_system_t *buddy, link_t *block,
     uint8_t order)
 {
@@ -369,5 +371,6 @@
  *
  */
-static uint8_t zone_buddy_get_order(buddy_system_t *buddy, link_t *block)
+NO_TRACE static uint8_t zone_buddy_get_order(buddy_system_t *buddy,
+    link_t *block)
 {
 	return list_get_instance(block, frame_t, buddy_link)->buddy_order;
@@ -380,5 +383,5 @@
  *
  */
-static void zone_buddy_mark_busy(buddy_system_t *buddy, link_t * block)
+NO_TRACE static void zone_buddy_mark_busy(buddy_system_t *buddy, link_t *block)
 {
 	list_get_instance(block, frame_t, buddy_link)->refcount = 1;
@@ -389,6 +392,8 @@
  * @param buddy Buddy system.
  * @param block Buddy system block.
- */
-static void zone_buddy_mark_available(buddy_system_t *buddy, link_t *block)
+ *
+ */
+NO_TRACE static void zone_buddy_mark_available(buddy_system_t *buddy,
+    link_t *block)
 {
 	list_get_instance(block, frame_t, buddy_link)->refcount = 0;
@@ -421,5 +426,5 @@
  *
  */
-static pfn_t zone_frame_alloc(zone_t *zone, uint8_t order)
+NO_TRACE static pfn_t zone_frame_alloc(zone_t *zone, uint8_t order)
 {
 	ASSERT(zone_flags_available(zone->flags));
@@ -449,5 +454,5 @@
  *
  */
-static void zone_frame_free(zone_t *zone, size_t frame_idx)
+NO_TRACE static void zone_frame_free(zone_t *zone, size_t frame_idx)
 {
 	ASSERT(zone_flags_available(zone->flags));
@@ -470,5 +475,5 @@
 
 /** Return frame from zone. */
-static frame_t *zone_get_frame(zone_t *zone, size_t frame_idx)
+NO_TRACE static frame_t *zone_get_frame(zone_t *zone, size_t frame_idx)
 {
 	ASSERT(frame_idx < zone->count);
@@ -477,5 +482,5 @@
 
 /** Mark frame in zone unavailable to allocation. */
-static void zone_mark_unavailable(zone_t *zone, size_t frame_idx)
+NO_TRACE static void zone_mark_unavailable(zone_t *zone, size_t frame_idx)
 {
 	ASSERT(zone_flags_available(zone->flags));
@@ -506,5 +511,6 @@
  *
  */
-static void zone_merge_internal(size_t z1, size_t z2, zone_t *old_z1, buddy_system_t *buddy)
+NO_TRACE static void zone_merge_internal(size_t z1, size_t z2, zone_t *old_z1,
+    buddy_system_t *buddy)
 {
 	ASSERT(zone_flags_available(zones.info[z1].flags));
@@ -602,5 +608,5 @@
  *
  */
-static void return_config_frames(size_t znum, pfn_t pfn, size_t count)
+NO_TRACE static void return_config_frames(size_t znum, pfn_t pfn, size_t count)
 {
 	ASSERT(zone_flags_available(zones.info[znum].flags));
@@ -637,5 +643,6 @@
  *
  */
-static void zone_reduce_region(size_t znum, pfn_t frame_idx, size_t count)
+NO_TRACE static void zone_reduce_region(size_t znum, pfn_t frame_idx,
+    size_t count)
 {
 	ASSERT(zone_flags_available(zones.info[znum].flags));
@@ -777,6 +784,6 @@
  *
  */
-static void zone_construct(zone_t *zone, buddy_system_t *buddy, pfn_t start,
-    size_t count, zone_flags_t flags)
+NO_TRACE static void zone_construct(zone_t *zone, buddy_system_t *buddy,
+    pfn_t start, size_t count, zone_flags_t flags)
 {
 	zone->base = start;
Index: kernel/generic/src/mm/slab.c
===================================================================
--- kernel/generic/src/mm/slab.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/mm/slab.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -177,5 +177,6 @@
  *
  */
-static slab_t *slab_space_alloc(slab_cache_t *cache, unsigned int flags)
+NO_TRACE static slab_t *slab_space_alloc(slab_cache_t *cache,
+    unsigned int flags)
 {
 	
@@ -224,5 +225,5 @@
  *
  */
-static size_t slab_space_free(slab_cache_t *cache, slab_t *slab)
+NO_TRACE static size_t slab_space_free(slab_cache_t *cache, slab_t *slab)
 {
 	frame_free(KA2PA(slab->start));
@@ -236,5 +237,5 @@
 
 /** Map object to slab structure */
-static slab_t *obj2slab(void *obj)
+NO_TRACE static slab_t *obj2slab(void *obj)
 {
 	return (slab_t *) frame_get_parent(ADDR2PFN(KA2PA(obj)), 0);
@@ -252,5 +253,6 @@
  *
  */
-static size_t slab_obj_destroy(slab_cache_t *cache, void *obj, slab_t *slab)
+NO_TRACE static size_t slab_obj_destroy(slab_cache_t *cache, void *obj,
+    slab_t *slab)
 {
 	if (!slab)
@@ -293,5 +295,5 @@
  *
  */
-static void *slab_obj_create(slab_cache_t *cache, int flags)
+NO_TRACE static void *slab_obj_create(slab_cache_t *cache, unsigned int flags)
 {
 	spinlock_lock(&cache->slablock);
@@ -349,5 +351,6 @@
  *
  */
-static slab_magazine_t *get_mag_from_cache(slab_cache_t *cache, bool first)
+NO_TRACE static slab_magazine_t *get_mag_from_cache(slab_cache_t *cache,
+    bool first)
 {
 	slab_magazine_t *mag = NULL;
@@ -373,5 +376,6 @@
  *
  */
-static void put_mag_to_cache(slab_cache_t *cache, slab_magazine_t *mag)
+NO_TRACE static void put_mag_to_cache(slab_cache_t *cache,
+    slab_magazine_t *mag)
 {
 	spinlock_lock(&cache->maglock);
@@ -388,5 +392,6 @@
  *
  */
-static size_t magazine_destroy(slab_cache_t *cache, slab_magazine_t *mag)
+NO_TRACE static size_t magazine_destroy(slab_cache_t *cache,
+    slab_magazine_t *mag)
 {
 	size_t i;
@@ -406,9 +411,9 @@
  *
  */
-static slab_magazine_t *get_full_current_mag(slab_cache_t *cache)
+NO_TRACE static slab_magazine_t *get_full_current_mag(slab_cache_t *cache)
 {
 	slab_magazine_t *cmag = cache->mag_cache[CPU->id].current;
 	slab_magazine_t *lastmag = cache->mag_cache[CPU->id].last;
-
+	
 	ASSERT(spinlock_locked(&cache->mag_cache[CPU->id].lock));
 	
@@ -443,5 +448,5 @@
  *
  */
-static void *magazine_obj_get(slab_cache_t *cache)
+NO_TRACE static void *magazine_obj_get(slab_cache_t *cache)
 {
 	if (!CPU)
@@ -473,5 +478,5 @@
  *
  */
-static slab_magazine_t *make_empty_current_mag(slab_cache_t *cache)
+NO_TRACE static slab_magazine_t *make_empty_current_mag(slab_cache_t *cache)
 {
 	slab_magazine_t *cmag = cache->mag_cache[CPU->id].current;
@@ -479,5 +484,5 @@
 	
 	ASSERT(spinlock_locked(&cache->mag_cache[CPU->id].lock));
-
+	
 	if (cmag) {
 		if (cmag->busy < cmag->size)
@@ -523,5 +528,5 @@
  *
  */
-static int magazine_obj_put(slab_cache_t *cache, void *obj)
+NO_TRACE static int magazine_obj_put(slab_cache_t *cache, void *obj)
 {
 	if (!CPU)
@@ -552,5 +557,5 @@
  *
  */
-static size_t comp_objects(slab_cache_t *cache)
+NO_TRACE static size_t comp_objects(slab_cache_t *cache)
 {
 	if (cache->flags & SLAB_CACHE_SLINSIDE)
@@ -564,5 +569,5 @@
  *
  */
-static size_t badness(slab_cache_t *cache)
+NO_TRACE static size_t badness(slab_cache_t *cache)
 {
 	size_t objects = comp_objects(cache);
@@ -578,5 +583,5 @@
  *
  */
-static bool make_magcache(slab_cache_t *cache)
+NO_TRACE static bool make_magcache(slab_cache_t *cache)
 {
 	ASSERT(_slab_initialized >= 2);
@@ -600,5 +605,5 @@
  *
  */
-static void _slab_cache_create(slab_cache_t *cache, const char *name,
+NO_TRACE static void _slab_cache_create(slab_cache_t *cache, const char *name,
     size_t size, size_t align, int (*constructor)(void *obj,
     unsigned int kmflag), size_t (*destructor)(void *obj), unsigned int flags)
@@ -676,5 +681,5 @@
  *
  */
-static size_t _slab_reclaim(slab_cache_t *cache, unsigned int flags)
+NO_TRACE static size_t _slab_reclaim(slab_cache_t *cache, unsigned int flags)
 {
 	if (cache->flags & SLAB_CACHE_NOMAGAZINE)
@@ -781,5 +786,5 @@
  *
  */
-static void _slab_free(slab_cache_t *cache, void *obj, slab_t *slab)
+NO_TRACE static void _slab_free(slab_cache_t *cache, void *obj, slab_t *slab)
 {
 	ipl_t ipl = interrupts_disable();
Index: kernel/generic/src/proc/the.c
===================================================================
--- kernel/generic/src/proc/the.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/proc/the.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -49,4 +49,5 @@
  *
  * @param the THE structure to be initialized.
+ *
  */
 void the_initialize(the_t *the)
@@ -65,6 +66,7 @@
  * @param src The source THE structure.
  * @param dst The destination THE structure.
+ *
  */
-void the_copy(the_t *src, the_t *dst)
+NO_TRACE void the_copy(the_t *src, the_t *dst)
 {
 	*dst = *src;
Index: kernel/generic/src/sysinfo/sysinfo.c
===================================================================
--- kernel/generic/src/sysinfo/sysinfo.c	(revision e3ee9b996fb2779383344347bf7f08c9b77e82f7)
+++ kernel/generic/src/sysinfo/sysinfo.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
@@ -58,5 +58,5 @@
  *
  */
-static int sysinfo_item_constructor(void *obj, unsigned int kmflag)
+NO_TRACE static int sysinfo_item_constructor(void *obj, unsigned int kmflag)
 {
 	sysinfo_item_t *item = (sysinfo_item_t *) obj;
@@ -78,5 +78,5 @@
  *
  */
-static size_t sysinfo_item_destructor(void *obj)
+NO_TRACE static size_t sysinfo_item_destructor(void *obj)
 {
 	sysinfo_item_t *item = (sysinfo_item_t *) obj;
@@ -120,5 +120,5 @@
  *
  */
-static sysinfo_item_t *sysinfo_find_item(const char *name,
+NO_TRACE static sysinfo_item_t *sysinfo_find_item(const char *name,
     sysinfo_item_t *subtree, sysinfo_return_t **ret, bool dry_run)
 {
@@ -180,5 +180,5 @@
  *
  */
-static sysinfo_item_t *sysinfo_create_path(const char *name,
+NO_TRACE static sysinfo_item_t *sysinfo_create_path(const char *name,
     sysinfo_item_t **psubtree)
 {
@@ -458,5 +458,5 @@
  *
  */
-static void sysinfo_indent(unsigned int depth)
+NO_TRACE static void sysinfo_indent(unsigned int depth)
 {
 	unsigned int i;
@@ -473,5 +473,5 @@
  *
  */
-static void sysinfo_dump_internal(sysinfo_item_t *root, unsigned int depth)
+NO_TRACE static void sysinfo_dump_internal(sysinfo_item_t *root, unsigned int depth)
 {
 	sysinfo_item_t *cur = root;
@@ -567,5 +567,5 @@
  *
  */
-static sysinfo_return_t sysinfo_get_item(const char *name,
+NO_TRACE static sysinfo_return_t sysinfo_get_item(const char *name,
     sysinfo_item_t **root, bool dry_run)
 {
@@ -622,5 +622,5 @@
  *
  */
-static sysinfo_return_t sysinfo_get_item_uspace(void *ptr, size_t size,
+NO_TRACE static sysinfo_return_t sysinfo_get_item_uspace(void *ptr, size_t size,
     bool dry_run)
 {
