blob: cb5507b1ac8189596875edc65e9b0d38a539729b [file] [log] [blame]
Takenori Nagano95e0a872008-07-15 17:49:42 +09001NOTE:
2This is a version of Documentation/SubmitChecklist into Japanese.
3This document is maintained by Takenori Nagano <t-nagano@ah.jp.nec.com>
4and the JF Project team <http://www.linux.or.jp/JF/>.
5If you find any difference between this document and the original file
6or a problem with the translation,
7please contact the maintainer of this file or JF project.
8
9Please also note that the purpose of this file is to be easier to read
10for non English (read: Japanese) speakers and is not intended as a
11fork. So if you have any comments or updates of this file, please try
12to update the original English file first.
13
14Last Updated: 2008/07/14
15==================================
16これは、
17linux-2.6.26/Documentation/SubmitChecklist の和訳です。
18
19翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >
20翻訳日: 2008/07/14
21翻訳者: Takenori Nagano <t-nagano at ah dot jp dot nec dot com>
22校正者: Masanori Kobayashi さん <zap03216 at nifty dot ne dot jp>
23==================================
24
25
26Linux カーネルパッチ投稿者向けチェックリスト
27~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28
29本書では、パッチをより素早く取り込んでもらいたい開発者が実践すべき基本的な事柄
30をいくつか紹介します。ここにある全ての事柄は、Documentation/SubmittingPatches
31などのLinuxカーネルパッチ投稿に際しての心得を補足するものです。
32
33 1: 妥当なCONFIGオプションや変更されたCONFIGオプション、つまり =y, =m, =n
34 全てで正しくビルドできることを確認してください。その際、gcc及びリンカが
35 warningerrorを出していないことも確認してください。
36
37 2: allnoconfig, allmodconfig オプションを用いて正しくビルドできることを
38 確認してください。
39
40 3: 手許のクロスコンパイルツールやOSDLPLMのようなものを用いて、複数の
41 アーキテクチャにおいても正しくビルドできることを確認してください。
42
43 4: 64bit長の'unsigned long'を使用しているppc64は、クロスコンパイルでの
44 チェックに適当なアーキテクチャです。
45
46 5: カーネルコーディングスタイルに準拠しているかどうか確認してください(!)
47
48 6: CONFIGオプションの追加・変更をした場合には、CONFIGメニューが壊れていない
49 ことを確認してください。
50
51 7: 新しくKconfigのオプションを追加する際には、必ずそのhelpも記述してください。
52
53 8: 適切なKconfigの依存関係を考えながら慎重にチェックしてください。
54 ただし、この作業はマシンを使ったテストできちんと行うのがとても困難です。
55 うまくやるには、自分の頭で考えることです。
56
57 9: sparseを利用してちゃんとしたコードチェックをしてください。
58
5910: 'make checkstack' 'make namespacecheck' を利用し、問題が発見されたら
60 修正してください。'make checkstack' は明示的に問題を示しませんが、どれか
61 1つの関数が512バイトより大きいスタックを使っていれば、修正すべき候補と
62 なります。
63
6411: グローバルなkernel API を説明する kernel-doc をソースの中に含めてください。
65 ( staticな関数においては必須ではありませんが、含めてもらっても結構です )
66 そして、'make htmldocs' もしくは 'make mandocs' を利用して追記した
67 ドキュメントのチェックを行い、問題が見つかった場合には修正を行ってください。
68
6912: CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT, CONFIG_DEBUG_SLAB,
70 CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK,
Frederic Weisbeckerd902db12011-06-08 19:31:56 +020071 CONFIG_DEBUG_ATOMIC_SLEEP これら全てを同時に有効にして動作確認を
Takenori Nagano95e0a872008-07-15 17:49:42 +090072 行ってください。
73
7413: CONFIG_SMP, CONFIG_PREEMPT を有効にした場合と無効にした場合の両方で
75 ビルドした上、動作確認を行ってください。
76
7714: もしパッチがディスクのI/O性能などに影響を与えるようであれば、
Bartlomiej Zolnierkiewicz90c699a2009-06-19 08:08:50 +020078 'CONFIG_LBDAF'オプションを有効にした場合と無効にした場合の両方で
Takenori Nagano95e0a872008-07-15 17:49:42 +090079 テストを実施してみてください。
80
8115: lockdepの機能を全て有効にした上で、全てのコードパスを評価してください。
82
8316: /proc に新しいエントリを追加した場合には、Documentation/ 配下に
84 必ずドキュメントを追加してください。
85
8617: 新しいブートパラメータを追加した場合には、
87 必ずDocumentation/kernel-parameters.txt に説明を追加してください。
88
8918: 新しくmoduleにパラメータを追加した場合には、MODULE_PARM_DESC()を
90 利用して必ずその説明を記述してください。
91
9219: 新しいuserspaceインタフェースを作成した場合には、Documentation/ABI/
93 Documentation/ABI/README を参考にして必ずドキュメントを追加してください。
94
9520: 'make headers_check'を実行して全く問題がないことを確認してください。
96
9721: 少なくともslabアロケーションとpageアロケーションに失敗した場合の
98 挙動について、fault-injectionを利用して確認してください。
99 Documentation/fault-injection/ を参照してください。
100
101 追加したコードがかなりの量であったならば、サブシステム特有の
102 fault-injectionを追加したほうが良いかもしれません。
103
10422: 新たに追加したコードは、`gcc -W'でコンパイルしてください。
105 このオプションは大量の不要なメッセージを出力しますが、
106 "warning: comparison between signed and unsigned" のようなメッセージは、
107 バグを見つけるのに役に立ちます。
108
10923: 投稿したパッチが -mm パッチセットにマージされた後、全ての既存のパッチや
110 VM, VFS およびその他のサブシステムに関する様々な変更と、現時点でも共存
111 できることを確認するテストを行ってください。