lkml.org 
[lkml]   [2012]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: Regression: Spurious "^A" in UML output
    From
    Date
    On Thu, 2012-08-16 at 15:17 +0200, Geert Uytterhoeven wrote:
    > In v3.6-rc1 UML, I see spurious "^A" (ASCII 1, SOH) characters in some kernel
    > messages:
    >
    > Calibrating delay loop... 4640.76 BogoMIPS (lpj=23203840)
    > pid_max: default: 32768 minimum: 301
    > Mount-cache hash table entries: 256
    > ^AChecking that host ptys support output SIGIO...Yes
    > ^AChecking that host ptys support SIGIO on close...No, enabling workaround
    > ^AUsing 2.6 host AIO
    > NET: Registered protocol family 16
    > bio: create slab <bio-0> at 0
    > Switching to clocksource itimer
    >
    > This happens for all output using the "printk(UM_KERN_XXX ...)" idiom.

    Were these emitted with "KERN_<LEVEL>" string constants
    before this change (not <[0-7]>", but the string text
    KERN_INFO, KERN_WARNING, etc...)?

    > The "UM_KERN_XXX" defines are generated from the KERN_XXX defines in
    > arch/um/include/shared/common-offsets.h using:
    >
    > DEFINE_STR(UM_KERN_EMERG, KERN_EMERG);
    []
    > I.e. only the SOH character is retained in the actual define, the remainder ends
    > up in the comment.
    >
    > Apparently the combo of DEFINE_STR() in
    > arch/x86/um/shared/sysdep/kernel-offsets.h
    > and sed-y in Kbuild doesn't support string constants consisting of
    > multiple parts.
    >
    > A quick fix is the (whitespace-damaged) patch below, but this would reduce
    > readability. And I'm afraid my sed-foo is not good enough to fix it better.
    > Any takers?

    Perhaps it's better to change the um STR macro instead

    $ git grep -w DEFINE_STR
    arch/um/include/shared/common-offsets.h:DEFINE_STR(UM_KERN_EMERG, KERN_EMERG);
    arch/um/include/shared/common-offsets.h:DEFINE_STR(UM_KERN_ALERT, KERN_ALERT);
    arch/um/include/shared/common-offsets.h:DEFINE_STR(UM_KERN_CRIT, KERN_CRIT);
    arch/um/include/shared/common-offsets.h:DEFINE_STR(UM_KERN_ERR, KERN_ERR);
    arch/um/include/shared/common-offsets.h:DEFINE_STR(UM_KERN_WARNING, KERN_WARNING);
    arch/um/include/shared/common-offsets.h:DEFINE_STR(UM_KERN_NOTICE, KERN_NOTICE);
    arch/um/include/shared/common-offsets.h:DEFINE_STR(UM_KERN_INFO, KERN_INFO);
    arch/um/include/shared/common-offsets.h:DEFINE_STR(UM_KERN_DEBUG, KERN_DEBUG);
    arch/um/include/shared/common-offsets.h:DEFINE_STR(UM_KERN_CONT, KERN_CONT);
    arch/x86/um/shared/sysdep/kernel-offsets.h:#define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " STR(val) " " #val: : )

    $ git grep -w STR arch/x86/um/shared/
    arch/x86/um/shared/sysdep/kernel-offsets.h:#define STR(x) #x
    arch/x86/um/shared/sysdep/kernel-offsets.h:#define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " STR(val) " " #val: : )




    \
     
     \ /
      Last update: 2012-08-16 16:41    [W:0.028 / U:0.804 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site