· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Submit Checklist

Linux Kernel patch submission checklist

¸®´ª½º Ä¿³Î ÆÐÄ¡ Á¦Ãâ üũ¸®½ºÆ®

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Here are some basic things that developers should do if they want to see their kernel patch submissions accepted more quickly.

ÀÌ ¹®¼­´Â Ä¿³Î °³¹ßÀÚµéÀÌ ÀÚ½ÅÀÌ ÀÛ¼ºÇÑ Ä¿³Î ÆÐÄ¡¸¦ Á¦ÃâÇÒ ¶§ Á¦ÃâÇÑ Ä¿³Î ÆÐÄ¡°¡ ºü¸£°Ô ¹Þ¾Æµé¿©Áö´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ¼³¸íÇÑ´Ù.


These are all above and beyond the documentation that is provided in Documentation/SubmittingPatches and elsewhere regarding submitting Linux kernel patches.

¿©±â¿¡¼­´Â Documentation/SubmittingPatches³ª ´Ù¸¥ °÷¿¡¼­ ¼³¸íÇÑ ¸®´ª½º Ä¿³Î ÆÐÄ¡ Á¦Ãâ ¹æ¹ý ÀÌ¿ÜÀÇ »çÇ×À» ´Ù·ê °ÍÀÌ´Ù.


1: Builds cleanly with applicable or modified CONFIG options =y, =m, and =n. No gcc warnings/errors, no linker warnings/errors.

1: Ä¿³Î ÄÁÇÇ±× ¿É¼ÇÀ» =y, =m, =n Áß¿¡ ¾î¶°ÇÑ °ÍÀ¸·Î ÇÏ´õ¶óµµ gcc ÄÄÆÄÀÏ, ¸µÅ© Áß¿¡ °æ°í ȤÀº ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù.


2: Passes allnoconfig, allmodconfig

2: allnoconfig, allmodconfig ¼³Á¤ ½Ã¿¡µµ ÄÄÆÄÀÏ ½Ã¿¡ °æ°í ȤÀº ¿¡·¯°¡ ¾ø¾î¾ß ÇÑ´Ù.


3: Builds on multiple CPU architectures by using local cross-compile tools or something like PLM at OSDL.

3: OSDLÀÇ PLMÀ̳ª ´Ù¸¥ Å©·Î½º ÄÄÆÄÀÏ ÅøÀ» »ç¿ëÇÏ¿© ´Ù¾çÇÑ CPU »ó¿¡¼­ ºôµå¸¦ Å×½ºÆ® ÇØ¾ß ÇÑ´Ù.


4: ppc64 is a good architecture for cross-compilation checking because it tends to use `unsigned long' for 64-bit quantities.

4: ppc64´Â 'unsigned long'À» 64ºñÆ® º¯¼ö·Î »ç¿ëÇÏ´Â °æÇâÀÌ Àֱ⠶§¹®¿¡ Å©·Î½º ÄÄÆÄÀÏÀ» üũÇϱ⿡ ÁÁÀº ¾ÆÅ°ÅØÃÄÀÌ´Ù.


5: Matches kernel coding style(!)

5: Ä¿³Î ÄÚµù ½ºÅ¸ÀÏÀ» µû¶ó¾ß ÇÑ´Ù.


6: Any new or modified CONFIG options don't muck up the config menu.

6: »õ·Ó°Ô Ãß°¡µÇ°Å³ª ¼öÁ¤µÈ CONFIG ¿É¼ÇÀÌ ±âÁ¸ÀÇ config ¸Þ´º¸¦ ±ú¶ß·Á¼­´Â ¾ÈµÈ´Ù.


7: All new Kconfig options have help text.

7: »õ·Ó°Ô Ãß°¡µÈ ¸ðµç Kconfig ¿É¼ÇÀº µµ¿ò¸»À» Á¦°øÇØ¾ß ÇÑ´Ù.


8: Has been carefully reviewed with respect to relevant Kconfig combinations. This is very hard to get right with testing -- brainpower pays off here.

8: Kconfig Á¶ÇÕÀÌ ÀûÀýÇÏ°Ô ÀÌ·ç¾îÁ³´ÂÁö ÁÖÀÇÇÏ¿© ÃæºÐÇÑ °ËÅ並 ÇØ¾ß ÇÑ´Ù. ÀÌ ÀÛ¾÷Àº ¸Å¿ì ¾î·Á¿î ÀÛ¾÷À̸ç ÃæºÐÇÑ Å×½ºÆ®¸¦ ÅëÇØ °ËÁõµÇ¾î¾ß ÇÑ´Ù. -- ¶Ù¾î³­ »ç¶÷µéÀÌ ÀÌ ÀÛ¾÷¿¡ ½Ã°£À» ÅõÀÚÇØ¾ß ÇÒ °ÍÀÌ´Ù.


9: Check cleanly with sparse.

9: ¾û¼ºÇÑ ºÎºÐµéÀ» ±ú²ýÇÏ°Ô ¼öÁ¤ÇÑ´Ù.


10: Use 'make checkstack' and 'make namespacecheck' and fix any problems that they find. Note: checkstack does not point out problems explicitly, but any one function that uses more than 512 bytes on the stack is a candidate for change.

10: 'make checkstack'°ú 'make namespacecheck'À» »ç¿ëÇÏ¿© ¹ß°ßµÈ ¹ö±×µéÀ» ¼öÁ¤ÇÑ´Ù. Note: checkstackÀÌ ¸ðµç ¹®Á¦¸¦ ¸í¹éÇÏ°Ô ¹ß°ßÇÏÁö´Â ¸øÇÏÁö¸¸ ½ºÅÃÀ» 512¹ÙÀÌÆ® ÀÌ»ó »ç¿ëÇÏ´Â ÇÔ¼ö¸¦ ¹ß°ßÇÏ¿© ¼öÁ¤Çϵµ·Ï ±Ç°íÇÒ °ÍÀÌ´Ù.


11: Include kernel-doc to document global kernel APIs. (Not required for static functions, but OK there also.) Use 'make htmldocs' or 'make mandocs' to check the kernel-doc and fix any issues.

11: Ä¿³Î API ¹®¼­¸¦ À§ÇÑ kernel-docÀ» ÀÛ¼ºÇÏ¿©¾ß ÇÑ´Ù. (Á¤Àû ÇÔ¼ö¸¦ À§ÇÑ ¹®¼­±îÁö ÀÛ¼ºÇÒ ÇÊ¿ä´Â ¾øÁö¸¸, ÀÛ¼ºÇÏ¿©µµ ¹®Á¦°¡ µÉ °ÍÀº ¾ø´Ù.) kernel-docÀÌ Á¦´ë·Î ÀÛ¼ºµÇ¾ú´ÂÁö üũÇϱâ À§Çؼ­ 'make htmldocs'¿Í 'make mandocs'¸¦ »ç¿ëÇÑ´Ù.


12: Has been tested with CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT, CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP all simultaneously enabled.

12: CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT, CONFIG_DEBUG_SLAB, CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK, CONFIG_DEBUG_SPINLOCK_SLEEP ¿É¼ÇÀ» ¸ðµÎ ¼³Á¤ÇÏ¿© Ä¿ÆÄÀÏÇÑ ÈÄ Å×½ºÆ®¸¦ °ÅÃÄ¾ß ÇÑ´Ù.


13: Has been build- and runtime tested with and without CONFIG_SMP and CONFIG_PREEMPT.

13: CONFIG_SMP¿Í CONFIG_PREEMPT¸¦ Æ÷ÇÔÇÑ ºôµå/µ¿ÀÛ Å×½ºÆ®¿Í µÎ ¿É¼ÇÀ» Á¦°ÅÇÑ ºôµå/µ¿ÀÛ Å×½ºÆ® ¸ðµÎ¸¦ ¼öÇàÇØ¾ß ÇÑ´Ù.


14: If the patch affects IO/Disk, etc: has been tested with and without CONFIG_LBD.

14: ¸¸¾à ´ç½ÅÀÌ ÀÛ¼ºÇÑ ÆÐÄ¡°¡ IO/Disk³ª ±× ÀÌ¿ÜÀÇ °Í¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù¸é, CONFIG_LBD¸¦ Æ÷ÇÔÇÑ Å×½ºÆ®¿Í Æ÷ÇÔÇÏÁö ¾Ê´Â Å×½ºÆ®¸¦ ¼öÇàÇ϶ó.


15: All codepaths have been exercised with all lockdep features enabled.


16: All new /proc entries are documented under Documentation/

16: »õ·Ó°Ô ÀÛ¼ºµÈ ¸ðµç /proc ¿£Æ®¸®µéÀº Documentation µð·ºÅ丮 ¾È¿¡ ¹®¼­È­ÇÑ´Ù.


17: All new kernel boot parameters are documented in Documentation/kernel-parameters.txt.

17: »õ·Ó°Ô ÀÛ¼ºµÈ ¸ðµç Ä¿³Î ºÎÆ® ÆĶó¹ÌÅ͵éÀº Documentation/kernel-parameters.txt ÆÄÀÏ¿¡ ¹®¼­È­ÇÑ´Ù.


18: All new module parameters are documented with MODULE_PARM_DESC()

18: »õ·Ó°Ô ÀÛ¼ºµÈ ¸ðµç ¸ðµâ ÆĶó¹ÌÅ͵éÀº MODULE_PARM_DESC() ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇÏ¿© ¹®¼­È­ÇÑ´Ù.


19: All new userspace interfaces are documented in Documentation/ABI/. See Documentation/ABI/README for more information.

19: »õ·Ó°Ô ÀÛ¼ºµÈ ¸ðµç À¯Àú ¿µ¿ª ÀÎÅÍÆäÀ̽ºµéÀº Documentation/ABI/ µð·ºÅ丮¿¡ ¹®¼­È­ÇÑ´Ù. º¸´Ù ÀÚ¼¼ÇÑ »çÇ×Àº Documentation/ABI/README ¹®¼­¸¦ ÂüÁ¶ÇÑ´Ù.


20: Check that it all passes `make headers_check'.

20: 'make headers_check'¸¦ ½ÃÇàÇÏ¿© ¿¡·¯°¡ ¹ß»ýÇÏÁö ¾Ê´ÂÁö üũÇÑ´Ù.


21: Has been checked with injection of at least slab and page-allocation
failures. See Documentation/fault-injection/.

If the new code is substantial, addition of subsystem-specific fault injection might be appropriate.

21:

22: Newly-added code has been compiled with `gcc -W' (use "make
EXTRA_CFLAGS=-W"). This will generate lots of noise, but is good for finding bugs like "warning: comparison between signed and unsigned".

23: Tested after it has been merged into the -mm patchset to make sure
that it still works with all of the other queued patches and various changes in the VM, VFS, and other subsystems.

24: Avoid whitespace damage such as indenting with spaces or whitespace
at the end of lines. You can test this by feeding the patch to "git apply --check --whitespace=error-all"

25: Check your patch for general style as detailed in
Documentation/CodingStyle. Check for trivial violations with the patch style checker prior to submission (scripts/checkpatch.pl). You should be able to justify all violations that remain in your patch.


ID
Password
Join
You are farsighted, a good planner, an ardent lover, and a faithful friend.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2008-03-18 10:26:00
Processing time 0.0054 sec