• Thomas Renninger's avatar
    Dynamic Debug: Initialize dynamic debug earlier via arch_initcall · 6a5c083d
    Thomas Renninger authored
    Having the ddebug_query= boot parameter it makes sense to set up
    dynamic debug as soon as possible.
    
    I expect sysfs files cannot be set up via an arch_initcall, because
    this one is even before fs_initcall. Therefore I splitted the
    dynamic_debug_init function into an early one and a later one providing
    /sys/../dynamic_debug/control file.
    
    Possibly dynamic_debug can be initialized even earlier, not sure whether
    this still makes sense then. I picked up arch_initcall as it covers
    quite a lot already.
    
    Dynamic debug needs to allocate memory, therefore it's not easily possible to
    set it up even before the command line gets parsed.
    Therefore the boot param query string is stored in a temp string which is
    applied when dynamic debug gets set up.
    
    This has been tested with ddebug_query="file ec.c +p"
    and I could retrieve pr_debug() messages early at boot during ACPI setup:
    ACPI: EC: Look up EC in DSDT
    ACPI: EC: ---> status = 0x08
    ACPI: EC: transaction start
    ACPI: EC: <--- command = 0x80
    ACPI: EC: ~~~> interrupt
    ACPI: EC: ---> status = 0x08
    ACPI: EC: <--- data = 0xa4
    ...
    ACPI: Interpreter enabled
    ACPI: (supports S0 S3 S4 S5)
    ACPI: Using IOAPIC for interrupt routing
    ACPI: EC: ---> status = 0x00
    ACPI: EC: transaction start
    ACPI: EC: <--- command = 0x80
    Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
    Acked-by: jbaron@redhat.com
    Acked-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
    CC: linux-acpi@vger.kernel.org
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    6a5c083d
dynamic_debug.c 19 KB