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. 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); DEFINE_STR(UM_KERN_ALERT, KERN_ALERT); DEFINE_STR(UM_KERN_CRIT, KERN_CRIT); DEFINE_STR(UM_KERN_ERR, KERN_ERR); DEFINE_STR(UM_KERN_WARNING, KERN_WARNING); DEFINE_STR(UM_KERN_NOTICE, KERN_NOTICE); DEFINE_STR(UM_KERN_INFO, KERN_INFO); DEFINE_STR(UM_KERN_DEBUG, KERN_DEBUG); DEFINE_STR(UM_KERN_CONT, KERN_CONT); Before commit 04d2c8c83d0e3ac5f78aeede51babb3236200112 ("printk: convert the format for KERN_<LEVEL> to a 2 byte pattern"), these were expanded in include/generated/asm-offsets.h to: #define UM_KERN_EMERG "<0>" /* KERN_EMERG */ #define UM_KERN_ALERT "<1>" /* KERN_ALERT */ #define UM_KERN_CRIT "<2>" /* KERN_CRIT */ #define UM_KERN_ERR "<3>" /* KERN_ERR */ #define UM_KERN_WARNING "<4>" /* KERN_WARNING */ #define UM_KERN_NOTICE "<5>" /* KERN_NOTICE */ #define UM_KERN_INFO "<6>" /* KERN_INFO */ #define UM_KERN_DEBUG "<7>" /* KERN_DEBUG */ #define UM_KERN_CONT "<c>" /* KERN_CONT */ In v3.6-rc1, they expand to: #define UM_KERN_EMERG "\001" /* "0" KERN_EMERG */ #define UM_KERN_ALERT "\001" /* "1" KERN_ALERT */ #define UM_KERN_CRIT "\001" /* "2" KERN_CRIT */ #define UM_KERN_ERR "\001" /* "3" KERN_ERR */ #define UM_KERN_WARNING "\001" /* "4" KERN_WARNING */ #define UM_KERN_NOTICE "\001" /* "5" KERN_NOTICE */ #define UM_KERN_INFO "\001" /* "6" KERN_INFO */ #define UM_KERN_DEBUG "\001" /* "7" KERN_DEBUG */ #define UM_KERN_CONT "\001" /* "c" KERN_CONT */ 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? diff --git a/include/linux/kern_levels.h b/include/linux/kern_levels.h index 866caaa..1c43b52 100644 --- a/include/linux/kern_levels.h +++ b/include/linux/kern_levels.h @@ -4,16 +4,16 @@ #define KERN_SOH "\001" /* ASCII Start Of Header */ #define KERN_SOH_ASCII '\001' -#define KERN_EMERG KERN_SOH "0" /* system is unusable */ -#define KERN_ALERT KERN_SOH "1" /* action must be taken immediately */ -#define KERN_CRIT KERN_SOH "2" /* critical conditions */ -#define KERN_ERR KERN_SOH "3" /* error conditions */ -#define KERN_WARNING KERN_SOH "4" /* warning conditions */ -#define KERN_NOTICE KERN_SOH "5" /* normal but significant condition */ -#define KERN_INFO KERN_SOH "6" /* informational */ -#define KERN_DEBUG KERN_SOH "7" /* debug-level messages */ +#define KERN_EMERG "\0010" /* system is unusable */ +#define KERN_ALERT "\0011" /* action must be taken immediately */ +#define KERN_CRIT "\0012" /* critical conditions */ +#define KERN_ERR "\0013" /* error conditions */ +#define KERN_WARNING "\0014" /* warning conditions */ +#define KERN_NOTICE "\0015" /* normal but significant condition */ +#define KERN_INFO "\0016" /* informational */ +#define KERN_DEBUG "\0017" /* debug-level messages */ -#define KERN_DEFAULT KERN_SOH "d" /* the default kernel loglevel */ +#define KERN_DEFAULT "\001d" /* the default kernel loglevel */ /* * Annotation for a "continued" line of log printout (only done after a Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel