twitter icon   twitter icon   rss icon

Linux.com Japan

Home Linux コミュニティ カーネル開発者への道 Kernel MessageにIDを!

カーネル開発者への道

『Kernel MessageにIDを!』

Act4: LinuxCon Japanへ


  さてとにもかくにも、様々の協議を経て、ひとまずプロトタイプマッチは伊藤の提案で次の通りになった。

diff --git a/kernel/printk.c b/kernel/printk.c

index 8fe465a..e20b429 100644

--- a/kernel/printk.c

+++ b/kernel/printk.c

@@ -39,6 +39,7 @@

 #include

 #include

 #include

+#include

 

 #include

 

@@ -566,6 +567,13 @@ static int printk_time = 0;

 #endif

 module_param_named(time, printk_time, bool, S_IRUGO | S_IWUSR);

 

+#if defined(CONFIG_PRINTK_MSGID)

+static int printk_msgid = 1;

+#else

+static int printk_msgid = 0;

+#endif

+module_param_named(msgid, printk_msgid, bool, S_IRUGO | S_IWUSR);

+

 /* Check if we have any console registered that can be called early in

boot. */

 static int have_callable_console(void)

 {

@@ -791,6 +799,24 @@ asmlinkage int vprintk(const char *fmt, va_list args)

                               printed_len += tlen;

                       }

 

+                       if (printk_msgid) {

+                               char *tp;

+                               u32 mid = 0;

+                               char midbuf[16];

+                               unsigned midlen;

+

+                               tp = fmt;

+                               while (*tp && *tp != ':')

+                                       tp++;

+                               if (!*tp)

+                                       tp = fmt;

+                               mid = crc32(mid, tp, strlen(tp));

+                               midlen = sprintf(midbuf, "(%08x): ", mid);

+                               for (tp = midbuf; tp < midbuf + midlen; tp++)

+                                       emit_log_char(*tp);

+                               printed_len += midlen;

+                       }

+

                       if (!*p)

                               break;

               }

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug

index 1b4afd2..3ae3916 100644

--- a/lib/Kconfig.debug

+++ b/lib/Kconfig.debug

@@ -9,6 +9,15 @@ config PRINTK_TIME

         operations.  This is useful for identifying long delays

         in kernel startup.

 

+config PRINTK_MSGID

+       bool "Show message id on printks"

+       default n

+       depends on PRINTK

+       select CRC32

+       help

+         Selecting this option causes message id to be

+         included in printk output.

+

 config ENABLE_WARN_DEPRECATED

       bool "Enable __deprecated logic"

       default y

  Ted のハイレベルコメントを反映し て、カーネルが用意しているCRCを用い、結果を進数で表示するようにした。 ハッシュの一意性に固執しないので、現在カーネ ルライブラリにある最長のCRC32を採用した。また、32ビッ ト値だと、36進数による桁数削減効果が少ないので、16進 数標記にとどめた。

  このパッチの最終的なゴールはLinusに認めさせて、メインラインに入れることである。

  その為にはTedのみから理解を得ても仕方が無い。Linusに近い多くのコア開発者の賛同を得た上で、LKMLへ投稿する必要がある。

  その為に、多くのコア開発者にこのパッチの趣旨を説明し、意見を聞き、それを反映させ、最終的には賛同してもらう必要がある。

  それを行うための最高の場所が存在する。

  『LinuxCon Japan』である。

 LinuxCon Japanには世界中からメンテナクラスの開発者が多数集結する。

世 界中から集まるコア開発者に、このパッチを説明し、賛同を得るまたと無い機会なのである。

 

(以 下続く、、、)

Linux Foundationメンバーシップ

30人のカーネル開発者

人気コンテンツ

  1. Today's Linux 2018/01/10 2018年 1月 09日
  2. Today's Linux 2018/01/12 2018年 1月 11日
  3. Today's Linux 2018/01/15 2018年 1月 14日
  4. Today's Linux 2018/01/16 2018年 1月 15日
  5. Today's Linux 2018/01/17 2018年 1月 16日

Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!