Will My Patch Make It? And How Fast?

274 views
238 views

Published on

The Linux kernel follows an extremely distributed reviewing and integration process supported by 130 developer mailing lists and a hierarchy of dozens of Git repositories for version control. Since not every patch can make it and of those that do, some patches require a lot more reviewing and integra- tion effort than others, developers, reviewers and integrators need support for estimating which patches are worthwhile to spend effort on and which ones do not stand a chance. This paper cross- links and analyzes eight years of patch reviews from the kernel mailing lists and committed patches from the Git repository to understand which patches are accepted and how long it takes those patches to get to the end user. We found that 33% of the patches makes it into a Linux release, and that most of them need 3 to 6 months for this. Furthermore, that patches developed by more experienced developers are more easily accepted and faster reviewed and integrated. Additionally, reviewing time is impacted by submission time, the number of affected subsystems by the patch and the number of requested reviewers.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
274
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Will My Patch Make It? And How Fast?

  1. 1. Yujuan Jiang, Bram Adams (MCIS, Polytechnique Montréal)Daniel M. German (University ofVictoria )Will My Patch Make It?And How Fast?11Sunday, 19 May, 13
  2. 2. I do hold out hope that Google doescome around and works to fix theircodebase to get it merged upstream tostop the huge blockage that they havenow caused in a large number ofembedded Linux hardware companies[…] But I need the help of the Googledevelopers to make it happen, withoutthem, nothing can change.http://www.kroah.com/log/linux/android-kernel-problems.html2GregKroah-Hartman2Sunday, 19 May, 13
  3. 3. Integration Process33Sunday, 19 May, 13
  4. 4. Integration Process3Reviewing Integration Staging3Sunday, 19 May, 13
  5. 5. Integration Process3Reviewing Integration Staging3Sunday, 19 May, 13
  6. 6. Integration Process3contributor 1contributor 2contributor 3Reviewing Integration Staging3Sunday, 19 May, 13
  7. 7. Integration Process3contributor 1contributor 2contributor 3Reviewing Integration Staging3Sunday, 19 May, 13
  8. 8. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlReviewing Integration Staging3Sunday, 19 May, 13
  9. 9. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlReviewing Integration Staging3Sunday, 19 May, 13
  10. 10. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlReviewing Integration Staging3Sunday, 19 May, 13
  11. 11. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlReviewing Integration Staging3Sunday, 19 May, 13
  12. 12. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlsubsystemmaintainer1subsystemmaintainer1Reviewing Integration Staging3Sunday, 19 May, 13
  13. 13. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlsubsystemmaintainer1subsystemmaintainer1Reviewing Integration Staging3Sunday, 19 May, 13
  14. 14. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlsubsystemmaintainer1subsystemmaintainer1Reviewing Integration Staging3Sunday, 19 May, 13
  15. 15. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlsubsystemmaintainer1subsystemmaintainer1Reviewing Integration Staging3Sunday, 19 May, 13
  16. 16. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlsubsystemmaintainer1subsystemmaintainer1Reviewing Integration Stagingmaintainer3Sunday, 19 May, 13
  17. 17. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlsubsystemmaintainer1subsystemmaintainer1Reviewing Integration Stagingmaintainer3Sunday, 19 May, 13
  18. 18. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlsubsystemmaintainer1subsystemmaintainer1Reviewing Integration Stagingmaintainer Linus Torvalds3Sunday, 19 May, 13
  19. 19. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmlsubsystemmaintainer1subsystemmaintainer1Reviewing Integration Stagingmaintainer Linus Torvalds3Sunday, 19 May, 13
  20. 20. Integration Process3contributor 1contributor 2contributor 3linux-usblinux-scsilkmllinux 3.5subsystemmaintainer1subsystemmaintainer1Reviewing Integration Stagingmaintainer Linus Torvalds3Sunday, 19 May, 13
  21. 21. Research Questions4RQ1:How manypatches aremerged?RQ2:What kind ofpatch is mergedmore likely?RQ 3:What kind ofpatch isaccepted faster?4Sunday, 19 May, 13
  22. 22. Setup Of Case Study5Reviewing Integration StagingLinus Torvaldslinux-usblinux-scsilkmllinux 3.5contributor 1contributor 2contributor 3subsystemmaintainer1subsystemmaintainer1maintainer5Sunday, 19 May, 13
  23. 23. Setup Of Case Study5Reviewing Integration StagingLinus Torvaldslinux-usblinux-scsilkmllinux 3.5contributor 1contributor 2contributor 3subsystemmaintainer1subsystemmaintainer1maintainer5Sunday, 19 May, 13
  24. 24. Setup Of Case Study5Reviewing Integration StagingLinus Torvaldslinux-usblinux-scsilkml5Sunday, 19 May, 13
  25. 25. Setup Of Case Study5Reviewing Integration StagingLinus Torvaldslinux-usblinux-scsilkml5Sunday, 19 May, 13
  26. 26. Setup Of Case Study5Reviewing Integration StagingLinus Torvalds5Sunday, 19 May, 13
  27. 27. Setup Of Case Study5Reviewing Integration StagingLinus Torvaldsemail1email3email2 email patch2email patch1email patch3...5Sunday, 19 May, 13
  28. 28. Setup Of Case Study5Reviewing Integration Stagingemail1email3email2 email patch2email patch1email patch3...5Sunday, 19 May, 13
  29. 29. Setup Of Case Study5Reviewing Integration Stagingemail1email3email2 email patch2email patch1email patch3...commit3commit2commit1commit patch1commit patch2commit patch3...5Sunday, 19 May, 13
  30. 30. Setup Of Case Study5Reviewing Integration Stagingemail1email3email2 email patch2email patch1email patch3...commit3commit2commit1commit patch1commit patch2commit patch3...checksum1checksum3checksum2...5Sunday, 19 May, 13
  31. 31. Setup Of Case Study5Reviewing Integration Stagingemail1email3email2 email patch2email patch1email patch3...commit3commit2commit1commit patch1commit patch2commit patch3...checksum1checksum3checksum2...5Sunday, 19 May, 13
  32. 32. ExperienceEmailReviewEPatchCommit65 Dimensions of29 Patch Metrics6Sunday, 19 May, 13
  33. 33. size: LOC > 50Number of reviewers > 3 ?not accepted Number of review messages > 3 ?Is this first patch in thread?not acceptedacceptedDecision TreeBuilding Decision Trees77Sunday, 19 May, 13
  34. 34. 8RQ1:How manypatches aremerged?RQ2:What kind ofpatch is mergedmore likely?RQ 3:What kind ofpatch isaccepted faster?8Sunday, 19 May, 13
  35. 35. 9RQ1:How manypatches aremerged?RQ2:What kind ofpatch is mergedmore likely?RQ 3:What kind ofpatch isaccepted faster?9Sunday, 19 May, 13
  36. 36. RQ1:33% of patches make it!102005 2006 2007 2008 2009 2010 2011 2012accepted/rejected patchespercentageofpatches02000040000600008000010000012000028.6328.727.0332.83 32.79 33.8733.5530.7471.3771.372.9767.1767.21 66.1366.4569.26% accepted by linus% rejected by linus#ofpatches72.97%67.17%71.3%71.73%69.26%66.45%66.13%67.21%28.63%28.7%32.79%32.83%27.03%30.74%33.55%33.87%ACCEPTREJECT10Sunday, 19 May, 13
  37. 37. RQ1:Requiring 1~6months!112005 2006 2007 2008 2009 2010 2011 2012yearpercentageofacceptedpatchesofeachyear020406080instantlywithin_hourwithin_daywithin_weekwithin_monthwithin_quarterwithin_half_yearwithin_yeartook_agesText%acceptedpatches11Sunday, 19 May, 13
  38. 38. RQ1: reviewing time speeds up& integration slows down12reviewing time integration time12Sunday, 19 May, 13
  39. 39. 13RQ1:How manypatches aremerged?RQ2:What kind ofpatch is mergedmore likely?RQ 3:What kind ofpatch isaccepted faster?13Sunday, 19 May, 13
  40. 40. RQ2: What kind of patch ismerged more likely?precision:73%recall:68.47%1414Sunday, 19 May, 13
  41. 41. RQ2: What kind of patch ismerged more likely?precision:73%recall:68.47%1414Sunday, 19 May, 13
  42. 42. RQ2: What kind of patch ismerged more likely?precision:73%recall:68.47%1414Sunday, 19 May, 13
  43. 43. RQ2: What kind of patch ismerged more likely?precision:73%recall:68.47%1414Sunday, 19 May, 13
  44. 44. RQ2: What kind of patch ismerged more likely?precision:73%recall:68.47%1414Sunday, 19 May, 13
  45. 45. 15RQ1:How manypatches aremerged?RQ2:What kind ofpatch is mergedmore likely?RQ 3:What kind ofpatch isaccepted faster?15Sunday, 19 May, 13
  46. 46. RQ3: What kind of patch isaccepted faster?1616Sunday, 19 May, 13
  47. 47. RQ3: What kind of patch isaccepted faster?1616Sunday, 19 May, 13
  48. 48. RQ3: What kind of patch isaccepted faster?1616Sunday, 19 May, 13
  49. 49. RQ3: What kind of patch isaccepted faster?1616Sunday, 19 May, 13
  50. 50. RQ3: What kind of patch isaccepted faster?1616Sunday, 19 May, 13
  51. 51. RQ3: What kind of patch isaccepted faster?1616Sunday, 19 May, 13
  52. 52. RQ3: What kind of patch isaccepted faster?16Acceptance isdetermined byintegrationphase16Sunday, 19 May, 13
  53. 53. 1717Sunday, 19 May, 13
  54. 54. 1717Sunday, 19 May, 13
  55. 55. 2005 2006 2007 2008 2009 2010 2011 2012yearpercentageofpatches02000040000600008000010000028.6328.727.0332.83 32.79 33.8733.5530.7471.3771.372.9767.1767.21 66.1366.45% accepted by linus% rejected by linus72.97%67.17%71.3%71.73%66.45%66.13%67.21%28.63%28.7%32.79%32.83%27.03%30.74%33.55%33.87%1717Sunday, 19 May, 13
  56. 56. 2005 2006 2007 2008 2009 2010 2011 2012yearpercentageofpatches02000040000600008000010000028.6328.727.0332.83 32.79 33.8733.5530.7471.3771.372.9767.1767.21 66.1366.45% accepted by linus% rejected by linus72.97%67.17%71.3%71.73%66.45%66.13%67.21%28.63%28.7%32.79%32.83%27.03%30.74%33.55%33.87%1717Sunday, 19 May, 13
  57. 57. 2005 2006 2007 2008 2009 2010 2011 2012yearpercentageofpatches02000040000600008000010000028.6328.727.0332.83 32.79 33.8733.5530.7471.3771.372.9767.1767.21 66.1366.45% accepted by linus% rejected by linus72.97%67.17%71.3%71.73%66.45%66.13%67.21%28.63%28.7%32.79%32.83%27.03%30.74%33.55%33.87%1717Sunday, 19 May, 13

×