]> xenbits.xensource.com Git - people/royger/xen.git/commitdiff
xen: Annotate printk() as cold
authorAndrew Cooper <andrew.cooper3@citrix.com>
Sat, 18 Feb 2023 00:46:49 +0000 (00:46 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 21 Nov 2023 13:28:51 +0000 (13:28 +0000)
There is no such thing as a fastpath with a printk() on it, making printk() an
excellent heuristic for slowpaths.

Net delta is:

  add/remove: 595/2 grow/shrink: 56/762 up/down: 70879/-87331 (-16452)
  Total: Before=4085425, After=4068973, chg -0.40%

because cold functions are optimised differently.  For example, one function
with a particularly large swing is:

  vmcs_dump_vcpu.cold                            -    2172   +2172
  vmcs_dump_vcpu                              7030     408   -6622

with a net delta of 7030 down to 4450.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/include/xen/lib.h

index 8eef557dd5f6243128aa7449509b2032858cc742..1793be5b6b8917a129b11b08c50b27b1fa43ebd6 100644 (file)
@@ -79,7 +79,7 @@ debugtrace_printk(const char *fmt, ...) {}
 /* Allows us to use '%p' as general-purpose machine-word format char. */
 #define _p(_x) ((void *)(unsigned long)(_x))
 extern void printk(const char *fmt, ...)
-    __attribute__ ((format (printf, 1, 2)));
+    __attribute__ ((format (printf, 1, 2), cold));
 
 #define printk_once(fmt, args...)               \
 ({                                              \