• Chris Down's avatar
    printk: index: Add indexing support to dev_printk · ad7d61f1
    Chris Down authored
    While for most kinds of issues we have counters, tracepoints, or metrics
    with a stable interface which can reliably be used to indicate issues,
    in order to react to production issues quickly we sometimes need to work
    with the interface which most kernel developers naturally use when
    developing: printk, and printk-esques like dev_printk.
    
    dev_printk is by far the most likely custom subsystem printk to benefit
    from the printk indexing infrastructure, since niche device issues
    brought about by production changes, firmware upgrades, and the like are
    one of the most common things that we need printk infrastructure's
    assistance to monitor.
    
    Often these errors were never expected to practically manifest in
    reality, and exhibit in code without extensive (or any) metrics present.
    As such, there are typically very few options for issue detection
    available to those with large fleets at the time the incident happens,
    and we thus benefit strongly from monitoring netconsole in these
    instances.
    
    As such, add the infrastructure for dev_printk to be indexed in the
    printk index. Even on a minimal kernel config, the coverage of the base
    kernel's printk index is significantly improved:
    
    Before:
    
        [root@ktst ~]# wc -l /sys/kernel/debug/printk/index/vmlinux
        4497 /sys/kernel/debug/printk/index/vmlinux
    
    After:
    
        [root@ktst ~]# wc -l /sys/kernel/debug/printk/index/vmlinux
        5573 /sys/kernel/debug/printk/index/vmlinux
    
    In terms of implementation, in order to trivially disambiguate them,
    dev_printk is now a macro which wraps _dev_printk.
    Signed-off-by: default avatarChris Down <chris@chrisdown.name>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Reviewed-by: default avatarPetr Mladek <pmladek@suse.com>
    Tested-by: default avatarPetr Mladek <pmladek@suse.com>
    Acked-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: default avatarPetr Mladek <pmladek@suse.com>
    Link: https://lore.kernel.org/r/959c7aed1017cb2c9de922e0a820d397e29c6a5a.1623775748.git.chris@chrisdown.name
    ad7d61f1
core.c 129 KB