unbutun 发表于 2010-07-22 22:17

如果发现了bug,提出问题,到被接受,再到生成patch,提到kernel里的步骤是怎样的?

哪位走过这个来说说

adam8157 发表于 2010-07-22 23:34

内核新新手...

qiwei9743 发表于 2010-07-22 23:46

发现过一个,在2.6.18里,貌似2.6.31里面还没有人解

T-Bagwell 发表于 2010-07-23 00:02

如果发现了bug,提出问题,到被接受,再到生成patch,提到kernel里的步骤是怎样的?

哪位走过这个来说说
unbutun 发表于 2010-07-22 22:17 http://linux.chinaunix.net/bbs/images/common/back.gif

是这么做的
# git branch
* master
#
#
# git-branch
* master
# git-branch Test
# git-branch
Test
* master
# git-checkout Test
Switched to branch 'Test'
#git-config user.name T-Bagwell
# git-config user.email liuqi@thunderst.com
# vim fs/ext4/super.c
# git-commit fs/ext4/super.c -m "test path for CUer"
test path for CUer
1 files changed, 2 insertions(+), 1 deletions(-)
# git-format-patch -s master
0001-test-path-for-CUer.patch
# cat 0001-test-path-for-CUer.patch
From 5fca2f3af4bd57cba0b7bc751a92d3328fa0b5c2 Mon Sep 17 00:00:00 2001
From: T-Bagwell <liuqi@thunderst.com>
Date: Fri, 23 Jul 2010 03:47:30 +0800
Subject: test path for CUer


Signed-off-by: T-Bagwell <liuqi@thunderst.com>
---
fs/ext4/super.c |    3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 4e8983a..db19a9b 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -15,7 +15,8 @@
*Big-endian to little-endian byte-swapping/bitmaps by
*      David S. Miller (davem@caip.rutgers.edu), 1995
*/
-
+// example to test
+// for a patch to cuer
#include <linux/module.h>
#include <linux/string.h>
#include <linux/fs.h>
--
1.7.1

#vim 0001-test-path-for-CUer.patch
然后在里面添加一下修改的内容的详细说明,比如修改了什么bug



一般是将Subject: test path for CUer往上的几行删掉
接着将内容发mail给MAINTAINERS里面介绍的负责相关的人,抄送给kernel的maillist,项目负责的maillist,接着就可以了,勤在maillist里面交流学习就差不多理解里面的过程了

T-Bagwell 发表于 2010-07-23 00:04

发现过一个,在2.6.18里,貌似2.6.31里面还没有人解
qiwei9743 发表于 2010-07-22 23:46 http://linux.chinaunix.net/bbs/images/common/back.gif


   
能否详细说说呢?

unbutun 发表于 2010-07-23 02:02

谢谢了

openspace 发表于 2010-07-23 07:44

发现过bug
有些是dead code,有些是细微的逻辑问题(在锁的使用上可以优化一下)

kernel也是软件,是软件就会有bug
要不要那么多做IT的干啥

openspace 发表于 2010-07-23 07:46

回复 4# platinum


    这个确实比较麻烦
    一直把kernel看得比较神秘
   加上它各个子系统之间复杂的关系
    有时候很难理会到一些做法
    特别是有些ifdef等的判断,都不知道啥时候会出现这些情况
    不过可以给作者或者相关的maillist发信问问

独孤九贱 发表于 2010-07-23 09:07

发现过两个,都是在实际应用中,内核oops了。然后根据oop信息追溯而至。

一个是路由子系统中,一个应用unsign而用成了int的地方,导致流量一大,此变量就溢出了,系统就死掉了。
另一个pptp helper的一个bug,在某种情况下会被触发导致内核死掉。

后来花了很多的时间修复它们,结果最后发现高版本的内核已经把它们都修正了。从此养成了阅读kernel ChangLog的习惯。

jerrymy 发表于 2010-07-23 09:21

离读内核代码还远呢。
页: 1 [2] 3 4 5 6
查看完整版本: 你读kenrel代码,发现过BUG吗?