Both logging and calls to panic are never in the critical path. Use the GCC attribute cold to mark these functions as cold, which generates more optimised code. Signed-off-by: Stephen Hemminger --- lib/librte_eal/common/include/rte_debug.h | 1 + lib/librte_eal/common/include/rte_log.h | 1 + 2 files changed, 2 insertions(+) --- a/lib/librte_eal/common/include/rte_debug.h 2013-05-29 08:45:38.888471864 -0700 +++ b/lib/librte_eal/common/include/rte_debug.h 2013-05-29 08:49:12.361864834 -0700 @@ -87,6 +87,7 @@ void rte_dump_registers(void); * documentation. */ void __rte_panic(const char *funcname , const char *format, ...) + __attribute__((cold)) __attribute__((noreturn)) __attribute__((format(printf, 2, 3))); --- a/lib/librte_eal/common/include/rte_log.h 2013-03-28 08:50:50.234413869 -0700 +++ b/lib/librte_eal/common/include/rte_log.h 2013-05-29 08:49:12.361864834 -0700 @@ -216,6 +216,7 @@ int rte_log_add_in_history(const char *b * - Negative on error. */ int rte_log(uint32_t level, uint32_t logtype, const char *format, ...) + __attribute__((cold)) __attribute__((format(printf, 3, 4))); /**