From gyty在163.com Thu Apr 1 00:06:57 2010 From: gyty在163.com (=?utf-8?B?56em5YWJ54Wn?=) Date: Thu, 1 Apr 2010 00:06:57 +0800 Subject: =?utf-8?B?5Zue5aSN77ya?= test In-Reply-To: <10575b.6317.127b464e2a8.Coremail.lyzsuper0083@163.com> References: <10575b.6317.127b464e2a8.Coremail.lyzsuper0083@163.com> Message-ID: <20100331160657.GA22312@QGZ.qgz> 真是太好了... On Wed, Mar 31, 2010 at 09:24:22PM +0800, Lv yuanzhou wrote: >Date: Wed, 31 Mar 2010 21:24:22 +0800 (CST) >From: Lv yuanzhou >To: linux-kernel >Subject: Re:回复: test >X-Mailer: Coremail Webmail Server Version SP_ntes V3.5 build > 100330(10185.2973.2968) Copyright (c) 2002-2010 www.mailtech.cn > 163com > >确认可以收到了~ 大家以后继续交流吧~ = 3= > > > > >在2010-03-31 19:48:05,"QL" 写道: >>呵呵 >> >>做人难啊 >> >> >>------------------ 原始邮件 ------------------ >>发件人: "Mars Shuttle"; >>发送时间: 2010年3月31日(星期三) 晚上6:05 >>收件人: "htan"; >>主题: Re: test >> >> >> 终于活过来了,好消息 >> >>在 2010年3月31日 下午5:54,htan 写道: >> >>> 恭喜恭喜~~~ >>> >>> >>> 2010-03-31 >>> >>> >>> >>> htan >>> >>> >>> >>> 发件人: 贺超 >>> 发送时间: 2010-03-31 17:09:19 >>> 收件人: zh-kernel" >>> 抄送: >>> 主题: test >>> >>> A test to decide if the ml is ok >>> -- >>> 贺超 >>> _______________________________________________ >>> Linux 内核开发中文邮件列表 >>> Linux-kernel在zh-kernel.org >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>> Linux 内核开发中文社区: http://zh-kernel.org >>> _______________________________________________ >>> Linux 内核开发中文邮件列表 >>> Linux-kernel在zh-kernel.org >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>> Linux 内核开发中文社区: http://zh-kernel.org >>> >>_______________________________________________ >>Linux 内核开发中文邮件列表 >>Linux-kernel在zh-kernel.org >>http://zh-kernel.org/mailman/listinfo/linux-kernel >>Linux 内核开发中文社区: http://zh-kernel.org >>_______________________________________________ >>Linux 内核开发中文邮件列表 >>Linux-kernel在zh-kernel.org >>http://zh-kernel.org/mailman/listinfo/linux-kernel >>Linux 内核开发中文社区: http://zh-kernel.org >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org From kongjianjun在gmail.com Thu Apr 1 00:08:45 2010 From: kongjianjun在gmail.com (Amos Kong) Date: Thu, 1 Apr 2010 00:08:45 +0800 Subject: =?GB2312?B?UmU6ILvYuLSjuiB0ZXN0?= In-Reply-To: <20100331160657.GA22312@QGZ.qgz> References: <10575b.6317.127b464e2a8.Coremail.lyzsuper0083@163.com> <20100331160657.GA22312@QGZ.qgz> Message-ID: 2010/4/1 秦光照 : > 真是太好了... 终于好了,前段时间,好多人问~ 欣喜 :)~ From hangbing0203在gmail.com Thu Apr 1 08:16:01 2010 From: hangbing0203在gmail.com (=?UTF-8?B?5YiY6Ziz?=) Date: Thu, 1 Apr 2010 08:16:01 +0800 Subject: =?UTF-8?B?UmU6IExpbnV4LWtlcm5lbCDmkZjopoEsIOWNtyAzMiwg5Y+R5biDIDI=?= In-Reply-To: References: Message-ID: 恭喜恭喜啊 终于活过来了 在 2010年3月31日 下午5:50, 写道: > 想在 Linux-kernel 邮件列表发言,请写信给: > linux-kernel在zh-kernel.org > > 要订阅或者退订列表,可以访问万维网地址: > http://zh-kernel.org/mailman/listinfo/linux-kernel > 或者可以向: > linux-kernel-request在zh-kernel.org > 发送主题或者正文为'help'的邮件。 > > 您可以通过邮件地址: > linux-kernel-owner在zh-kernel.org > 联系到此列表的管理员。 > > 当回信时,请给一个适当的标题,这样会比 "Re: > Contents of Linux-kernel digest..."更清楚明白。 > > > 这是邮件列表的摘要。如果想要回复此邮件,请务必注意: > 1. 根据要回复的主题,重新给邮件加上合适的标题 > 2. 去除和回复无关的其他引文。 > > 本日主题: > > 1. Re: test (Ender.Dai) > 2. Re: test (Wheelz) > 3. Re: test (Cheng Renquan) > 4. Re: Re: test (=?utf-8?B?V2VueHk=?=) > 5. Re: test (Chao) > 6. Re: test (chensheng duan) > 7. Re: test (wjp) > 8. Re: test (mjxian) > 9. Re: test (Coly Li) > 10. RE: test (WangYongE) > 11. 答复: test (rocky) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 31 Mar 2010 17:14:50 +0800 > From: "Ender.Dai" > To: Godbach > Cc: linux-kernel在zh-kernel.org > Subject: Re: test > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 好像准备活过来了 > > 2010/3/31 Godbach : > > 在 2010年3月25日 下午7:14,Li Yang-R58472 写道: > >> rt > >> _______________________________________________ > >> Linux 内核开发中文邮件列表 > >> Linux-kernel在zh-kernel.org > >> http://zh-kernel.org/mailman/listinfo/linux-kernel > >> Linux 内核开发中文社区: http://zh-kernel.org > > > > 最近一直收不到邮件。。 > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > > > -- > Invent and fit; have fits and reinvent! > We toast the Lisp programmer who pens his thoughts within nests of > parentheses. > > ------------------------------ > > Message: 2 > Date: Wed, 31 Mar 2010 17:16:35 +0800 > From: Wheelz > To: zh-kernel > Subject: Re: test > Message-ID: <20100331091635.GA4240在localhost.localdomain> > Content-Type: text/plain; charset=utf-8 > > Yet another test to see if the ml is OK. > > On Sat, Mar 27, 2010 at 11:49:48AM +0800, 贺超 wrote: > > Date: Sat, 27 Mar 2010 11:49:48 +0800 > > From: 贺超 > > To: zh-kernel > > Subject: test > > > > A test to decide if the ml is ok > > > > -- > > 贺超 > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > > ------------------------------ > > Message: 3 > Date: Wed, 31 Mar 2010 17:17:19 +0800 > From: Cheng Renquan > To: 贺超 > Cc: "zh-kernel\"" > Subject: Re: test > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 2010/3/27 贺超 : > > A test to decide if the ml is ok > > 恢复了? > > > > > -- > > 贺超 > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > -- > Cheng Renquan (程任全), from Singapore > > ------------------------------ > > Message: 4 > Date: Wed, 31 Mar 2010 17:18:32 +0800 > From: "=?utf-8?B?V2VueHk=?=" > To: "=?utf-8?B?R29kYmFjaA==?=" , > "=?utf-8?B?TGkgWWFuZy1SNTg0NzI=?=" > Cc: linux-kernel > Subject: Re: Re: test > Message-ID: <201003311718317818600在163.com> > Content-Type: text/plain; charset="utf-8" > > >在 2010年3月25日 下午7:14,Li Yang-R58472 写道: > >> rt > >> _______________________________________________ > >> Linux 内核开发中文邮件列表 > >> Linux-kernel在zh-kernel.org > >> http://zh-kernel.org/mailman/listinfo/linux-kernel > >> Linux 内核开发中文社区: http://zh-kernel.org > > > >最近一直收不到邮件。。 > >_______________________________________________ > >Linux 内核开发中文邮件列表 > >Linux-kernel在zh-kernel.org > >http://zh-kernel.org/mailman/listinfo/linux-kernel > >Linux 内核开发中文社区: http://zh-kernel.org > > Hi, Godbach > Happy, mail list working. > > Best regards. > Wenxy. > 2010-03-31,17:17:33 > Email: wen_kernel在163.com > Blog: http://blog.csdn.net/wenxy1 > > ------------------------------ > > Message: 5 > Date: Wed, 31 Mar 2010 17:31:35 +0800 > From: Chao > To: Cheng Renquan > Cc: linux-kernel在zh-kernel.org > Subject: Re: test > Message-ID: > > Content-Type: text/plain; charset=GB2312 > > 看来又活过来了 > 在 2010年3月31日 下午5:17,Cheng Renquan 写道: > > > 2010/3/27 贺超 : > > > A test to decide if the ml is ok > > > > 恢复了? > > > > > > > > -- > > > 贺超 > > > _______________________________________________ > > > Linux 内核开发中文邮件列表 > > > Linux-kernel在zh-kernel.org > > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > > Linux 内核开发中文社区: http://zh-kernel.org > > > > -- > > Cheng Renquan (程任全), from Singapore > > > > ------------------------------ > > Message: 6 > Date: Wed, 31 Mar 2010 17:32:11 +0800 > From: chensheng duan > To: Chao > Cc: linux-kernel在zh-kernel.org > Subject: Re: test > Message-ID: > > Content-Type: text/plain; charset=GB2312 > > 对头 > > 在 2010年3月31日 下午5:31,Chao 写道: > > > 看来又活过来了 > > 在 2010年3月31日 下午5:17,Cheng Renquan 写道: > > > > > 2010/3/27 贺超 : > > > > A test to decide if the ml is ok > > > > > > 恢复了? > > > > > > > > > > > -- > > > > 贺超 > > > > _______________________________________________ > > > > Linux 内核开发中文邮件列表 > > > > Linux-kernel在zh-kernel.org > > > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > > > Linux 内核开发中文社区: http://zh-kernel.org > > > > > > -- > > > Cheng Renquan (程任全), from Singapore > > > > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > > > ------------------------------ > > Message: 7 > Date: Wed, 31 Mar 2010 17:30:12 +0800 > From: "wjp" > To: "Chao" , "Cheng Renquan" > Cc: linux-kernel在zh-kernel.org > Subject: Re: test > Message-ID: <005801cad0b4$c386c300$8c7210ac在LocalHost> > Content-Type: text/plain; charset="utf-8" > > gxgx! > ----- Original Message ----- > From: "Chao" > To: "Cheng Renquan" > Cc: > Sent: Wednesday, March 31, 2010 5:31 PM > Subject: Re: test > > > > 看来又活过来了 > > 在 2010年3月31日 下午5:17,Cheng Renquan 写道: > > > >> 2010/3/27 贺超 : > >> > A test to decide if the ml is ok > >> > >> 恢复了? > >> > >> > > >> > -- > >> > 贺超 > >> > _______________________________________________ > >> > Linux 内核开发中文邮件列表 > >> > Linux-kernel在zh-kernel.org > >> > http://zh-kernel.org/mailman/listinfo/linux-kernel > >> > Linux 内核开发中文社区: http://zh-kernel.org > >> > >> -- > >> Cheng Renquan (程任全), from Singapore > >> > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > ------------------------------ > > Message: 8 > Date: Wed, 31 Mar 2010 17:44:11 +0800 > From: mjxian > To: Li Yang-R58472 > Cc: linux-kernel在zh-kernel.org > Subject: Re: test > Message-ID: <4BB3196B.8090301在ceiec-electric.com> > Content-Type: text/plain; charset=GB2312 > > 于 2010-3-25 19:14, Li Yang-R58472 在来信中写道: > > rt > > > > roger... 两个月了啊 > > > ------------------------------ > > Message: 9 > Date: Wed, 31 Mar 2010 17:59:32 +0800 > From: Coly Li > To: Li Yang-R58472 > Cc: linux-kernel在zh-kernel.org > Subject: Re: test > Message-ID: <4BB31D04.5090502在suse.de> > Content-Type: text/plain; charset=UTF-8 > > pong > > On 03/25/2010 07:14 PM, Li Yang-R58472 Wrote: > > rt > > -- > Coly Li > SuSE Labs > > > ------------------------------ > > Message: 10 > Date: Wed, 31 Mar 2010 17:48:13 +0800 > From: "WangYongE" > To: > Subject: RE: test > Message-ID: > Content-Type: text/plain; charset="gb2312" > > 恭喜!! 恭喜!!! > > > -----Original Message----- > > From: linux-kernel-bounces在zh-kernel.org > > [mailto:linux-kernel-bounces在zh-kernel.org] On Behalf Of wjp > > Sent: Wednesday, March 31, 2010 5:30 PM > > To: Chao; Cheng Renquan > > Cc: linux-kernel在zh-kernel.org > > Subject: Re: test > > > > gxgx! > > ----- Original Message ----- > > From: "Chao" > > To: "Cheng Renquan" > > Cc: > > Sent: Wednesday, March 31, 2010 5:31 PM > > Subject: Re: test > > > > > > > 看来又活过来了 > > > 在 2010年3月31日 下午5:17,Cheng Renquan 写道: > > > > > >> 2010/3/27 贺超 : > > >> > A test to decide if the ml is ok > > >> > > >> 恢复了? > > >> > > >> > > > >> > -- > > >> > 贺超 > > >> > _______________________________________________ > > >> > Linux 内核开发中文邮件列表 > > >> > Linux-kernel在zh-kernel.org > > >> > http://zh-kernel.org/mailman/listinfo/linux-kernel > > >> > Linux 内核开发中文社区: http://zh-kernel.org > > >> > > >> -- > > >> Cheng Renquan (程任全), from Singapore > > >> > > > _______________________________________________ > > > Linux 内核开发中文邮件列表 > > > Linux-kernel在zh-kernel.org > > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > > Linux 内核开发中文社区: http://zh-kernel.org > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > > > ------------------------------ > > Message: 11 > Date: Wed, 31 Mar 2010 17:50:02 +0800 > From: "rocky" <914059751在qq.com> > To: "'Li Yang-R58472'" , > > Subject: 答复: test > Message-ID: <8D615719CD7341FFB66CFED9DBBADC15在dufan> > Content-Type: text/plain; charset="gb2312" > > Rocky is here! > > > -----邮件原件----- > 发件人: linux-kernel-bounces在zh-kernel.org > [mailto:linux-kernel-bounces在zh-kernel.org] 代表 Li Yang-R58472 > 发送时间: 2010年3月25日 19:15 > 收件人: linux-kernel在zh-kernel.org > 主题: test > > rt > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > > ------------------------------ > > _______________________________________________ > Linux内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > > 结束Linux-kernel 摘要, 卷 32, 发布 2 > ******************************************* > From guowei1651在yeah.net Thu Apr 1 08:46:41 2010 From: guowei1651在yeah.net (guowei1651) Date: Thu, 1 Apr 2010 08:46:41 +0800 (CST) Subject: =?gbk?Q?Re:Re:_=BB=D8=B8=B4=A3=BA_test?= In-Reply-To: References: <10575b.6317.127b464e2a8.Coremail.lyzsuper0083@163.com> <20100331160657.GA22312@QGZ.qgz> Message-ID: <2088fba5.e78.127b6d58f97.Coremail.guowei1651@yeah.net> test -- answers 在2010-04-01 00:08:45,"Amos Kong" 写道: >2010/4/1 秦光照 : >> 真是太好了... > > >终于好了,前段时间,好多人问~ > >欣喜 :)~ >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org From ye_zhenfeng在163.com Thu Apr 1 08:58:30 2010 From: ye_zhenfeng在163.com (ye_zhenfeng) Date: Thu, 1 Apr 2010 08:58:30 +0800 Subject: test References: <3A45394FD742FA419B760BB8D398F9ED0176773D@zch01exm26.fsl.freescale.net>, Message-ID: <201004010858301255443@163.com> 我说怎么最近收不到ML的邮件了呢,这下好了。 难道是真的被和谐了?知情的人透露一下呗。 2010-04-01 ye_zhenfeng 发件人: 景文林 发送时间: 2010-03-31 21:00:57 收件人: Li Yang-R58472 抄送: linux-kernel在zh-kernel.org 主题: Re: test 终于好了啊 在 2010年3月25日 下午7:14,Li Yang-R58472 写道: > rt > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From elendil.wang在gmail.com Thu Apr 1 09:32:08 2010 From: elendil.wang在gmail.com (Wang QianChuan) Date: Thu, 1 Apr 2010 09:32:08 +0800 Subject: =?GB2312?B?tPO80rK70qqwy9jUwcujrLDvw6a/tLj2zsrM4qOsudjT2k0=?= =?GB2312?B?UEM4MzEzRbXEo6xUSFh+?= Message-ID: 环境:嵌入式设备,主要做音视频处理,MPC8313E作为主控芯片,ELBC上通过FCM挂NAND FLASH,PCI上挂了DSP、视频编解码ASIC以及用作E1通信的多通道控制器,该芯片是CONEXANT的CN8478,PCI工作在33M。此外,还使用了ETSEC、UART、SPI等外设。 现象:使用kernel:2.6.10,在高速E1通信,即使用PCI设备时,如果进行Nand读写,则会导致CN8478出现buffer error,underrun或者overrun,即访问不到DDR。不进行Nand读写不会出现问题,低速E1通信(如ping少字节的包)不会出现问题,同样挂在PCI上的其他芯片不会出现问题,使用同样在CSB总线上的其他设备不会造成该问题,也就是说只有Nand和E1芯片一起工作才出问题。 目前定位到:1.提高PCI在CSB总线的优先级到最高,没作用 2.修改FCM的OR寄存器调整访问时序,没作用 3.修改ELBC nand驱动,不用中断改轮询,没作用 4.提高CPU频率(333M-〉400/500),降低LBC频率,没作用 5.单独从DDR到FCM 内部buffer拷贝测试,不影响,不会出现该问题 6.循环单字节读Nand内容,不会出现问题 该问题已经出现好长一段时间,分别请教过freescale和cn8478的技术支持,并无结果,请各位高手,特别是熟悉MPC芯片的高手看看,万分感谢 From gongfan193在gmail.com Thu Apr 1 10:11:25 2010 From: gongfan193在gmail.com (Drunkard Zhang) Date: Thu, 1 Apr 2010 10:11:25 +0800 Subject: =?UTF-8?B?5YaF5a2Y566h55CG55qE6Zeu6aKY?= Message-ID: 内存管理,比如分配和回收是由 glibc 完成的?还是内核呢? 我发现需要对 内存进行频繁操作的程序(比如高负载的memory-only squid)内核本身占用 的CPU时间也很大,大概能到1/3。 给程序分配的内存页,不再使用后,是先回收再分配?还是直接用大小差不 多的内容直接盖掉?这个功能是谁实现的啊,内核?glibc?程序自己? squid的特殊性在于它缓存的文件是大量小文件,平均大小是13KB左右,内存 页如果只有4K的显然效率不很理想。我看过一篇文章,貌似内核会自己分配页 大小不同的片区,如果是这样,那程序怎么应用呢? 有没有适合十分频繁的内存操作的内存管理库呢? -- 张绍文 gongfan193在gmail.com zhangsw在gwbnsh.net.cn 18601633785 From seskissinger在126.com Thu Apr 1 10:13:15 2010 From: seskissinger在126.com (seskissinger) Date: Thu, 1 Apr 2010 10:13:15 +0800 (CST) Subject: =?gbk?Q?Re:Re:_=BB=D8=B8=B4=A3=BA_test?= In-Reply-To: References: <10575b.6317.127b464e2a8.Coremail.lyzsuper0083@163.com> <20100331160657.GA22312@QGZ.qgz> Message-ID: 北京人民发来贺电 在2010-04-01 00:08:45,"Amos Kong" 写道: >2010/4/1 秦光照 : >> 真是太好了... > > >终于好了,前段时间,好多人问~ > >欣喜 :)~ >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org From umlsoft在gmail.com Thu Apr 1 10:35:13 2010 From: umlsoft在gmail.com (alec zhou) Date: Thu, 1 Apr 2010 10:35:13 +0800 Subject: =?GB2312?B?UmU6IMTatOa53MDttcTOyszi?= In-Reply-To: References: Message-ID: 用户态程序内存分配和回收可以说是由 glibc 完成的。glibc的存在使得在用户空间写应用程序不用关注内存管理在内核中的最终实现。 在一个系统里面,页大小应该是恒定的,没听说Linux内核支持同时存在多种页大小。至于内存碎片的问题已经有大量的研究了。 Alec 2010/4/1 Drunkard Zhang > 内存管理,比如分配和回收是由 glibc 完成的?还是内核呢? 我发现需要对 > 内存进行频繁操作的程序(比如高负载的memory-only squid)内核本身占用 > 的CPU时间也很大,大概能到1/3。 > > 给程序分配的内存页,不再使用后,是先回收再分配?还是直接用大小差不 > 多的内容直接盖掉?这个功能是谁实现的啊,内核?glibc?程序自己? > > squid的特殊性在于它缓存的文件是大量小文件,平均大小是13KB左右,内存 > 页如果只有4K的显然效率不很理想。我看过一篇文章,貌似内核会自己分配页 > 大小不同的片区,如果是这样,那程序怎么应用呢? > > 有没有适合十分频繁的内存操作的内存管理库呢? > > > -- > 张绍文 > gongfan193在gmail.com > zhangsw在gwbnsh.net.cn > 18601633785 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From umlsoft在gmail.com Thu Apr 1 10:38:31 2010 From: umlsoft在gmail.com (alec zhou) Date: Thu, 1 Apr 2010 10:38:31 +0800 Subject: =?GB2312?B?UmU6ILTzvNKyu9KqsMvY1MHLo6yw78Omv7S49s7KzOKjrLnY?= =?GB2312?B?09pNUEM4MzEzRbXEo6xUSFh+?= In-Reply-To: References: Message-ID: Nand FLASH读写的操作CPU或总线占用时间过长?乱猜的... Alec 2010/4/1 Wang QianChuan > 环境:嵌入式设备,主要做音视频处理,MPC8313E作为主控芯片,ELBC上通过FCM挂NAND > > FLASH,PCI上挂了DSP、视频编解码ASIC以及用作E1通信的多通道控制器,该芯片是CONEXANT的CN8478,PCI工作在33M。此外,还使用了ETSEC、UART、SPI等外设。 > 现象:使用kernel:2.6.10,在高速E1通信,即使用PCI设备时,如果进行Nand读写,则会导致CN8478出现buffer > > error,underrun或者overrun,即访问不到DDR。不进行Nand读写不会出现问题,低速E1通信(如ping少字节的包)不会出现问题,同样挂在PCI上的其他芯片不会出现问题,使用同样在CSB总线上的其他设备不会造成该问题,也就是说只有Nand和E1芯片一起工作才出问题。 > 目前定位到:1.提高PCI在CSB总线的优先级到最高,没作用 > 2.修改FCM的OR寄存器调整访问时序,没作用 > 3.修改ELBC nand驱动,不用中断改轮询,没作用 > 4.提高CPU频率(333M-〉400/500),降低LBC频率,没作用 > 5.单独从DDR到FCM 内部buffer拷贝测试,不影响,不会出现该问题 > 6.循环单字节读Nand内容,不会出现问题 > 该问题已经出现好长一段时间,分别请教过freescale和cn8478的技术支持,并无结果,请各位高手,特别是熟悉MPC芯片的高手看看,万分感谢 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From threeleafzerg在hotmail.com Thu Apr 1 10:39:01 2010 From: threeleafzerg在hotmail.com (=?gb2312?B?0rbW3bqj?=) Date: Thu, 1 Apr 2010 02:39:01 +0000 Subject: =?gb2312?B?UkU6IMTatOa53MDttcTOyg==?= =?gb2312?B?zOI=?= In-Reply-To: References: , Message-ID: > > 有没有适合十分频繁的内存操作的内存管理库呢? 我知道有个开源的内存管理库,tcmalloc ,口碑还不错。 你看看,http://goog-perftools.sourceforge.net/doc/tcmalloc.html > Date: Thu, 1 Apr 2010 10:35:13 +0800 > Subject: Re: 内存管理的问题 > From: umlsoft在gmail.com > To: gongfan193在gmail.com > CC: linux-kernel在zh-kernel.org > > 用户态程序内存分配和回收可以说是由 glibc 完成的。glibc的存在使得在用户空间写应用程序不用关注内存管理在内核中的最终实现。 > 在一个系统里面,页大小应该是恒定的,没听说Linux内核支持同时存在多种页大小。至于内存碎片的问题已经有大量的研究了。 > > Alec > > 2010/4/1 Drunkard Zhang > > > 内存管理,比如分配和回收是由 glibc 完成的?还是内核呢? 我发现需要对 > > 内存进行频繁操作的程序(比如高负载的memory-only squid)内核本身占用 > > 的CPU时间也很大,大概能到1/3。 > > > > 给程序分配的内存页,不再使用后,是先回收再分配?还是直接用大小差不 > > 多的内容直接盖掉?这个功能是谁实现的啊,内核?glibc?程序自己? > > > > squid的特殊性在于它缓存的文件是大量小文件,平均大小是13KB左右,内存 > > 页如果只有4K的显然效率不很理想。我看过一篇文章,貌似内核会自己分配页 > > 大小不同的片区,如果是这样,那程序怎么应用呢? > > > > 有没有适合十分频繁的内存操作的内存管理库呢? > > > > > > -- > > 张绍文 > > gongfan193在gmail.com > > zhangsw在gwbnsh.net.cn > > 18601633785 > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org _________________________________________________________________ 一张照片的自白――Windows Live照片的可爱视频介绍 http://windowslivesky.spaces.live.com/blog/cns!5892B6048E2498BD!889.entry From elendil.wang在gmail.com Thu Apr 1 10:44:05 2010 From: elendil.wang在gmail.com (Wang QianChuan) Date: Thu, 1 Apr 2010 10:44:05 +0800 Subject: =?GB2312?B?UmU6ILTzvNKyu9KqsMvY1MHLo6yw78Omv7S49s7KzOKjrLnY?= =?GB2312?B?09pNUEM4MzEzRbXEo6xUSFh+?= In-Reply-To: References: Message-ID: Thanks,之前也是这么认为的,但是需要占用CPU和总线的实际上是从DDR拷贝到FCM BUFFER里面这段过程,单独测试这个过程是没有问题的,而是FCM控制器从BUFFER到NAND这个过程出现问题,很是不解。 2010/4/1 alec zhou > Nand FLASH读写的操作CPU或总线占用时间过长?乱猜的... > > Alec > > 2010/4/1 Wang QianChuan > >> 环境:嵌入式设备,主要做音视频处理,MPC8313E作为主控芯片,ELBC上通过FCM挂NAND >> >> FLASH,PCI上挂了DSP、视频编解码ASIC以及用作E1通信的多通道控制器,该芯片是CONEXANT的CN8478,PCI工作在33M。此外,还使用了ETSEC、UART、SPI等外设。 >> 现象:使用kernel:2.6.10,在高速E1通信,即使用PCI设备时,如果进行Nand读写,则会导致CN8478出现buffer >> >> error,underrun或者overrun,即访问不到DDR。不进行Nand读写不会出现问题,低速E1通信(如ping少字节的包)不会出现问题,同样挂在PCI上的其他芯片不会出现问题,使用同样在CSB总线上的其他设备不会造成该问题,也就是说只有Nand和E1芯片一起工作才出问题。 >> 目前定位到:1.提高PCI在CSB总线的优先级到最高,没作用 >> 2.修改FCM的OR寄存器调整访问时序,没作用 >> 3.修改ELBC nand驱动,不用中断改轮询,没作用 >> 4.提高CPU频率(333M-〉400/500),降低LBC频率,没作用 >> 5.单独从DDR到FCM 内部buffer拷贝测试,不影响,不会出现该问题 >> 6.循环单字节读Nand内容,不会出现问题 >> 该问题已经出现好长一段时间,分别请教过freescale和cn8478的技术支持,并无结果,请各位高手,特别是熟悉MPC芯片的高手看看,万分感谢 >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org >> > > From elendil.wang在gmail.com Thu Apr 1 10:46:56 2010 From: elendil.wang在gmail.com (Wang QianChuan) Date: Thu, 1 Apr 2010 10:46:56 +0800 Subject: =?GB2312?B?UmU6IMTatOa53MDttcTOyszi?= In-Reply-To: References: Message-ID: 请参考内核的伙伴系统算法和slab控制器实现 2010/4/1 Drunkard Zhang > > squid的特殊性在于它缓存的文件是大量小文件,平均大小是13KB左右,内存 > 页如果只有4K的显然效率不很理想。我看过一篇文章,貌似内核会自己分配页 > 大小不同的片区,如果是这样,那程序怎么应用呢? > > > > -- > 张绍文 > gongfan193在gmail.com > zhangsw在gwbnsh.net.cn > 18601633785 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From wen_kernel在163.com Thu Apr 1 10:46:55 2010 From: wen_kernel在163.com (=?utf-8?B?V2VueHk=?=) Date: Thu, 1 Apr 2010 10:46:55 +0800 Subject: =?utf-8?B?UmU6IOWkp+WutuS4jeimgeWFq+WNpuS6hu+8jOW4ruW/meeci+S4qumXrumimO+8jOWFs+S6jk1QQzgzMTNF55qE77yMVEhYfg==?= References: Message-ID: <201004011046548759281@163.com> >环境:嵌入式设备,主要做音视频处理,MPC8313E作为主控芯片,ELBC上通过FCM挂NAND >FLASH,PCI上挂了DSP、视频编解码ASIC以及用作E1通信的多通道控制器,该芯片是CONEXANT的CN8478,PCI工作在33M。此外,还使用了ETSEC、UART、SPI等外设。 >现象:使用kernel:2.6.10,在高速E1通信,即使用PCI设备时,如果进行Nand读写,则会导致CN8478出现buffer >error,underrun或者overrun,即访问不到DDR。不进行Nand读写不会出现问题,低速E1通信(如ping少字节的包)不会出现问题,同样挂在PCI上的其他芯片不会出现问题,使用同样在CSB总线上的其他设备不会造成该问题,也就是说只有Nand和E1芯片一起工作才出问题。 >目前定位到:1.提高PCI在CSB总线的优先级到最高,没作用 > 2.修改FCM的OR寄存器调整访问时序,没作用 > 3.修改ELBC nand驱动,不用中断改轮询,没作用 > 4.提高CPU频率(333M-〉400/500),降低LBC频率,没作用 > 5.单独从DDR到FCM 内部buffer拷贝测试,不影响,不会出现该问题 > 6.循环单字节读Nand内容,不会出现问题 > 该问题已经出现好长一段时间,分别请教过freescale和cn8478的技术支持,并无结果,请各位高手,特别是熟悉MPC芯片的高手看看,万分感谢 >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org Hi, Wang QianChuan nand flash IC或者 nand flash驱动的问题,或者kenrel太老,你的nand flash用什么文件系统? 可以尝试的定位方法: 1. 更新著名厂商的nand flash IC 2. 用最新的nand fllash驱动。 3. 升级kernel. 4. 若在nand flash上使用了文件系统,2.6.11的内核太老,据说2.6.20的kernel对flash的文件系统支持比较好,像jffs2, yaffs等等。 Best regards. Wenxy. 2010-04-01,10:44:07 Email: wen_kernel在163.com Blog: http://blog.csdn.net/wenxy1 From xiyou.wangcong在gmail.com Thu Apr 1 10:55:44 2010 From: xiyou.wangcong在gmail.com (=?UTF-8?Q?Am=C3=A9rico_Wang?=) Date: Thu, 1 Apr 2010 10:55:44 +0800 Subject: =?UTF-8?B?UmU6IOWGheWtmOeuoeeQhueahOmXrumimA==?= In-Reply-To: References: Message-ID: 2010/4/1 Drunkard Zhang : > 内存管理,比如分配和回收是由 glibc 完成的?还是内核呢? 我发现需要对 > 内存进行频繁操作的程序(比如高负载的memory-only squid)内核本身占用 > 的CPU时间也很大,大概能到1/3。 取决于你调用的函数。如果调用sbrk(2),mmap(2),是由内核来直接管理的; 如果是malloc(3),calloc(3),是由glibc来直接管理的,不过最后还是通过内核。 > > 给程序分配的内存页,不再使用后,是先回收再分配?还是直接用大小差不 > 多的内容直接盖掉?这个功能是谁实现的啊,内核?glibc?程序自己? 见上。 > > squid的特殊性在于它缓存的文件是大量小文件,平均大小是13KB左右,内存 > 页如果只有4K的显然效率不很理想。我看过一篇文章,貌似内核会自己分配页 > 大小不同的片区,如果是这样,那程序怎么应用呢? 恩,那你想要的一定是hugetlbfs,lwn上正好有一个系列介绍它: http://lwn.net/Articles/374424/ 说实话,这玩意儿并不好用。。。 From xiaosuo在gmail.com Thu Apr 1 11:04:39 2010 From: xiaosuo在gmail.com (Changli Gao) Date: Thu, 1 Apr 2010 11:04:39 +0800 Subject: =?GB2312?B?UmU6IMTatOa53MDttcTOyszi?= In-Reply-To: References: Message-ID: 2010/4/1 alec zhou : > 用户态程序内存分配和回收可以说是由 glibc 完成的。glibc的存在使得在用户空间写应用程序不用关注内存管理在内核中的最终实现。 > 在一个系统里面,页大小应该是恒定的,没听说Linux内核支持同时存在多种页大小。至于内存碎片的问题已经有大量的研究了。 > 从2.6.32开始mmap多了一个MAP_HUGETLB选项,可以比较透明的在用户空间操纵大页面了。 -- Regards, Changli Gao(xiaosuo在gmail.com) From gongfan193在gmail.com Thu Apr 1 11:29:31 2010 From: gongfan193在gmail.com (Drunkard Zhang) Date: Thu, 1 Apr 2010 11:29:31 +0800 Subject: =?UTF-8?B?UmU6IOWGheWtmOeuoeeQhueahOmXrumimA==?= In-Reply-To: References: Message-ID: 在 2010年4月1日 上午10:35,alec zhou 写道: > 用户态程序内存分配和回收可以说是由 glibc 完成的。glibc的存在使得在用户空间写应用程序不用关注内存管理在内核中的最终实现。 > 在一个系统里面,页大小应该是恒定的,没听说Linux内核支持同时存在多种页大小。至于内存碎片的问题已经有大量的研究了。 > >> >> 可能有可变页了吧?这里有人在讨论: http://www.gelato.unsw.edu.au/archives/linux-ia64/0610/19295.html -- 张绍文 gongfan193在gmail.com zhangsw在gwbnsh.net.cn 18601633785 From gongfan193在gmail.com Thu Apr 1 12:59:11 2010 From: gongfan193在gmail.com (Drunkard Zhang) Date: Thu, 1 Apr 2010 12:59:11 +0800 Subject: =?UTF-8?B?UmU6IOWGheWtmOeuoeeQhueahOmXrumimA==?= In-Reply-To: References: Message-ID: 在 2010年4月1日 上午11:29,Drunkard Zhang 写道: > > > 在 2010年4月1日 上午10:35,alec zhou 写道: > > 用户态程序内存分配和回收可以说是由 glibc 完成的。glibc的存在使得在用户空间写应用程序不用关注内存管理在内核中的最终实现。 >> 在一个系统里面,页大小应该是恒定的,没听说Linux内核支持同时存在多种页大小。至于内存碎片的问题已经有大量的研究了。 >> >>> >>> 可能有可变页了吧?这里有人在讨论: > http://www.gelato.unsw.edu.au/archives/linux-ia64/0610/19295.html > > 搜一把能搜出很多: http://www.google.com/search?hl=en&source=hp&q=linux+memory+%E2%80%9Dvariable+page%E2%80%9C&aq=f&aqi=&aql=&oq=&gs_rfai= 我只是对内核怎么使用可变页不太清楚, 应用程序又是怎么使用可变页的...有高手了解吗? From xiyou.wangcong在gmail.com Thu Apr 1 13:22:49 2010 From: xiyou.wangcong在gmail.com (=?UTF-8?Q?Am=C3=A9rico_Wang?=) Date: Thu, 1 Apr 2010 13:22:49 +0800 Subject: =?UTF-8?B?UmU6IOWGheWtmOeuoeeQhueahOmXrumimA==?= In-Reply-To: References: Message-ID: 2010/4/1 Drunkard Zhang : > 应用程序又是怎么使用可变页的...有高手了解吗? lwn上的文章里有。。。。libhugetlbfs,hugectl。 From wangbaosheng在sict.ac.cn Thu Apr 1 19:32:11 2010 From: wangbaosheng在sict.ac.cn (=?utf-8?B?546L5L+d6IOc?=) Date: Fri, 01 Apr 2010 19:32:11 +0800 Subject: =?utf-8?B?5YaF5qC45qih5Z2X6ZO+5o6l6Z2Z5oCB5bqT?= Message-ID: Hi, 我编写了一个2.6的内核模块,但是这个模块要是用libgcc.a静态库。在Makefie中怎么写才能能连接这个库呢?我查了一下资料,没有查到。 希望各位能够帮助一下! 2010-04-01 王保胜 From hust.hancock在gmail.com Thu Apr 1 20:54:46 2010 From: hust.hancock在gmail.com (=?UTF-8?B?6Zm2c2o=?=) Date: Thu, 1 Apr 2010 20:54:46 +0800 Subject: =?UTF-8?B?54Ot54OI5bqG56Wd5LiA5LiL5ZWK77yB77yB?= Message-ID: test From linkn.lin在gmail.com Thu Apr 1 21:09:52 2010 From: linkn.lin在gmail.com (Linkun) Date: Thu, 1 Apr 2010 21:09:52 +0800 Subject: =?UTF-8?B?562U5aSNOiDlhoXmoLjmqKHlnZfpk77mjqXpnZnmgIHlupM=?= In-Reply-To: <20100401113216.B719818B81C@server.dhxy.info> References: <20100401113216.B719818B81C@server.dhxy.info> Message-ID: <4bb49b29.9713f30a.68f2.fffff83c@mx.google.com> 在Makefile文件最前面增加一条"神啊,救救我吧!", 问题就解决了! -----邮件原件----- 发件人: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] 代表 王保胜 发送时间: 2010年4月1日 19:32 收件人: linux-kernel 主题: 内核模块链接静态库 Hi, 我编写了一个2.6的内核模块,但是这个模块要是用libgcc.a静态库。在Makefie中怎么写才能能连接这个库呢?我查了一下资料,没有查到。 希望各位能够帮助一下! 2010-04-01 王保胜 _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From abutter.gao在gmail.com Thu Apr 1 21:19:35 2010 From: abutter.gao在gmail.com (Gao Ya'nan) Date: Thu, 1 Apr 2010 21:19:35 +0800 Subject: =?GB2312?B?UmU6ILTzvNKyu9KqsMvY1MHLo6yw78Omv7S49s7KzOKjrLnY?= =?GB2312?B?09pNUEM4MzEzRbXEo6xUSFh+?= In-Reply-To: References: Message-ID: 遇到此类问题解决办法就是升级一下内核看看,呵呵。 NAND FLASH 用中断?不是内核带的驱动吗? 在 2010年4月1日 上午9:32,Wang QianChuan 写道: > 环境:嵌入式设备,主要做音视频处理,MPC8313E作为主控芯片,ELBC上通过FCM挂NAND > FLASH,PCI上挂了DSP、视频编解码ASIC以及用作E1通信的多通道控制器,该芯片是CONEXANT的CN8478,PCI工作在33M。此外,还使用了ETSEC、UART、SPI等外设。 > 现象:使用kernel:2.6.10,在高速E1通信,即使用PCI设备时,如果进行Nand读写,则会导致CN8478出现buffer > error,underrun或者overrun,即访问不到DDR。不进行Nand读写不会出现问题,低速E1通信(如ping少字节的包)不会出现问题,同样挂在PCI上的其他芯片不会出现问题,使用同样在CSB总线上的其他设备不会造成该问题,也就是说只有Nand和E1芯片一起工作才出问题。 > 目前定位到:1.提高PCI在CSB总线的优先级到最高,没作用 > 2.修改FCM的OR寄存器调整访问时序,没作用 > 3.修改ELBC nand驱动,不用中断改轮询,没作用 > 4.提高CPU频率(333M-〉400/500),降低LBC频率,没作用 > 5.单独从DDR到FCM 内部buffer拷贝测试,不影响,不会出现该问题 > 6.循环单字节读Nand内容,不会出现问题 > 该问题已经出现好长一段时间,分别请教过freescale和cn8478的技术支持,并无结果,请各位高手,特别是熟悉MPC芯片的高手看看,万分感谢 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From lyzsuper0083在163.com Thu Apr 1 21:20:05 2010 From: lyzsuper0083在163.com (Lv yuanzhou) Date: Thu, 1 Apr 2010 21:20:05 +0800 (CST) Subject: =?gbk?B?UmU6xNq6y8Sjv+nBtL3TvrLMrL/i?= In-Reply-To: <20100401113216.B719818B81C@server.dhxy.info> References: <20100401113216.B719818B81C@server.dhxy.info> Message-ID: 为什么写内核模块需要用到GCC的库.......... 内核应该是一个不依赖于外部环境的程序~ 在2010-04-01 19:32:11,"王保胜" 写道: >Hi, >我编写了一个2.6的内核模块,但是这个模块要是用libgcc.a静态库。在Makefie中怎么写才能能连接这个库呢?我查了一下资料,没有查到。 > >希望各位能够帮助一下! > >2010-04-01 > > > >王保胜 >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org From xiyou.wangcong在gmail.com Thu Apr 1 21:33:47 2010 From: xiyou.wangcong在gmail.com (=?utf-8?Q?Am=C3=A9rico?= Wang) Date: Thu, 1 Apr 2010 21:33:47 +0800 Subject: =?utf-8?B?5YaF5qC45qih5Z2X6ZO+5o6l6Z2Z?= =?utf-8?B?5oCB5bqT?= In-Reply-To: <20100401113216.A20BA18B81B@server.dhxy.info> References: <20100401113216.A20BA18B81B@server.dhxy.info> Message-ID: <20100401133347.GA3133@hack> On Thu, Apr 01, 2010 at 07:32:11PM +0800, 王保胜 wrote: >Hi, >我编写了一个2.6的内核模块,但是这个模块要是用libgcc.a静态库。在Makefie中怎么写才能能连接这个库呢?我查了一下资料,没有查到。 很可能是你代码的问题,gcc认为需要用libgcc库的函数来优化, 所以要么阻止这个优化,要么转化你的代码。 -- Live like a child, think like the god. From hust.hancock在gmail.com Thu Apr 1 21:48:27 2010 From: hust.hancock在gmail.com (hust.hancock) Date: Thu, 1 Apr 2010 21:48:27 +0800 Subject: =?gb2312?B?UmU6IEF1dG8tUmU6IMjIwdLH7Nej0rvPwrCho6GjoQ==?= References: Message-ID: <201004012148251961189@gmail.com> 别自动回复给我。 hust.hancock 2010-04-01 发件人: zhanglin 发送时间: 2010-04-01 20:55:10 收件人: hust.hancock 抄送: 主题: Auto-Re: 热烈庆祝一下啊!! 来信已收到!我会尽快阅读!谢谢! --------------------------------------------------- 张林 电话:18602304508,023-62461431(办公室) From dshbusiness在gmail.com Thu Apr 1 21:56:35 2010 From: dshbusiness在gmail.com (=?GB2312?B?tqHJ2bri?=) Date: Thu, 1 Apr 2010 21:56:35 +0800 Subject: =?GB2312?B?udjT2mZyYW1lYnVmZmVytcS8uLj2zsrM4g==?= Message-ID: 最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算?我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别是他定义了许多常量(例如#define PALETTE_INDEX 0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? 哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) From lyzsuper0083在163.com Thu Apr 1 22:01:52 2010 From: lyzsuper0083在163.com (Lv yuanzhou) Date: Thu, 1 Apr 2010 22:01:52 +0800 (CST) Subject: =?gbk?Q?Re:=B9=D8=D3=DAframebuffer=B5=C4=BC=B8=B8=F6=CE=CA=CC=E2?= In-Reply-To: References: Message-ID: 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~ 不公布这些接口的话就无法使用其硬件加速了吧~ 而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ 不知道我理解得对不~ = 3= 在2010-04-01 21:56:35,"丁少衡" 写道: >最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 >framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算?我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别是他定义了许多常量(例如#define >PALETTE_INDEX >0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? >哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org From eric.y.miao在gmail.com Thu Apr 1 22:58:01 2010 From: eric.y.miao在gmail.com (Eric Miao) Date: Thu, 1 Apr 2010 22:58:01 +0800 Subject: =?UTF-8?B?5pyJ5rKh5pyJ5Lq65YGa6L+HIEVjbGlwc2Ug5YWz5LqOIE1JUFMvQVJNIHRvb2xjaGFpbg==?= =?UTF-8?B?IOeahOaPkuS7tueahO+8jOWSqOivouS4iz8=?= Message-ID: RT From dragonlinux在gmail.com Thu Apr 1 23:30:18 2010 From: dragonlinux在gmail.com (yao zhao) Date: Thu, 1 Apr 2010 11:30:18 -0400 Subject: =?GB2312?B?UmU6IMTatOa53MDttcTOyszi?= In-Reply-To: References: Message-ID: don't know how Linux does but in theory kernel can change the page size according to what size you are asking for. Our oses does that. Yao 2010/4/1 Américo Wang > 2010/4/1 Drunkard Zhang : > > 应用程序又是怎么使用可变页的...有高手了解吗? > > lwn上的文章里有。。。。libhugetlbfs,hugectl。 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > From lurker0ster在gmail.com Fri Apr 2 08:17:41 2010 From: lurker0ster在gmail.com (ja alex) Date: Fri, 2 Apr 2010 08:17:41 +0800 Subject: =?GB2312?B?UmU6INPQw7vT0MjL1/a5/SBFY2xpcHNlILnY09ogTUlQUy9BUk0gdG9vbGM=?= =?GB2312?B?aGFpbiC1xLLlvP61xKOs18nRr8/CPw==?= In-Reply-To: References: Message-ID: GNU-toolchain based? 在 2010年4月1日 下午10:58,Eric Miao 写道: > RT > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From elendil.wang在gmail.com Fri Apr 2 09:17:45 2010 From: elendil.wang在gmail.com (Wang QianChuan) Date: Fri, 2 Apr 2010 09:17:45 +0800 Subject: =?GB2312?B?UmU6ILTzvNKyu9KqsMvY1MHLo6yw78Omv7S49s7KzOKjrLnY?= =?GB2312?B?09pNUEM4MzEzRbXEo6xUSFh+?= In-Reply-To: References: Message-ID: 嗯,可以尝试修改内核,不过我们改了很多东西,工作量较大。 Nand中断实际上是MPC8313的ELBC的中断。 2010/4/1 Gao Ya'nan > 遇到此类问题解决办法就是升级一下内核看看,呵呵。 > > NAND FLASH 用中断?不是内核带的驱动吗? > > 在 2010年4月1日 上午9:32,Wang QianChuan 写道: > > 环境:嵌入式设备,主要做音视频处理,MPC8313E作为主控芯片,ELBC上通过FCM挂NAND > > > FLASH,PCI上挂了DSP、视频编解码ASIC以及用作E1通信的多通道控制器,该芯片是CONEXANT的CN8478,PCI工作在33M。此外,还使用了ETSEC、UART、SPI等外设。 > > 现象:使用kernel:2.6.10,在高速E1通信,即使用PCI设备时,如果进行Nand读写,则会导致CN8478出现buffer > > > error,underrun或者overrun,即访问不到DDR。不进行Nand读写不会出现问题,低速E1通信(如ping少字节的包)不会出现问题,同样挂在PCI上的其他芯片不会出现问题,使用同样在CSB总线上的其他设备不会造成该问题,也就是说只有Nand和E1芯片一起工作才出问题。 > > 目前定位到:1.提高PCI在CSB总线的优先级到最高,没作用 > > 2.修改FCM的OR寄存器调整访问时序,没作用 > > 3.修改ELBC nand驱动,不用中断改轮询,没作用 > > 4.提高CPU频率(333M-〉400/500),降低LBC频率,没作用 > > 5.单独从DDR到FCM 内部buffer拷贝测试,不影响,不会出现该问题 > > 6.循环单字节读Nand内容,不会出现问题 > > 该问题已经出现好长一段时间,分别请教过freescale和cn8478的技术支持,并无结果,请各位高手,特别是熟悉MPC芯片的高手看看,万分感谢 > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > From eric.y.miao在gmail.com Fri Apr 2 09:53:17 2010 From: eric.y.miao在gmail.com (Eric Miao) Date: Fri, 2 Apr 2010 09:53:17 +0800 Subject: =?UTF-8?B?UmU6IOacieayoeacieS6uuWBmui/hyBFY2xpcHNlIOWFs+S6jiBNSVBTL0FSTSB0b29sYw==?= =?UTF-8?B?aGFpbiDnmoTmj5Lku7bnmoTvvIzlkqjor6LkuIs/?= In-Reply-To: References: Message-ID: Exactly, I'd like to know if there are already some usable solutions freely available, and if there are any, how's the user experience, like JTAG/debugger support, how well tools are integrated, ... 2010/4/2 ja alex > GNU-toolchain based? > > 在 2010年4月1日 下午10:58,Eric Miao 写道: > >> RT >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > > > From guowei1651在yeah.net Fri Apr 2 09:57:01 2010 From: guowei1651在yeah.net (guowei1651) Date: Fri, 2 Apr 2010 09:57:01 +0800 (CST) Subject: =?gbk?B?UmU6UmU6IMTausvEo7/pwbS9076yzKy/4g==?= In-Reply-To: <20100401133347.GA3133@hack> References: <20100401133347.GA3133@hack> <20100401113216.A20BA18B81B@server.dhxy.info> Message-ID: <66a6e4c8.c67c.127bc3c501f.Coremail.guowei1651@yeah.net> 内核代码中不会连接gcc的标准c语言库,因为内核里面有自己实现的一些库函数。 -- answers 在2010-04-01 21:33:47,"Américo Wang" 写道: >On Thu, Apr 01, 2010 at 07:32:11PM +0800, 王保胜 wrote: >>Hi, >>我编写了一个2.6的内核模块,但是这个模块要是用libgcc.a静态库。在Makefie中怎么写才能能连接这个库呢?我查了一下资料,没有查到。 > > >很可能是你代码的问题,gcc认为需要用libgcc库的函数来优化, >所以要么阻止这个优化,要么转化你的代码。 > >-- >Live like a child, think like the god. > >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org From wangbaosheng在sict.ac.cn Fri Apr 2 10:04:37 2010 From: wangbaosheng在sict.ac.cn (=?utf-8?B?546L5L+d6IOc?=) Date: Sat, 02 Apr 2010 10:04:37 +0800 Subject: =?utf-8?B?5Zue5aSNOiAgUmU6UmU6IOWGheaguOaooeWdl+mTvuaOpemdmeaAgeW6kw==?= Message-ID: 非常感谢大家的回复。 这个程序文件根据需要编译成内核代码和用户代码两种方式,是代码中的宏定义部分出现了问题。不好意思,我疏忽了。 2010-04-02 王保胜 发件人: guowei1651 发送时间: 2010-04-02 09:57 主 题: Re:Re: 内核模块链接静态库 收件人: zh-kernel 内核代码中不会连接gcc的标准c语言库,因为内核里面有自己实现的一些库函数。 -- answers 在2010-04-01 21:33:47,"Américo Wang" 写道: >On Thu, Apr 01, 2010 at 07:32:11PM +0800, 王保胜 wrote: >>Hi, >>我编写了一个2.6的内核模块,但是这个模块要是用libgcc.a静态库。在Makefie中怎么写才能能连接这个库呢?我查了一下资料,没有查到。 > > >很可能是你代码的问题,gcc认为需要用libgcc库的函数来优化, >所以要么阻止这个优化,要么转化你的代码。 > >-- >Live like a child, think like the god. > >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From zhanghui629在gmail.com Fri Apr 2 11:03:42 2010 From: zhanghui629在gmail.com (=?GB2312?B?1cW71A==?=) Date: Fri, 2 Apr 2010 11:03:42 +0800 Subject: =?GB2312?B?UmU6IFJlOiDE2rrLxKO/6cG0vdO+ssysv+I=?= In-Reply-To: <66a6e4c8.c67c.127bc3c501f.Coremail.guowei1651@yeah.net> References: <20100401113216.A20BA18B81B@server.dhxy.info> <20100401133347.GA3133@hack> <66a6e4c8.c67c.127bc3c501f.Coremail.guowei1651@yeah.net> Message-ID: 内核里怎么会用到libgcc呢???!!! 在 2010年4月2日 上午9:57,guowei1651 写道: > 内核代码中不会连接gcc的标准c语言库,因为内核里面有自己实现的一些库函数。 > > -- > > answers > > > 在2010-04-01 21:33:47,"Américo Wang" 写道: > >On Thu, Apr 01, 2010 at 07:32:11PM +0800, 王保胜 wrote: > >>Hi, > >>我编写了一个2.6的内核模块,但是这个模块要是用libgcc.a静态库。在Makefie中怎么写才能能连接这个库呢?我查了一下资料,没有查到。 > > > > > >很可能是你代码的问题,gcc认为需要用libgcc库的函数来优化, > >所以要么阻止这个优化,要么转化你的代码。 > > > >-- > >Live like a child, think like the god. > > > >_______________________________________________ > >Linux 内核开发中文邮件列表 > >Linux-kernel在zh-kernel.org > >http://zh-kernel.org/mailman/listinfo/linux-kernel > >Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > From xiyou.wangcong在gmail.com Fri Apr 2 11:22:10 2010 From: xiyou.wangcong在gmail.com (=?UTF-8?Q?Am=C3=A9rico_Wang?=) Date: Fri, 2 Apr 2010 11:22:10 +0800 Subject: =?UTF-8?B?UmU6IFJlOiDlhoXmoLjmqKHlnZfpk77mjqXpnZnmgIHlupM=?= In-Reply-To: References: <20100401113216.A20BA18B81B@server.dhxy.info> <20100401133347.GA3133@hack> <66a6e4c8.c67c.127bc3c501f.Coremail.guowei1651@yeah.net> Message-ID: (拜托,不要在顶部回复) 2010/4/2 张辉 : > 内核里怎么会用到libgcc呢???!!! > > 在 2010年4月2日 上午9:57,guowei1651 写道: > >> 内核代码中不会连接gcc的标准c语言库,因为内核里面有自己实现的一些库函数。 >> 1. libgcc不是标准c语言库,libc才是,很明显; 2. 不是内核主动使用的libgcc,实际上也不可能会,而是gcc编译的时候自行决定要使用的; 3. upstream 已经不止一次遇到这种问题了,如果你们想要例子,看commit 38332cb9。 From qingshenlwy在gmail.com Fri Apr 2 12:09:16 2010 From: qingshenlwy在gmail.com (Wenyi Liu) Date: Fri, 2 Apr 2010 12:09:16 +0800 Subject: =?GB2312?B?UmU6IMTausvEo7/pwbS9076yzKy/4g==?= In-Reply-To: <20100401113216.B719818B81C@server.dhxy.info> References: <20100401113216.B719818B81C@server.dhxy.info> Message-ID: 建议查下内核里面提供了那些类似的库。 在 2010年4月1日 下午7:32,王保胜 写道: > Hi, > 我编写了一个2.6的内核模块,但是这个模块要是用libgcc.a静态库。在Makefie中怎么写才能能连接这个库呢?我查了一下资料,没有查到。 > > 希望各位能够帮助一下! > > 2010-04-01 > > > > 王保胜 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From qingshenlwy在gmail.com Fri Apr 2 12:12:59 2010 From: qingshenlwy在gmail.com (Wenyi Liu) Date: Fri, 2 Apr 2010 12:12:59 +0800 Subject: =?GB2312?B?UmU6ILTzvNKyu9KqsMvY1MHLo6yw78Omv7S49s7KzOKjrLnY?= =?GB2312?B?09pNUEM4MzEzRbXEo6xUSFh+?= In-Reply-To: References: Message-ID: 会不会是锁造成的? 在 2010年4月1日 上午9:32,Wang QianChuan 写道: > 环境:嵌入式设备,主要做音视频处理,MPC8313E作为主控芯片,ELBC上通过FCM挂NAND > FLASH,PCI上挂了DSP、视频编解码ASIC以及用作E1通信的多通道控制器,该芯片是CONEXANT的CN8478,PCI工作在33M。此外,还使用了ETSEC、UART、SPI等外设。 > 现象:使用kernel:2.6.10,在高速E1通信,即使用PCI设备时,如果进行Nand读写,则会导致CN8478出现buffer > error,underrun或者overrun,即访问不到DDR。不进行Nand读写不会出现问题,低速E1通信(如ping少字节的包)不会出现问题,同样挂在PCI上的其他芯片不会出现问题,使用同样在CSB总线上的其他设备不会造成该问题,也就是说只有Nand和E1芯片一起工作才出问题。 > 目前定位到:1.提高PCI在CSB总线的优先级到最高,没作用 > 2.修改FCM的OR寄存器调整访问时序,没作用 > 3.修改ELBC nand驱动,不用中断改轮询,没作用 > 4.提高CPU频率(333M-〉400/500),降低LBC频率,没作用 > 5.单独从DDR到FCM 内部buffer拷贝测试,不影响,不会出现该问题 > 6.循环单字节读Nand内容,不会出现问题 > 该问题已经出现好长一段时间,分别请教过freescale和cn8478的技术支持,并无结果,请各位高手,特别是熟悉MPC芯片的高手看看,万分感谢 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From 21cnbao在gmail.com Fri Apr 2 12:30:18 2010 From: 21cnbao在gmail.com (Barry Song) Date: Fri, 2 Apr 2010 12:30:18 +0800 Subject: kernel oops issue, does anyone has ideas? In-Reply-To: References: Message-ID: 你拿仿真器在gdb设置一个WATCH,一旦有人践踏了你说的被改的代码段位置,停住backtrace观察。应该是内核里面哪里的内存溢出造成。 2010/1/15 zhangleo : > > Hi all, > > 请问那位仁兄遇到过linux kernel代码段被改写的问题? > 由于目前还不支持KGDB,所以我打算把代码段属性设置为只读,但不知道如何处理? > 郁闷了几天了J > > BTW: IXP4XX系列架构 > > 谢谢 > > <4>Internal error: Oops - undefined instruction: 0 [#1] > <4>Modules linked in > <4>CPU: 0 > <4>PC is at tcp_recvmsg+0x498/0x7f8 > <4>LR is at 0x18 > <4>pc : []    lr : [<00000018>]    Tainted: P > <4>sp : c9f25dc4  ip : 0000002f  fp : c9f25e10 > <4>r10: 00000001  r9 : 00000000  r8 : 00000000 > <4>r7 : a803f10e  r6 : 00000001  r5 : cdce2f00  r4 : ca696060 > <4>r3 : 0000002f  r2 : 00000000  r1 : c028d070  r0 : c028a488 > <4>Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  Segment user > <4>Control: 39FF > <4>Table: 09D3C000  DAC: 00000015 > <4>Process sshd (pid: 1722, stack limit = 0xc9f24258) > <4>Stack: (0xc9f25dc4 to 0xc9f26000) > <4>5dc0:          c9f25e60 00000000 ca6963a4 00000001 00000000 c9f24000 7fffffff > <4>5de0: 000005b4 00000000 c02bdb34 c9f25e60 c9f25eb4 c9e61620 00000001 00000001 > <4>5e00: c9f25f38 c9f25e38 c9f25e14 c0198de0 c01cee74 00000000 00000000 c9f25e20 > <4>5e20: 00000000 c022d5e0 c9f25e60 c9f25ea8 c9f25e3c c0196bcc c0198da0 00000000 > <4>5e40: c0196ad4 c01eb2f8 00000000 00000001 c9e61620 00000013 00000000 c9f25e60 > <4>5e60: 00000000 00000000 c9f25f38 00000001 00000000 00000000 00000000 c9f25eb4 > <4>5e80: c9f25eb4 cba25340 c9f25f80 00000001 c0020d84 c9f24000 befffd48 c9f25f58 > <4>5ea0: c9f25eb0 c007dccc c0196aec 00000000 00000000 cccfe240 028dc004 00000000 > <4>5ec0: 00000001 ffffffff cba25340 00000000 00000000 00000000 00000000 c9f5c0c0 > <4>5ee0: 00000000 00000000 c00529a8 c9f5c0c0 c00502e0 c9f25ef4 c9f25ef4 00000000 > <4>5f00: 00000000 00000000 c9f25e40 c9f5c0c0 c9f25f64 c9f25f20 00000001 c0052c10 > <4>5f20: c9f25f68 00000000 00000000 c9e6173c 00000002 ca1583d4 befffd48 00000001 > <4>5f40: cba25340 befffd48 c9f25f80 c9f25f7c c9f25f5c c007e63c c007dc18 00000000 > <4>5f60: cba25340 00000000 00000000 00000003 c9f25fa4 c9f25f80 c007ea6c c007e57c > <4>5f80: 00000000 00000000 00000000 befffd48 00000000 00000001 00000000 c9f25fa8 > <4>5fa0: c0020be0 c007ea2c befffd48 00000000 00000005 befffd48 00000001 00000001 > <4>5fc0: befffd48 00000000 00000001 00000005 0000be68 000666a8 befffd48 000666c0 > <4>5fe0: 00000000 befff6f0 000406d0 402a4f34 60000010 00000005 00000000 00000000 > <4>Backtrace: > <4>[] (tcp_recvmsg+0x0/0x7f8) from [] (sock_common_recvmsg+0x4c/0x60) > <4>[] (sock_common_recvmsg+0x0/0x60) from [] (sock_aio_read+0xf0/0xf8) > <4> r5 = C9F25E60  r4 = C022D5E0 > <4>[] (sock_aio_read+0x4/0xf8) from [] (do_sync_read+0xc0/0x114) > <4>[] (do_sync_read+0x0/0x114) from [] (vfs_read+0xcc/0x140) > <4> r6 = C9F25F80  r5 = BEFFFD48  r4 = CBA25340 > <4>[] (vfs_read+0x0/0x140) from [] (sys_read+0x4c/0x80) > <4> r7 = 00000003  r6 = 00000000  r5 = 00000000  r4 = CBA25340 > <4>[] (sys_read+0x0/0x80) from [] (ret_fast_syscall+0x0/0x2c) > <4> r6 = 00000001  r5 = 00000000  r4 = BEFFFD48 > <4>Code: ffffffe1 ffffffe3 fffffbff ffffffff (fffff001) > > > > > _________________________________________________________________ > MSN十年回馈,每位用户可免费获得价值25元的卡巴斯基反病毒软件2010激活码,快来领取! > http://kaba.msn.com.cn/?k=1 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From cyher.net在gmail.com Fri Apr 2 12:36:37 2010 From: cyher.net在gmail.com (cyher) Date: Fri, 2 Apr 2010 12:36:37 +0800 Subject: =?GB2312?B?UmU6IMnPuqPO3r7gv8a8vLPPxrhMaW51eMjtvP65pLPMyqY=?= In-Reply-To: <04f301cad0d9$5a03a770$179e14ac@HuangGaoDesk> References: <04f301cad0d9$5a03a770$179e14ac@HuangGaoDesk> Message-ID: 在 2010年3月31日 下午9:51,Huang Gao (Gmail) 写道: > 庆祝复活,发一个招聘贴:) > > 各位Linux Fans: > > 现在我们正在做Android和Maemo两个Linux手机和MID的开发,我们的团队之前来自一家 > 很大的手机设计公司,已经在这个业界做了五年多了,大家如果有兴趣请踊跃投简历, > 感谢! > > > > 公司简介: > > 上海无距科技有限公司是一家专注于移动互联网设备(Mobile Internet Device)和 > Linux高端智能手机的研发,设计和销售的高科技创新型企业。公司的核心团队由在互 > 联网及消费电子领域从业多年,具有丰富的专业技能和公司管理运作经验的人士组成。 > 公司目前处于初创时期,但产品研发已经初步完成且取得了较好的市场机会。目前公司 > 业务规模扩大,诚聘Linux软件工程师,测试工程师。 > > 无线互联网领域已经成为IT行业一个高速成长的领域,我们将会牢牢的把握这一历史性 > 机遇,充分利用公司在技术和市场上的领先优势,在1-2年内在中国占据细分市场的足 > 够份额,在3-5年内成为在无线互联网领域具有影响力的创新型企业 。 > > 我们是一个年轻的,富有朝气的团队,专注于MID的研发。这是一个刚刚起步也很有研 > 发深度的领域,我们拥有开发软件平台的源代码,很多开发基于Open Source的理念和 > 经验,团队成员工作气氛积极向上。如果你对嵌入式Linux和Open source软件开发很感 > 兴趣,请加入我们;如果你对手机软件研发,特别是MID领域很感兴趣,请加入我们; > 如果你希望和一个团队在和谐平等的气氛中共同进步,请加入我们! > > > > 诚聘嵌入式Linux软件工程师: > > 一、软件工程师(驱动) > > 主要工作职责: > > - 嵌入式Linux驱动程序开发 > > 人员技能要求: > > - 计算机软件或相关专业本科以上 > > - 熟练掌握C语言 > > - 具有较强的分析和理解源代码的能力 > > - 能够熟练阅读并理解英文技术资料 > > - 具有独立工作的能力,善于和他人合作 > > - 具有 Linux 驱动开发经验者优先 > > 如有意向,请发信至: huanggao在gmail.com > > > > 二、软件工程师(中间件/应用) > > 主要工作职责: > > - 嵌入式Linux应用软件和中间件开发 > > 人员技能要求: > > - 计算机软件或相关专业本科以上 > > - 熟练掌握C语言 > > - 具有较强的分析和理解源代码的能力 > > - 能够熟练阅读并理解英文技术资料 > > - 具有独立工作的能力,善于和他人合作 > > - 有丰富的C++等面向对象及软件工程开发经验者优先 > > - 有Android开发经验者优先 > > 如有意向,请发信至: huanggao在gmail.com > > > > 三、软件工程师(多媒体) > > 因为多媒体在消费类电子设备中太重要了,所以,单独强调一下 > > 主要工作职责: > > - 嵌入式Linux多媒体功能的开发 > > 人员技能要求: > > - 计算机软件或相关专业本科以上 > > - 熟练掌握C语言 > > - 有多媒体研发经验,熟悉各种Codec的应用和集成; > > - 具有较强的分析和理解源代码的能力 > > - 能够熟练阅读并理解英文技术资料 > > - 具有独立工作的能力,善于和他人合作 > > - 熟悉Linux上多媒体架构的优先,包括:OpenCore/OpenMax, GStreamer, Mplayer, > ALSA, ESD等; > > - 有丰富的C++等面向对象及软件工程开发经验者优先 > > 如有意向,请发信至: huanggao在gmail.com > > > > Best Regards > > Huang Gao(黄杲) > > Shanghai WooJoy Technology Co.,Ltd. > > Tel: (86)21-51701500-8012 > > Fax: (86)21-51701508 > > Email: huanggao在gmail.com > > Address: Shanghai Scientific and Technical Incubator Center; Room 601, > Building 2, Lane 100, Qinzhou Road, Xuhui District, Shanghai, P.R. China > Zip: 200235 > > Website: http://www.woojoy.com > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org 貌似 很有吸引力 -- http://cyher.net From r58472在freescale.com Fri Apr 2 12:44:14 2010 From: r58472在freescale.com (Li Yang-R58472) Date: Fri, 2 Apr 2010 12:44:14 +0800 Subject: =?utf-8?B?UkU6IOWkp+WutuS4jeimgeWFq+WNpuS6hu+8jOW4ruW/meeci+S4qumXrumimA==?= =?utf-8?B?77yM5YWz5LqOTVBDODMxM0XnmoTvvIxUSFh+?= In-Reply-To: References: Message-ID: <3A45394FD742FA419B760BB8D398F9ED01768064@zch01exm26.fsl.freescale.net> >Subject: 大家不要八卦了,帮忙看个问题,关于MPC8313E的,THX~ > >环境:嵌入式设备,主要做音视频处理,MPC8313E作为主控芯片,ELBC上通过FCM挂NAND >FLASH,PCI上挂了DSP、视频编解码ASIC以及用作E1通信的多通道控制器,该芯片是CONEXANT的CN8478,PC >I工作在33M。此外,还使用了ETSEC、UART、SPI等外设。 >现象:使用kernel:2.6.10,在高速E1通信,即使用PCI设备时,如果进行Nand读写,则会导致CN8478出现buffer >error,underrun或者overrun,即访问不到DDR。不进行Nand读写不会出现问题,低速E1通信(如ping少字 >节的包)不会出现问题,同样挂在PCI上的其他芯片不会出现问题,使用同样在CSB总线上的其他设备不会造成该问题,也就是说只有Na >nd和E1芯片一起工作才出问题。 >目前定位到:1.提高PCI在CSB总线的优先级到最高,没作用 > 2.修改FCM的OR寄存器调整访问时序,没作用 > 3.修改ELBC nand驱动,不用中断改轮询,没作用 > 4.提高CPU频率(333M-〉400/500),降低LBC频率,没作用 > 5.单独从DDR到FCM 内部buffer拷贝测试,不影响,不会出现该问题 > 6.循环单字节读Nand内容,不会出现问题 会不会是板子上的信号互相干扰? 建议检查一下信号质量。 - Leo From lurker0ster在gmail.com Fri Apr 2 13:08:31 2010 From: lurker0ster在gmail.com (ja alex) Date: Fri, 2 Apr 2010 13:08:31 +0800 Subject: =?GB2312?B?UmU6INPQw7vT0MjL1/a5/SBFY2xpcHNlILnY09ogTUlQUy9BUk0gdG9vbGM=?= =?GB2312?B?aGFpbiC1xLLlvP61xKOs18nRr8/CPw==?= In-Reply-To: References: Message-ID: CDT uses GDB Machine Interface to communicate with GDB. So it can integrate your version of GDB seamlessly. 在 2010年4月2日 上午11:55,Eric Miao 写道: > What about debugging then? > > > 2010/4/2 ja alex > >> Eclipse/CDT would be your choice. It uses GNU GCC as backend. >> >> 在 2010年4月2日 上午9:53,Eric Miao 写道: >> >> Exactly, I'd like to know if there are already some usable solutions >>> freely available, and if there are any, how's the user experience, >>> like JTAG/debugger support, how well tools are integrated, ... >>> >>> 2010/4/2 ja alex >>> >>> GNU-toolchain based? >>>> >>>> 在 2010年4月1日 下午10:58,Eric Miao 写道: >>>> >>>>> RT >>>>> _______________________________________________ >>>>> Linux 内核开发中文邮件列表 >>>>> c >>>>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>>>> Linux 内核开发中文社区: http://zh-kernel.org >>>> >>>> >>>> >>> >> > From eric.y.miao在gmail.com Fri Apr 2 14:23:02 2010 From: eric.y.miao在gmail.com (Eric Miao) Date: Fri, 2 Apr 2010 14:23:02 +0800 Subject: =?UTF-8?B?UmU6IOacieayoeacieS6uuWBmui/hyBFY2xpcHNlIOWFs+S6jiBNSVBTL0FSTSB0b29sYw==?= =?UTF-8?B?aGFpbiDnmoTmj5Lku7bnmoTvvIzlkqjor6LkuIs/?= In-Reply-To: References: Message-ID: 2010/4/2 ja alex > > CDT uses GDB Machine Interface to communicate with GDB. > So it can integrate your version of GDB seamlessly. > I see, thanks. > 在 2010年4月2日 上午11:55,Eric Miao 写道: >> >> What about debugging then? >> >> 2010/4/2 ja alex >>> >>> Eclipse/CDT would be your choice. It uses GNU GCC as backend. >>> >>> 在 2010年4月2日 上午9:53,Eric Miao 写道: >>>> >>>> Exactly, I'd like to know if there are already some usable solutions >>>> freely available, and if there are any, how's the user experience, >>>> like JTAG/debugger support, how well tools are integrated, ... >>>> >>>> 2010/4/2 ja alex >>>>> >>>>> GNU-toolchain based? >>>>> >>>>> 在 2010年4月1日 下午10:58,Eric Miao 写道: >>>>>> >>>>>> RT >>>>>> _______________________________________________ >>>>>> Linux 内核开发中文邮件列表 >>>>>> chttp://zh-kernel.org/mailman/listinfo/linux-kernel >>>>>> Linux 内核开发中文社区: http://zh-kernel.org >>>> >>> >> > From zoleooo在hotmail.com Fri Apr 2 14:28:03 2010 From: zoleooo在hotmail.com (zhangleo) Date: Fri, 2 Apr 2010 06:28:03 +0000 Subject: kernel oops issue, does anyone has ideas? In-Reply-To: References: , Message-ID: Thanks for reply. actually this is a very old issue, i found the reason finally, redboot using DMA to transmitted data and this lead to memory overwrited. > From: 21cnbao在gmail.com > Date: Fri, 2 Apr 2010 12:30:18 +0800 > Subject: Re: kernel oops issue, does anyone has ideas? > To: zoleooo在hotmail.com > CC: linux-kernel在zh-kernel.org > > 你拿仿真器在gdb设置一个WATCH,一旦有人践踏了你说的被改的代码段位置,停住backtrace观察。应该是内核里面哪里的内存溢出造成。 > > > 2010/1/15 zhangleo : > > > > Hi all, > > > > 请问那位仁兄遇到过linux kernel代码段被改写的问题? > > 由于目前还不支持KGDB,所以我打算把代码段属性设置为只读,但不知道如何处理? > > 郁闷了几天了J > > > > BTW: IXP4XX系列架构 > > > > 谢谢 > > > > <4>Internal error: Oops - undefined instruction: 0 [#1] > > <4>Modules linked in > > <4>CPU: 0 > > <4>PC is at tcp_recvmsg+0x498/0x7f8 > > <4>LR is at 0x18 > > <4>pc : [] lr : [<00000018>] Tainted: P > > <4>sp : c9f25dc4 ip : 0000002f fp : c9f25e10 > > <4>r10: 00000001 r9 : 00000000 r8 : 00000000 > > <4>r7 : a803f10e r6 : 00000001 r5 : cdce2f00 r4 : ca696060 > > <4>r3 : 0000002f r2 : 00000000 r1 : c028d070 r0 : c028a488 > > <4>Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user > > <4>Control: 39FF > > <4>Table: 09D3C000 DAC: 00000015 > > <4>Process sshd (pid: 1722, stack limit = 0xc9f24258) > > <4>Stack: (0xc9f25dc4 to 0xc9f26000) > > <4>5dc0: c9f25e60 00000000 ca6963a4 00000001 00000000 c9f24000 7fffffff > > <4>5de0: 000005b4 00000000 c02bdb34 c9f25e60 c9f25eb4 c9e61620 00000001 00000001 > > <4>5e00: c9f25f38 c9f25e38 c9f25e14 c0198de0 c01cee74 00000000 00000000 c9f25e20 > > <4>5e20: 00000000 c022d5e0 c9f25e60 c9f25ea8 c9f25e3c c0196bcc c0198da0 00000000 > > <4>5e40: c0196ad4 c01eb2f8 00000000 00000001 c9e61620 00000013 00000000 c9f25e60 > > <4>5e60: 00000000 00000000 c9f25f38 00000001 00000000 00000000 00000000 c9f25eb4 > > <4>5e80: c9f25eb4 cba25340 c9f25f80 00000001 c0020d84 c9f24000 befffd48 c9f25f58 > > <4>5ea0: c9f25eb0 c007dccc c0196aec 00000000 00000000 cccfe240 028dc004 00000000 > > <4>5ec0: 00000001 ffffffff cba25340 00000000 00000000 00000000 00000000 c9f5c0c0 > > <4>5ee0: 00000000 00000000 c00529a8 c9f5c0c0 c00502e0 c9f25ef4 c9f25ef4 00000000 > > <4>5f00: 00000000 00000000 c9f25e40 c9f5c0c0 c9f25f64 c9f25f20 00000001 c0052c10 > > <4>5f20: c9f25f68 00000000 00000000 c9e6173c 00000002 ca1583d4 befffd48 00000001 > > <4>5f40: cba25340 befffd48 c9f25f80 c9f25f7c c9f25f5c c007e63c c007dc18 00000000 > > <4>5f60: cba25340 00000000 00000000 00000003 c9f25fa4 c9f25f80 c007ea6c c007e57c > > <4>5f80: 00000000 00000000 00000000 befffd48 00000000 00000001 00000000 c9f25fa8 > > <4>5fa0: c0020be0 c007ea2c befffd48 00000000 00000005 befffd48 00000001 00000001 > > <4>5fc0: befffd48 00000000 00000001 00000005 0000be68 000666a8 befffd48 000666c0 > > <4>5fe0: 00000000 befff6f0 000406d0 402a4f34 60000010 00000005 00000000 00000000 > > <4>Backtrace: > > <4>[] (tcp_recvmsg+0x0/0x7f8) from [] (sock_common_recvmsg+0x4c/0x60) > > <4>[] (sock_common_recvmsg+0x0/0x60) from [] (sock_aio_read+0xf0/0xf8) > > <4> r5 = C9F25E60 r4 = C022D5E0 > > <4>[] (sock_aio_read+0x4/0xf8) from [] (do_sync_read+0xc0/0x114) > > <4>[] (do_sync_read+0x0/0x114) from [] (vfs_read+0xcc/0x140) > > <4> r6 = C9F25F80 r5 = BEFFFD48 r4 = CBA25340 > > <4>[] (vfs_read+0x0/0x140) from [] (sys_read+0x4c/0x80) > > <4> r7 = 00000003 r6 = 00000000 r5 = 00000000 r4 = CBA25340 > > <4>[] (sys_read+0x0/0x80) from [] (ret_fast_syscall+0x0/0x2c) > > <4> r6 = 00000001 r5 = 00000000 r4 = BEFFFD48 > > <4>Code: ffffffe1 ffffffe3 fffffbff ffffffff (fffff001) > > > > > > > > > > _________________________________________________________________ > > MSN十年回馈,每位用户可免费获得价值25元的卡巴斯基反病毒软件2010激活码,快来领取! > > http://kaba.msn.com.cn/?k=1 > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org _________________________________________________________________ MSN十年回馈,每位用户可免费获得价值25元的卡巴斯基反病毒软件2010激活码,快来领取! http://kaba.msn.com.cn/?k=1 From elendil.wang在gmail.com Fri Apr 2 15:00:10 2010 From: elendil.wang在gmail.com (Wang QianChuan) Date: Fri, 2 Apr 2010 15:00:10 +0800 Subject: =?GB2312?B?UmU6ILTzvNKyu9KqsMvY1MHLo6yw78Omv7S49s7KzOKjrLnY?= =?GB2312?B?09pNUEM4MzEzRbXEo6xUSFh+?= In-Reply-To: <3A45394FD742FA419B760BB8D398F9ED01768064@zch01exm26.fsl.freescale.net> References: <3A45394FD742FA419B760BB8D398F9ED01768064@zch01exm26.fsl.freescale.net> Message-ID: To Wenyi liu 软件上死锁不太可能,因为在传输时,E1通信是由DMA自己和DDR交互的,NAND也是由FCM控制器从内部BUFFER写到Nand Flash的,和CPU基本没有关系 CPU总线死锁倒是有可能造成此问题,但目前没有任何方式证明或者验证,FAE也没有明确的回复 To Leo: 与硬件部同事确认过,几个数据引脚的信号有些超标,但并不会影响到通信,有没有什么指标可以推荐检查的呢? 以上,感谢二位! 2010/4/2 Li Yang-R58472 > > >Subject: 大家不要八卦了,帮忙看个问题,关于MPC8313E的,THX~ > > > >环境:嵌入式设备,主要做音视频处理,MPC8313E作为主控芯片,ELBC上通过FCM挂NAND > >FLASH,PCI上挂了DSP、视频编解码ASIC以及用作E1通信的多通道控制器,该芯片是CONEXANT的CN8478,PC > >I工作在33M。此外,还使用了ETSEC、UART、SPI等外设。 > >现象:使用kernel:2.6.10,在高速E1通信,即使用PCI设备时,如果进行Nand读写,则会导致CN8478出现buffer > >error,underrun或者overrun,即访问不到DDR。不进行Nand读写不会出现问题,低速E1通信(如ping少字 > >节的包)不会出现问题,同样挂在PCI上的其他芯片不会出现问题,使用同样在CSB总线上的其他设备不会造成该问题,也就是说只有Na > >nd和E1芯片一起工作才出问题。 > >目前定位到:1.提高PCI在CSB总线的优先级到最高,没作用 > > 2.修改FCM的OR寄存器调整访问时序,没作用 > > 3.修改ELBC nand驱动,不用中断改轮询,没作用 > > 4.提高CPU频率(333M-〉400/500),降低LBC频率,没作用 > > 5.单独从DDR到FCM 内部buffer拷贝测试,不影响,不会出现该问题 > > 6.循环单字节读Nand内容,不会出现问题 > > 会不会是板子上的信号互相干扰? 建议检查一下信号质量。 > > - Leo > From kermit.mei在gmail.com Fri Apr 2 16:56:23 2010 From: kermit.mei在gmail.com (Kermit Mei) Date: Fri, 02 Apr 2010 16:56:23 +0800 Subject: =?UTF-8?Q?=E4=B8=AD=E6=96=87=E9=82=AE=E4=BB=B6=E5=88=97=E8=A1=A8?= =?UTF-8?Q?=E8=A2=AB=E6=B2=B3=E8=9F=B9=E5=95=A6=EF=BC=9F?= In-Reply-To: <619049E87C9243449FEA17D003C77E8E0754ED52@xmb-hkg-418.apac.cisco.com> References: <4B4FCAB8.3090308@gmail.com> <619049E87C9243449FEA17D003C77E8E0754ED52@xmb-hkg-418.apac.cisco.com> Message-ID: <1270198583.13064.0.camel@KLT> On Tue, 2010-03-30 at 11:21 +0800, Luke Zhang (luzhan) wrote: > 和谐了吗? 我已经好久不能发帖和收帖了…… From r58472在freescale.com Fri Apr 2 16:58:38 2010 From: r58472在freescale.com (Li Yang-R58472) Date: Fri, 2 Apr 2010 16:58:38 +0800 Subject: =?utf-8?B?UkU6IOS4reaWh+mCruS7tuWIl+ihqOiiq+ays+ifueWVpu+8nw==?= In-Reply-To: <1270198583.13064.0.camel@KLT> References: <4B4FCAB8.3090308@gmail.com><619049E87C9243449FEA17D003C77E8E0754ED52@xmb-hkg-418.apac.cisco.com> <1270198583.13064.0.camel@KLT> Message-ID: <3A45394FD742FA419B760BB8D398F9ED01768118@zch01exm26.fsl.freescale.net> >On Tue, 2010-03-30 at 11:21 +0800, Luke Zhang (luzhan) wrote: >> 和谐了吗? > >我已经好久不能发帖和收帖了…… 前一阵服务器硬件坏了。 - Leo From zoleooo在hotmail.com Fri Apr 2 16:58:53 2010 From: zoleooo在hotmail.com (zhangleo) Date: Fri, 2 Apr 2010 08:58:53 +0000 Subject: =?gb2312?B?zNbC21RDUCBSU1Qv?= =?gb2312?B?U1lOt8C5pbv3?= Message-ID: 尽然能用了,和大家讨论一个问题。 基于TCP的RST/SYN 防攻击都有什么比较好的手段? _________________________________________________________________ MSN十年回馈,每位用户可免费获得价值25元的卡巴斯基反病毒软件2010激活码,快来领取! http://kaba.msn.com.cn/?k=1 From hechaos在gmail.com Fri Apr 2 17:28:49 2010 From: hechaos在gmail.com (Chao) Date: Fri, 2 Apr 2010 17:28:49 +0800 Subject: =?GB2312?B?UmU6IMzWwttUQ1AgUlNUL1NZTrfAuaW79w==?= In-Reply-To: References: Message-ID: 有哪些攻击手段? 在 2010年4月2日 下午4:58,zhangleo 写道: > > 尽然能用了,和大家讨论一个问题。 > > 基于TCP的RST/SYN 防攻击都有什么比较好的手段? > > _________________________________________________________________ > MSN十年回馈,每位用户可免费获得价值25元的卡巴斯基反病毒软件2010激活码,快来领取! > http://kaba.msn.com.cn/?k=1 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From rurality.wq在gmail.com Fri Apr 2 17:36:39 2010 From: rurality.wq在gmail.com (Qiang Wang) Date: Fri, 2 Apr 2010 17:36:39 +0800 Subject: =?UTF-8?B?UmU6IOWFs+S6jmZyYW1lYnVmZmVy55qE5Yeg5Liq6Zeu6aKY?= In-Reply-To: References: Message-ID: framebuffer的主要功能,就是控制display controller,从内存中抓取数据,并且按照相应的数据格式,发送给显示屏。 当然,对文件系统会给出一个能够被应用层访问的接口。 在 2010年4月1日 下午10:01,Lv yuanzhou 写道: > 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~  不公布这些接口的话就无法使用其硬件加速了吧~  而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ > 不知道我理解得对不~ = 3= > > 在2010-04-01 21:56:35,"丁少衡" 写道: >>最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 >>framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算?我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别是他定义了许多常量(例如#define >>PALETTE_INDEX >>0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? >>哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) >>_______________________________________________ >>Linux 内核开发中文邮件列表 >>Linux-kernel在zh-kernel.org >>http://zh-kernel.org/mailman/listinfo/linux-kernel >>Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From rurality.wq在gmail.com Fri Apr 2 17:38:06 2010 From: rurality.wq在gmail.com (Qiang Wang) Date: Fri, 2 Apr 2010 17:38:06 +0800 Subject: =?UTF-8?B?UmU6IOWFs+S6jmZyYW1lYnVmZmVy55qE5Yeg5Liq6Zeu6aKY?= In-Reply-To: References: Message-ID: framebuffer有硬件加速的功能,但是要看具体的硬件设备。 Linux现有的框架,已经提供硬件加速的支持。但是具体实现,还有看具体的硬件。 在 2010年4月2日 下午5:36,Qiang Wang 写道: > framebuffer的主要功能,就是控制display controller,从内存中抓取数据,并且按照相应的数据格式,发送给显示屏。 > > 当然,对文件系统会给出一个能够被应用层访问的接口。 > > > > 在 2010年4月1日 下午10:01,Lv yuanzhou 写道: >> 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~  不公布这些接口的话就无法使用其硬件加速了吧~  而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ >> 不知道我理解得对不~ = 3= >> >> 在2010-04-01 21:56:35,"丁少衡" 写道: >>>最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 >>>framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算?我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别是他定义了许多常量(例如#define >>>PALETTE_INDEX >>>0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? >>>哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) >>>_______________________________________________ >>>Linux 内核开发中文邮件列表 >>>Linux-kernel在zh-kernel.org >>>http://zh-kernel.org/mailman/listinfo/linux-kernel >>>Linux 内核开发中文社区: http://zh-kernel.org >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > From chenbdchenbd在gmail.com Fri Apr 2 18:32:28 2010 From: chenbdchenbd在gmail.com (Baodong Chen) Date: Fri, 2 Apr 2010 18:32:28 +0800 Subject: =?GB2312?B?08q8/sHQse271ri0wcs=?= Message-ID: 如题,庆祝一下!!! ~_~ From s3c24xx在gmail.com Fri Apr 2 22:44:07 2010 From: s3c24xx在gmail.com (sniper) Date: Fri, 2 Apr 2010 22:44:07 +0800 Subject: [OT] porting nilfs from netbsd to freebsd Message-ID: http://code.google.com/p/freebsd-nilfs/ From xiyou.wangcong在gmail.com Sat Apr 3 00:15:43 2010 From: xiyou.wangcong在gmail.com (=?utf-8?Q?Am=C3=A9rico?= Wang) Date: Sat, 3 Apr 2010 00:15:43 +0800 Subject: =?utf-8?B?6K6o6K66VENQIFJTVC9TWU7pmLI=?= =?utf-8?B?5pS75Ye7?= In-Reply-To: References: Message-ID: <20100402161146.GC3848@hack> On Fri, Apr 02, 2010 at 08:58:53AM +0000, zhangleo wrote: > >尽然能用了,和大家讨论一个问题。 > >基于TCP的RST/SYN 防攻击都有什么比较好的手段? > SYN cookies TCP cookie transactions (2.6.33) -- Live like a child, think like the god. From dshbusiness在gmail.com Sat Apr 3 03:49:01 2010 From: dshbusiness在gmail.com (=?GB2312?B?tqHJ2bri?=) Date: Sat, 3 Apr 2010 03:49:01 +0800 Subject: =?GB2312?B?UmU6ILnY09pmcmFtZWJ1ZmZlcrXEvLi49s7KzOI=?= In-Reply-To: References: Message-ID: 我的最主要问题也就是,当我把显存map到用户空间,然后就可以向其中写入屏幕上某点的颜色。这种“写入”是不是一种抽象的写入?也就是说其实数据还要传给显卡进行硬件加速,然后再由显卡实际写到屏幕上?(有显卡,并且正确安装了显卡驱动) 在 2010年4月2日 下午5:38,Qiang Wang 写道: > framebuffer有硬件加速的功能,但是要看具体的硬件设备。 > Linux现有的框架,已经提供硬件加速的支持。但是具体实现,还有看具体的硬件。 > > 在 2010年4月2日 下午5:36,Qiang Wang 写道: > > framebuffer的主要功能,就是控制display controller,从内存中抓取数据,并且按照相应的数据格式,发送给显示屏。 > > > > 当然,对文件系统会给出一个能够被应用层访问的接口。 > > > > > > > > 在 2010年4月1日 下午10:01,Lv yuanzhou 写道: > >> 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~ 不公布这些接口的话就无法使用其硬件加速了吧~ > 而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ > >> 不知道我理解得对不~ = 3= > >> > >> 在2010-04-01 21:56:35,"丁少衡" 写道: > >>>最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 > > >>>framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算?我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别是他定义了许多常量(例如#define > >>>PALETTE_INDEX > > >>>0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? > > >>>哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) > >>>_______________________________________________ > >>>Linux 内核开发中文邮件列表 > >>>Linux-kernel在zh-kernel.org > >>>http://zh-kernel.org/mailman/listinfo/linux-kernel > >>>Linux 内核开发中文社区: http://zh-kernel.org > >> _______________________________________________ > >> Linux 内核开发中文邮件列表 > >> Linux-kernel在zh-kernel.org > >> http://zh-kernel.org/mailman/listinfo/linux-kernel > >> Linux 内核开发中文社区: http://zh-kernel.org > > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > From rurality.wq在gmail.com Sun Apr 4 12:30:02 2010 From: rurality.wq在gmail.com (Qiang Wang) Date: Sun, 4 Apr 2010 12:30:02 +0800 Subject: =?UTF-8?B?UmU6IOWFs+S6jmZyYW1lYnVmZmVy55qE5Yeg5Liq6Zeu6aKY?= In-Reply-To: References: Message-ID: 是的,最终还是由显卡来显示数据。 只是数据来自与用户区域。 在 2010年4月3日 上午3:49,丁少衡 写道: > 我的最主要问题也就是,当我把显存map到用户空间,然后就可以向其中写入屏幕上某点的颜色。这种“写入”是不是一种抽象的写入?也就是说其实数据还要传给显卡进行硬件加速,然后再由显卡实际写到屏幕上?(有显卡,并且正确安装了显卡驱动) > > 在 2010年4月2日 下午5:38,Qiang Wang 写道: >> >> framebuffer有硬件加速的功能,但是要看具体的硬件设备。 >> Linux现有的框架,已经提供硬件加速的支持。但是具体实现,还有看具体的硬件。 >> >> 在 2010年4月2日 下午5:36,Qiang Wang 写道: >> > framebuffer的主要功能,就是控制display controller,从内存中抓取数据,并且按照相应的数据格式,发送给显示屏。 >> > >> > 当然,对文件系统会给出一个能够被应用层访问的接口。 >> > >> > >> > >> > 在 2010年4月1日 下午10:01,Lv yuanzhou 写道: >> >> 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~  不公布这些接口的话就无法使用其硬件加速了吧~ >> >>  而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ >> >> 不知道我理解得对不~ = 3= >> >> >> >> 在2010-04-01 21:56:35,"丁少衡" 写道: >> >>>最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 >> >> >>> >>>framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算?我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别是他定义了许多常量(例如#define >> >>>PALETTE_INDEX >> >> >>> >>>0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? >> >> >>> >>>哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) >> >>>_______________________________________________ >> >>>Linux 内核开发中文邮件列表 >> >>>Linux-kernel在zh-kernel.org >> >>>http://zh-kernel.org/mailman/listinfo/linux-kernel >> >>>Linux 内核开发中文社区: http://zh-kernel.org >> >> _______________________________________________ >> >> Linux 内核开发中文邮件列表 >> >> Linux-kernel在zh-kernel.org >> >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> >> Linux 内核开发中文社区: http://zh-kernel.org >> > >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > From xiyou.wangcong在gmail.com Sun Apr 4 13:15:30 2010 From: xiyou.wangcong在gmail.com (=?utf-8?Q?Am=C3=A9rico?= Wang) Date: Sun, 4 Apr 2010 13:15:30 +0800 Subject: =?utf-8?B?Wk9ORV9ETUHog73lpJ/np7vljrs=?= =?utf-8?B?5LmIPw==?= In-Reply-To: References: Message-ID: <20100404051530.GA3012@hack> On Sun, Apr 04, 2010 at 12:44:58PM +0800, tek-life wrote: >在《深入理解Linux内核》一书中,说ZONE_DMA存在主要是因为ISA总线上的DMA控制器不用线性地址,而直接用物理地址,由于硬件的限制,所以,只能寻址到16MB的位置,因此要设置一个ZONE_DMA区。 >我的问题是: >1、现在ISA早已经推出历史舞台了。为什么还要保留这个区呢?难道现在PCI上的DMA也只能寻址到16MB的地方么? >2、这个区现在仍在,仅仅是为了兼容么(其他的体系结构么和那些老的有ISA的机器)? > 对于x86_64,已经有ZONE_DMA32了。 对于ia64,ZONE_DMA的含义和ZONE_DMA32相同。 -- Live like a child, think like the god. From xiyou.wangcong在gmail.com Sun Apr 4 14:04:00 2010 From: xiyou.wangcong在gmail.com (=?utf-8?Q?Am=C3=A9rico?= Wang) Date: Sun, 4 Apr 2010 14:04:00 +0800 Subject: =?utf-8?B?Wk9ORV9ETUHog73lpJ/np7vljrs=?= =?utf-8?B?5LmIPw==?= In-Reply-To: References: <20100404051530.GA3012@hack> Message-ID: <20100404060400.GB3012@hack> On Sun, Apr 04, 2010 at 01:20:25PM +0800, tek-life wrote: >对,我看到在现在Linux的内核中,有四个ZONE >ZONE_DMA >ZONE_DMA32 >ZONE_NORMAL >ZONE_HIGHMEM >其中,ZONE_DMA 仍然是16MB,而ZONE_DMA32为0啊,不就相当于实际上没有ZONE_DMA32区,而仍然存在ZONE_DMA区么 > 对于x86 32,ZONE_DMA32没用。。。它影响的是x86 64。 From dshbusiness在gmail.com Sun Apr 4 16:04:04 2010 From: dshbusiness在gmail.com (=?GB2312?B?tqHJ2bri?=) Date: Sun, 4 Apr 2010 16:04:04 +0800 Subject: =?GB2312?B?UmU6ILnY09pmcmFtZWJ1ZmZlcrXEvLi49s7KzOI=?= In-Reply-To: References: Message-ID: 如果是这种情况的话,显卡的硬件加速功能又如何体现呢? 在 2010年4月4日 下午12:30,Qiang Wang 写道: > 是的,最终还是由显卡来显示数据。 > 只是数据来自与用户区域。 > > 在 2010年4月3日 上午3:49,丁少衡 写道: > > > 我的最主要问题也就是,当我把显存map到用户空间,然后就可以向其中写入屏幕上某点的颜色。这种“写入”是不是一种抽象的写入?也就是说其实数据还要传给显卡进行硬件加速,然后再由显卡实际写到屏幕上?(有显卡,并且正确安装了显卡驱动) > > > > 在 2010年4月2日 下午5:38,Qiang Wang 写道: > >> > >> framebuffer有硬件加速的功能,但是要看具体的硬件设备。 > >> Linux现有的框架,已经提供硬件加速的支持。但是具体实现,还有看具体的硬件。 > >> > >> 在 2010年4月2日 下午5:36,Qiang Wang 写道: > >> > framebuffer的主要功能,就是控制display controller,从内存中抓取数据,并且按照相应的数据格式,发送给显示屏。 > >> > > >> > 当然,对文件系统会给出一个能够被应用层访问的接口。 > >> > > >> > > >> > > >> > 在 2010年4月1日 下午10:01,Lv yuanzhou 写道: > >> >> 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~ 不公布这些接口的话就无法使用其硬件加速了吧~ > >> >> 而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ > >> >> 不知道我理解得对不~ = 3= > >> >> > >> >> 在2010-04-01 21:56:35,"丁少衡" 写道: > >> >>>最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 > >> > >> >>> > >>>framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算?我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别是他定义了许多常量(例如#define > >> >>>PALETTE_INDEX > >> > >> >>> > >>>0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? > >> > >> >>> > >>>哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) > >> >>>_______________________________________________ > >> >>>Linux 内核开发中文邮件列表 > >> >>>Linux-kernel在zh-kernel.org > >> >>>http://zh-kernel.org/mailman/listinfo/linux-kernel > >> >>>Linux 内核开发中文社区: http://zh-kernel.org > >> >> _______________________________________________ > >> >> Linux 内核开发中文邮件列表 > >> >> Linux-kernel在zh-kernel.org > >> >> http://zh-kernel.org/mailman/listinfo/linux-kernel > >> >> Linux 内核开发中文社区: http://zh-kernel.org > >> > > >> _______________________________________________ > >> Linux 内核开发中文邮件列表 > >> Linux-kernel在zh-kernel.org > >> http://zh-kernel.org/mailman/listinfo/linux-kernel > >> Linux 内核开发中文社区: http://zh-kernel.org > > > From xiyou.wangcong在gmail.com Sun Apr 4 16:39:52 2010 From: xiyou.wangcong在gmail.com (=?utf-8?Q?Am=C3=A9rico?= Wang) Date: Sun, 4 Apr 2010 16:39:52 +0800 Subject: =?utf-8?B?Wk9ORV9ETUHog73lpJ/np7vljrs=?= =?utf-8?B?5LmIPw==?= In-Reply-To: References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> Message-ID: <20100404083952.GA5636@hack> On Sun, Apr 04, 2010 at 04:07:24PM +0800, tek-life wrote: >对啊,我的问题就是如果在x86_32里面把ZONE_DMA移去了,改区被ZONE_NORMAL“接管”,系统还会正常运行么? 不对,你根本就没理解这里的问题,ZONE_DMA32在某种程度上就是替换ZONE_DMA的。 对于你这个问题,为什么不自己找一下呢? % grep -wnr 'GFP_DMA\|__GFP_DMA' drivers -- Live like a child, think like the god. From jiang.adam在gmail.com Mon Apr 5 00:57:27 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Mon, 5 Apr 2010 01:57:27 +0900 Subject: =?GB2312?B?UmU6IFpPTkVfRE1BxNy5u9LGyKXDtD8=?= In-Reply-To: <20100404083952.GA5636@hack> References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> <20100404083952.GA5636@hack> Message-ID: ZONE_DMA 最初的设计是为了服务ISA等设备的,在x86结构上,ISA设备的bus address只有24bits,所以,它们只能访问前2^24=2^4*2^20=16M。但是,这个区域在代码中的实际意义确实有kmalloc等函数的GFP标志决定的,如果在使用GFP_DMA或者__GFP_DMA标志来申请内存,那么得到的将是在ZONE_DMA中划分出来的内存。现在,虽然ISA设备已经减少了,大部分PCI设备可以访问32bit线宽的内存区域,ZONE_DMA的意义已经不能说直接和ISA关联,而是仅仅于GFP_DMA关联了。这个区域非常重要,不能用ZONE_NORMAL来替代,因为DMA操作在缓冲区大小大于PAGE_SIZE的时候,需要地址连续的物理内存,基本上只有在这个区域可以到的这样的内存;当然,ZONE_NORMAL和ZONE_DMA的实际界线是由water mark决定的,这个值在/proc/sys/../lowmem_reserved_ratio调整的。此外,ZONE_DMA在嵌入式设备的特殊体系结构上可以定义为不同的大小,不限于16M。看各个体系结构的arch/.../setup.c文件中bootmem相关内容。 ZONE_DMA32是在64bit地址线宽的机器上使用的DMA区域,为什么叫作DMA32呢,因为目前PCI外部设备的bus address是32bit,DMA操作的时候从CPU的address到外设的bus address需要一个mask来转换,这个mask通常是将64bit地址映射/转换到32的设备的I/O memory上面前去,所以,有DMA32的说法。ia64体系结构上,DMA和DMA32是同样的区域。 /大头阿当 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From rurality.wq在gmail.com Mon Apr 5 09:35:11 2010 From: rurality.wq在gmail.com (Qiang Wang) Date: Mon, 5 Apr 2010 09:35:11 +0800 Subject: =?UTF-8?B?UmU6IOWFs+S6jmZyYW1lYnVmZmVy55qE5Yeg5Liq6Zeu6aKY?= In-Reply-To: References: Message-ID: 比如说struct fb_ops里面的fb_imageblit,一般我们是用软件来处理的,速度当然非常慢。 通过使用2D的图形芯片,可以加速bitblit图像的处理速度。 当然3D的话,对图像的运算有更高的要求,就更加需要硬件加速。 在 2010年4月4日 下午4:04,丁少衡 写道: > 如果是这种情况的话,显卡的硬件加速功能又如何体现呢? > > 在 2010年4月4日 下午12:30,Qiang Wang 写道: >> >> 是的,最终还是由显卡来显示数据。 >> 只是数据来自与用户区域。 >> >> 在 2010年4月3日 上午3:49,丁少衡 写道: >> > >> > 我的最主要问题也就是,当我把显存map到用户空间,然后就可以向其中写入屏幕上某点的颜色。这种“写入”是不是一种抽象的写入?也就是说其实数据还要传给显卡进行硬件加速,然后再由显卡实际写到屏幕上?(有显卡,并且正确安装了显卡驱动) >> > >> > 在 2010年4月2日 下午5:38,Qiang Wang 写道: >> >> >> >> framebuffer有硬件加速的功能,但是要看具体的硬件设备。 >> >> Linux现有的框架,已经提供硬件加速的支持。但是具体实现,还有看具体的硬件。 >> >> >> >> 在 2010年4月2日 下午5:36,Qiang Wang 写道: >> >> > framebuffer的主要功能,就是控制display controller,从内存中抓取数据,并且按照相应的数据格式,发送给显示屏。 >> >> > >> >> > 当然,对文件系统会给出一个能够被应用层访问的接口。 >> >> > >> >> > >> >> > >> >> > 在 2010年4月1日 下午10:01,Lv yuanzhou 写道: >> >> >> 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~ >> >> >>  不公布这些接口的话就无法使用其硬件加速了吧~ >> >> >>  而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ >> >> >> 不知道我理解得对不~ = 3= >> >> >> >> >> >> 在2010-04-01 21:56:35,"丁少衡" 写道: >> >> >>>最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 >> >> >> >> >>> >> >> >>> >>> >>>framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算?我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别是他定义了许多常量(例如#define >> >> >>>PALETTE_INDEX >> >> >> >> >>> >> >> >>> >>> >>>0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? >> >> >> >> >>> >> >> >>> >>> >>>哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) >> >> >>>_______________________________________________ >> >> >>>Linux 内核开发中文邮件列表 >> >> >>>Linux-kernel在zh-kernel.org >> >> >>>http://zh-kernel.org/mailman/listinfo/linux-kernel >> >> >>>Linux 内核开发中文社区: http://zh-kernel.org >> >> >> _______________________________________________ >> >> >> Linux 内核开发中文邮件列表 >> >> >> Linux-kernel在zh-kernel.org >> >> >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> >> >> Linux 内核开发中文社区: http://zh-kernel.org >> >> > >> >> _______________________________________________ >> >> Linux 内核开发中文邮件列表 >> >> Linux-kernel在zh-kernel.org >> >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> >> Linux 内核开发中文社区: http://zh-kernel.org >> > > > From dshbusiness在gmail.com Tue Apr 6 11:21:38 2010 From: dshbusiness在gmail.com (=?GB2312?B?tqHJ2bri?=) Date: Tue, 6 Apr 2010 11:21:38 +0800 Subject: =?GB2312?B?UmU6ILnY09pmcmFtZWJ1ZmZlcrXEvLi49s7KzOI=?= In-Reply-To: References: Message-ID: 嗯,大致有些明白了,谢谢你。 在 2010年4月5日 上午9:35,Qiang Wang 写道: > 比如说struct fb_ops里面的fb_imageblit,一般我们是用软件来处理的,速度当然非常慢。 > 通过使用2D的图形芯片,可以加速bitblit图像的处理速度。 > 当然3D的话,对图像的运算有更高的要求,就更加需要硬件加速。 > > > > > 在 2010年4月4日 下午4:04,丁少衡 写道: > > 如果是这种情况的话,显卡的硬件加速功能又如何体现呢? > > > > 在 2010年4月4日 下午12:30,Qiang Wang 写道: > >> > >> 是的,最终还是由显卡来显示数据。 > >> 只是数据来自与用户区域。 > >> > >> 在 2010年4月3日 上午3:49,丁少衡 写道: > >> > > >> > > 我的最主要问题也就是,当我把显存map到用户空间,然后就可以向其中写入屏幕上某点的颜色。这种“写入”是不是一种抽象的写入?也就是说其实数据还要传给显卡进行硬件加速,然后再由显卡实际写到屏幕上?(有显卡,并且正确安装了显卡驱动) > >> > > >> > 在 2010年4月2日 下午5:38,Qiang Wang 写道: > >> >> > >> >> framebuffer有硬件加速的功能,但是要看具体的硬件设备。 > >> >> Linux现有的框架,已经提供硬件加速的支持。但是具体实现,还有看具体的硬件。 > >> >> > >> >> 在 2010年4月2日 下午5:36,Qiang Wang 写道: > >> >> > framebuffer的主要功能,就是控制display > controller,从内存中抓取数据,并且按照相应的数据格式,发送给显示屏。 > >> >> > > >> >> > 当然,对文件系统会给出一个能够被应用层访问的接口。 > >> >> > > >> >> > > >> >> > > >> >> > 在 2010年4月1日 下午10:01,Lv yuanzhou 写道: > >> >> >> 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~ > >> >> >> 不公布这些接口的话就无法使用其硬件加速了吧~ > >> >> >> 而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ > >> >> >> 不知道我理解得对不~ = 3= > >> >> >> > >> >> >> 在2010-04-01 21:56:35,"丁少衡" 写道: > >> >> >>>最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 > >> >> > >> >> >>> > >> >> >>> >>> > >>>framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算?我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别是他定义了许多常量(例如#define > >> >> >>>PALETTE_INDEX > >> >> > >> >> >>> > >> >> >>> >>> > >>>0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? > >> >> > >> >> >>> > >> >> >>> >>> > >>>哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) > >> >> >>>_______________________________________________ > >> >> >>>Linux 内核开发中文邮件列表 > >> >> >>>Linux-kernel在zh-kernel.org > >> >> >>>http://zh-kernel.org/mailman/listinfo/linux-kernel > >> >> >>>Linux 内核开发中文社区: http://zh-kernel.org > >> >> >> _______________________________________________ > >> >> >> Linux 内核开发中文邮件列表 > >> >> >> Linux-kernel在zh-kernel.org > >> >> >> http://zh-kernel.org/mailman/listinfo/linux-kernel > >> >> >> Linux 内核开发中文社区: http://zh-kernel.org > >> >> > > >> >> _______________________________________________ > >> >> Linux 内核开发中文邮件列表 > >> >> Linux-kernel在zh-kernel.org > >> >> http://zh-kernel.org/mailman/listinfo/linux-kernel > >> >> Linux 内核开发中文社区: http://zh-kernel.org > >> > > > > > > From liweijun84在gmail.com Tue Apr 6 13:29:58 2010 From: liweijun84在gmail.com (liweijun84) Date: Tue, 6 Apr 2010 13:29:58 +0800 Subject: =?gb2312?B?tfe2yMb3?= Message-ID: <201004061329546402444@gmail.com> 请问大家谁知道对于写频繁的Linux来说应该选哪个调度器,如何修改系统的调度器? 2010-04-06 liweijun84 From gongfan193在gmail.com Tue Apr 6 14:10:03 2010 From: gongfan193在gmail.com (Drunkard Zhang) Date: Tue, 6 Apr 2010 14:10:03 +0800 Subject: =?UTF-8?B?UmU6IOiwg+W6puWZqA==?= In-Reply-To: <201004061329546402444@gmail.com> References: <201004061329546402444@gmail.com> Message-ID: 在 2010年4月6日 下午1:29,liweijun84 写道: > 请问大家谁知道对于写频繁的Linux来说应该选哪个调度器,如何修改系统的调度器? > > 你是说IO调度? 1. 默认值可以这样改: make menuconfig Enable the block layer => Enable the block layer => IO Schedulers => Default I/O scheduler (Deadline) 2. 启动时的cmdline参数: elevator= Format: {"anticipatory" | "cfq" | "deadline" | "noop"} 文档: Documentation/kernel-parameters.txt Documentation/block/switching-sched.txt Documentation/block/* > 2010-04-06 > > > > liweijun84 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org -- 张绍文 gongfan193在gmail.com zhangsw在gwbnsh.net.cn 18601633785 From liweijun84在gmail.com Tue Apr 6 14:11:13 2010 From: liweijun84在gmail.com (liweijun84) Date: Tue, 6 Apr 2010 14:11:13 +0800 Subject: =?gb2312?B?UmU6IFJlOiC197bIxvc=?= References: <201004061329546402444@gmail.com>, Message-ID: <201004061411100313201@gmail.com> 是IO调度,thanks。 2010-04-06 liweijun84 发件人: Drunkard Zhang 发送时间: 2010-04-06 14:10:05 收件人: liweijun84 抄送: zh-kernel 主题: Re: 调度器 在 2010年4月6日 下午1:29,liweijun84 写道: 请问大家谁知道对于写频繁的Linux来说应该选哪个调度器,如何修改系统的调度器? 你是说IO调度? 1. 默认值可以这样改: make menuconfig Enable the block layer => Enable the block layer => IO Schedulers => Default I/O scheduler (Deadline) 2. 启动时的cmdline参数: elevator= Format: {"anticipatory" | "cfq" | "deadline" | "noop"} 文档: Documentation/kernel-parameters.txt Documentation/block/switching-sched.txt Documentation/block/* 2010-04-06 liweijun84 _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org -- 张绍文 gongfan193在gmail.com zhangsw在gwbnsh.net.cn 18601633785 From xiyou.wangcong在gmail.com Tue Apr 6 14:35:26 2010 From: xiyou.wangcong在gmail.com (=?UTF-8?Q?Am=C3=A9rico_Wang?=) Date: Tue, 6 Apr 2010 14:35:26 +0800 Subject: =?UTF-8?B?UmU6IOiwg+W6puWZqA==?= In-Reply-To: References: <201004061329546402444@gmail.com> Message-ID: 2010/4/6 Drunkard Zhang : > 在 2010年4月6日 下午1:29,liweijun84 写道: > >> 请问大家谁知道对于写频繁的Linux来说应该选哪个调度器,如何修改系统的调度器? >> >> 你是说IO调度? > 1. 默认值可以这样改: > make menuconfig > Enable the block layer => Enable the block layer => IO Schedulers => Default > I/O scheduler (Deadline) > 2. 启动时的cmdline参数: > elevator= > Format: {"anticipatory" | "cfq" | "deadline" | "noop"} > 3. /sys/block/XXX/queue/scheduler From xiyou.wangcong在gmail.com Tue Apr 6 14:37:24 2010 From: xiyou.wangcong在gmail.com (=?UTF-8?Q?Am=C3=A9rico_Wang?=) Date: Tue, 6 Apr 2010 14:37:24 +0800 Subject: =?UTF-8?B?UmU6IOiwg+W6puWZqA==?= In-Reply-To: <201004061329546402444@gmail.com> References: <201004061329546402444@gmail.com> Message-ID: 2010/4/6 liweijun84 : > 请问大家谁知道对于写频繁的Linux来说应该选哪个调度器,如何修改系统的调度器? > “写频繁”并没有很好的描述你的问题,你最好自己分别测一下各个调度器的性能。 可以看看这篇文章: http://www.redhat.com/magazine/008jun05/features/schedulers/ From coly.li在suse.de Wed Apr 7 01:29:49 2010 From: coly.li在suse.de (Coly Li) Date: Wed, 07 Apr 2010 01:29:49 +0800 Subject: =?UTF-8?B?77+9?= In-Reply-To: <201004061329546402444@gmail.com> References: <201004061329546402444@gmail.com> Message-ID: <4BBB6F8D.8060806@suse.de> On 04/06/2010 01:29 PM, liweijun84 Wrote: > 请问大家谁知道对于写频繁的Linux来说应该选哪个调度器,如何修改系统的调度器? > 很难讲某一种IO调度器更适用于“写频繁”的情况。我建议你先描述一下“写频繁”的具体情况,还有你的存储的stack,分析一下从内存到 存储介质的这条路上的关键路径或者性能瓶颈在哪里。然后再看看是否某种调度器有可能适用于你。 -- Coly Li SuSE Labs From cyher.net在gmail.com Wed Apr 7 10:28:57 2010 From: cyher.net在gmail.com (cyher) Date: Wed, 7 Apr 2010 10:28:57 +0800 Subject: =?GB2312?B?zsrSu8/CxNq6y7Dmsb66xbXEzsrM4qOodW5hbWUgLXKjqQ==?= Message-ID: hi all 都知道uname -r是现实当前内核版本号,但是这个版本号又是怎么写入的呢?在哪里写入的? 比如现在的版本号总是2.6.30-gen-xx-pae-xxx一堆xxx这些都是在哪里写的? 注:我看了不是在kernel的主Makefile里面。有知道的兄弟麻烦告知一声 谢谢 best regards -- http://cyher.net From albcamus在gmail.com Wed Apr 7 10:32:43 2010 From: albcamus在gmail.com (Jike Song) Date: Wed, 7 Apr 2010 10:32:43 +0800 Subject: =?UTF-8?B?UmU6IOmXruS4gOS4i+WGheaguOeJiOacrOWPt+eahOmXrumimO+8iHVuYW1lIC1y77yJ?= In-Reply-To: References: Message-ID: 2010/4/7 cyher : > hi all >      都知道uname -r是现实当前内核版本号,但是这个版本号又是怎么写入的呢?在哪里写入的? > 比如现在的版本号总是2.6.30-gen-xx-pae-xxx一堆xxx这些都是在哪里写的? > 注:我看了不是在kernel的主Makefile里面。有知道的兄弟麻烦告知一声 谢谢 > man 2 uname. 用strace跟一下uname命令就能看到使用了这个syscall。 -- Thanks, Jike From cyher.net在gmail.com Wed Apr 7 10:46:24 2010 From: cyher.net在gmail.com (cyher) Date: Wed, 7 Apr 2010 10:46:24 +0800 Subject: =?GB2312?B?UmU6IM7K0rvPwsTausuw5rG+usW1xM7KzOKjqHVuYW1lIC1yo6k=?= In-Reply-To: References: Message-ID: 在 2010年4月7日 上午10:32,Jike Song 写道: > 2010/4/7 cyher : > > hi all > > 都知道uname -r是现实当前内核版本号,但是这个版本号又是怎么写入的呢?在哪里写入的? > > 比如现在的版本号总是2.6.30-gen-xx-pae-xxx一堆xxx这些都是在哪里写的? > > 注:我看了不是在kernel的主Makefile里面。有知道的兄弟麻烦告知一声 谢谢 > > > > man 2 uname. 用strace跟一下uname命令就能看到使用了这个syscall。 > > -- > Thanks, > Jike > 恩 谢谢 回复,我的意思是:我想知道内核是怎么生成这样的一串字符,并不是操作系统怎么读出的。 -- http://cyher.net From albcamus在gmail.com Wed Apr 7 11:01:11 2010 From: albcamus在gmail.com (Jike Song) Date: Wed, 7 Apr 2010 11:01:11 +0800 Subject: =?UTF-8?B?UmU6IOmXruS4gOS4i+WGheaguOeJiOacrOWPt+eahOmXrumimO+8iHVuYW1lIC1y77yJ?= In-Reply-To: References: Message-ID: 2010/4/7 cyher : > > > 我的意思是:我想知道内核是怎么生成这样的一串字符,并不是操作系统怎么读出的。 > make menuconfig或其他方式配置时, 会把这个信息写在top Makefile里。然后make内核时,写到一个数据结构utsname中了,再写到内核映像文件中。 -- Thanks, Jike From xiyou.wangcong在gmail.com Wed Apr 7 11:06:02 2010 From: xiyou.wangcong在gmail.com (Amerigo Wang) Date: Wed, 7 Apr 2010 11:06:02 +0800 Subject: =?utf-8?B?6Zeu5LiA5LiL5YaF5qC454mI5pys?= =?utf-8?B?5Y+355qE6Zeu6aKY77yIdW5hbWUgLXLvvIk=?= In-Reply-To: References: Message-ID: <20100407030550.GA3830@cr0.nay.redhat.com> On Wed, Apr 07, 2010 at 10:46:24AM +0800, cyher wrote: >在 2010年4月7日 上午10:32,Jike Song 写道: > >> 2010/4/7 cyher : >> > hi all >> > 都知道uname -r是现实当前内核版本号,但是这个版本号又是怎么写入的呢?在哪里写入的? >> > 比如现在的版本号总是2.6.30-gen-xx-pae-xxx一堆xxx这些都是在哪里写的? >> > 注:我看了不是在kernel的主Makefile里面。有知道的兄弟麻烦告知一声 谢谢 >> > >> >> man 2 uname. 用strace跟一下uname命令就能看到使用了这个syscall。 >> >> -- >> Thanks, >> Jike >> > > >恩 谢谢 回复,我的意思是:我想知道内核是怎么生成这样的一串字符,并不是操作系统怎么读出的。 是这样的,情况比你想象的有些复杂。 首先,对于你说的uname -r来说,其实就是对应UTS_RELEASE,即utsname.release。这个是怎么来的呢, 是来自makefile的前4行,你可以head -4 Makefile看一下。然后在Makefile的后面用KERNELVERSION 和KERNELRELEASE来生成最后的字符串,放到include/generated/utsrelease.h中,作为一个宏, 宏的名字叫UTS_RELEASE。最后你再看init/version.c就可以了,里面有UTS_RELEASE。 其次,对于uname -a,它除了包含上面的UTS_RELEASE之外,还包含UTS_MACHINE,UTS_VERSION等, 这个可以在init/version.c中看到,不过,这个生成的文件是在include/generated/compile.h, 是由init/Makefile调用script/mkcompile_h来生成的。 From dean_go在eledsn.com Wed Apr 7 11:05:59 2010 From: dean_go在eledsn.com (=?utf-8?B?5byg56aP5paH?=) Date: Wed, 7 Apr 2010 11:05:59 +0800 Subject: =?utf-8?B?UmU6IOmXruS4gOS4i+WGheaguOeJiOacrOWPtw==?= =?utf-8?B?55qE6Zeu6aKY77yIdW5hbWUgLXLvvIk=?= Message-ID: 我想应该是内核代码里的宏定义吧。 ------------------ Original ------------------ From: "cyher"; Date: Wed, Apr 7, 2010 10:46 AM To: "Jike Song"; Cc: "linux-kernel"; Subject: Re: 问一下内核版本号的问题(uname -r) 在 2010年4月7日 上午10:32,Jike Song 写道: > 2010/4/7 cyher : > > hi all > > 都知道uname -r是现实当前内核版本号,但是这个版本号又是怎么写入的呢?在哪里写入的? > > 比如现在的版本号总是2.6.30-gen-xx-pae-xxx一堆xxx这些都是在哪里写的? > > 注:我看了不是在kernel的主Makefile里面。有知道的兄弟麻烦告知一声 谢谢 > > > > man 2 uname. 用strace跟一下uname命令就能看到使用了这个syscall。 > > -- > Thanks, > Jike > 恩 谢谢 回复,我的意思是:我想知道内核是怎么生成这样的一串字符,并不是操作系统怎么读出的。 -- http://cyher.net _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From xiao.zhang在windriver.com Wed Apr 7 11:12:09 2010 From: xiao.zhang在windriver.com (ZhangXiao) Date: Wed, 07 Apr 2010 11:12:09 +0800 Subject: =?UTF-8?B?6Zeu5LiA5LiL5YaF5qC454mI5pys5Y+355qE6Zeu6aKY77yIdW4=?= =?UTF-8?B?YW1lIC1y77yJ?= In-Reply-To: References: Message-ID: <4BBBF809.6010904@windriver.com> cyher wrote: > hi all > 都知道uname -r是现实当前内核版本号,但是这个版本号又是怎么写入的呢?在哪里写入的? > 比如现在的版本号总是2.6.30-gen-xx-pae-xxx一堆xxx这些都是在哪里写的? > 注:我看了不是在kernel的主Makefile里面。有知道的兄弟麻烦告知一声 谢谢 > > best regards > > 不是在Makefile里面么?在Makefile里你查下kernelrelease这个字符串看看,你 说的应该就是这个。 From cyher.net在gmail.com Wed Apr 7 11:16:53 2010 From: cyher.net在gmail.com (cyher) Date: Wed, 7 Apr 2010 11:16:53 +0800 Subject: =?GB2312?B?UmU6IM7K0rvPwsTausuw5rG+usW1xM7KzOKjqHVuYW1lIC1yo6k=?= In-Reply-To: <20100407030550.GA3830@cr0.nay.redhat.com> References: <20100407030550.GA3830@cr0.nay.redhat.com> Message-ID: 在 2010年4月7日 上午11:06,Amerigo Wang 写道: > On Wed, Apr 07, 2010 at 10:46:24AM +0800, cyher wrote: > >在 2010年4月7日 上午10:32,Jike Song 写道: > > > >> 2010/4/7 cyher : > >> > hi all > >> > 都知道uname -r是现实当前内核版本号,但是这个版本号又是怎么写入的呢?在哪里写入的? > >> > 比如现在的版本号总是2.6.30-gen-xx-pae-xxx一堆xxx这些都是在哪里写的? > >> > 注:我看了不是在kernel的主Makefile里面。有知道的兄弟麻烦告知一声 谢谢 > >> > > >> > >> man 2 uname. 用strace跟一下uname命令就能看到使用了这个syscall。 > >> > >> -- > >> Thanks, > >> Jike > >> > > > > > >恩 谢谢 回复,我的意思是:我想知道内核是怎么生成这样的一串字符,并不是操作系统怎么读出的。 > > 是这样的,情况比你想象的有些复杂。 > > 首先,对于你说的uname -r来说,其实就是对应UTS_RELEASE,即utsname.release。这个是怎么来的呢, > 是来自makefile的前4行,你可以head -4 Makefile看一下。然后在Makefile的后面用KERNELVERSION > 和KERNELRELEASE来生成最后的字符串,放到include/generated/utsrelease.h中,作为一个宏, > 宏的名字叫UTS_RELEASE。最后你再看init/version.c就可以了,里面有UTS_RELEASE。 > > 其次,对于uname -a,它除了包含上面的UTS_RELEASE之外,还包含UTS_MACHINE,UTS_VERSION等, > 这个可以在init/version.c中看到,不过,这个生成的文件是在include/generated/compile.h, > 是由init/Makefile调用script/mkcompile_h来生成的。 > > 谢谢大家 ,这个是正解,不仅仅是makefile里面的前4行 -- http://cyher.net From frank.hu在greenpacket.com Wed Apr 7 12:03:18 2010 From: frank.hu在greenpacket.com (frank.hu在greenpacket.com) Date: Wed, 7 Apr 2010 12:03:18 +0800 Subject: =?utf-8?B?Wk9ORV9ETUHog73lpJ/np7vljrs=?= =?utf-8?B?5LmIPw==?= In-Reply-To: References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> <20100404083952.GA5636@hack> Message-ID: <20100407040318.GA6651@gentoo> On Mon, Apr 05, 2010 at 12:57:27AM +0800, Adam Jiang wrote: > ZONE_DMA 最初的设计是为了服务ISA等设备的,在x86结构上,ISA设备的bus > address只有24bits,所以,它们只能访问前2^24=2^4*2^20=16M。但是,这个区域在代码中的实际意义确实有kmalloc等函数的GFP标志决定的,如果在使用GFP_DMA或者__GFP_DMA标志来申请内存,那么得到的将是在ZONE_DMA中划分出来的内存。现在,虽然ISA设备已经减少了,大部分PCI设备可以访问32bit线宽的内存区域,ZONE_DMA的意义已经不能说直接和ISA关联,而是仅仅于GFP_DMA关联了。这个区域非常重要,不能用ZONE_NORMAL来替代,因为DMA操作在缓冲区大小大于PAGE_SIZE的时候,需要地址连续的物理内存,基本上只有在这个区域可以到的这样的内存;当然,ZONE_NORMAL和ZONE_DMA的实际界线是由water > mark决定的,这个值在/proc/sys/../lowmem_reserved_ratio调整的。此外,ZONE_DMA在嵌入式设备的特殊体系结构上可以定义为不同的大小,不限于16M。看各个体系结构的arch/.../setup.c文件中bootmem相关内容。 > > ZONE_DMA32是在64bit地址线宽的机器上使用的DMA区域,为什么叫作DMA32呢,因为目前PCI外部设备的bus > address是32bit,DMA操作的时候从CPU的address到外设的bus > address需要一个mask来转换,这个mask通常是将64bit地址映射/转换到32的设备的I/O > memory上面前去,所以,有DMA32的说法。ia64体系结构上,DMA和DMA32是同样的区域。 > 这里的 I/O memory 应该指的是从 PCI 设备看到的主存地址吧? 另外,我来总结一下王同学和江同学的发言,不对之处请指正。 ZONE_DMA 区存在的原因及其特点: o 有些外设(PCI or ISA)需要通过DMA控制器对主存 进行读写,而DMA控制器是直接访问主存,并不经过 CPU 作地址转换,因此DMA控制器可访问的主存范围 由外 设的地址总线位宽决定,且必须是连续的物理 地址。 o ISA 地址线宽为 24 bits, ZONE_DMA 区的存在是 为了满足 ISA 设备的 DMA 需求(亦兼 PCI 设备), 因此其大小为 16M, 且位于主存的起始处。 o ZONE_DMA32 这个名字是为了区别于 ZONE_DMA(按照 ZONE_DMA32 的命名法,ZONE_DMA 可称之为 ZONE_DMA24). 之所以是 32 而不是别的数字,是因为 ZONE_DMA32 是为 PCI 设备所设计的,而 PCI 设备的地址线宽 为 32 bits. o x86 上为什么 ZONE_DMA32 是个摆设?因为 x86 的 地址线宽为 32bits, 总共才能寻址 2^32 字节,不 能将所有的主存都划为 DMA 区,总得限定一个范围, 正好有一个 ZONE_DMA(24). o 然而 32bits 的 PCI 地址线宽这么好的资源不能浪 费吧,有条件的时候最好让 PCI 设备可以寻址到 4G. x86_64 和 ia64 都是有这个条件的(x86_64 目 前地址线宽48bits, ia64 地址线宽 64bits?),所以 可以划分一个 ZONE_DMA32 区供 PCI 设备作 DMA. o ZONE_DMA 和 ZONE_DMA32 只是限定其上限分别为 16M 和 4G, 实际划分时并非一定要这么大。 From d00fy在163.com Wed Apr 7 13:51:26 2010 From: d00fy在163.com (d00fy) Date: Wed, 7 Apr 2010 13:51:26 +0800 (CST) Subject: =?gbk?B?v8nS1LTT0ru49rrLyc/Ipbu90NHB7dK7uPa6y8nPtcRrc29mdHJpcWTDtKO/?= Message-ID: <1b001c7a.69e5.127d6d2b9a4.Coremail.d00fy@163.com> 目前想做如下的一个设计: 在smp机器上,一个核使用NAPI的方式收取报文,然后模拟软中断的方式分发到其他核上,现在的问题是,在没有数据的情况下,其他核上的ksoftirqd是睡眠的,接受到报文后不能及时处理,最坏的情况的是要该核接受到硬中断后才能处理,这样延迟就很厉害了,所以我提出了这个设想: 在分发的核上去唤醒处理核上的ksoftirqd,形式如下: wakeup_softirqd_cpu(int cpu) { struct task_struct *tsk = per_cpu(ksoftirqd); if(tsk && tsk->state != TASK_RUNNING) wake_up_process(tsk); } 请问这种设计可行么? 我是新手,以前没有动过内核,对于锁还没有实际的使用经验,怕这里面有些陷阱,兄弟们给讲讲吧,先感谢! From xiaosuo在gmail.com Wed Apr 7 14:17:36 2010 From: xiaosuo在gmail.com (Changli Gao) Date: Wed, 7 Apr 2010 14:17:36 +0800 Subject: =?GB2312?B?UmU6IL/J0tS009K7uPa6y8nPyKW7vdDRwe3Su7j2usvJz7XE?= =?GB2312?B?a3NvZnRyaXFkw7Sjvw==?= In-Reply-To: <1b001c7a.69e5.127d6d2b9a4.Coremail.d00fy@163.com> References: <1b001c7a.69e5.127d6d2b9a4.Coremail.d00fy@163.com> Message-ID: 2010/4/7 d00fy : > 目前想做如下的一个设计: > 在smp机器上,一个核使用NAPI的方式收取报文,然后模拟软中断的方式分发到其他核上,现在的问题是,在没有数据的情况下,其他核上的ksoftirqd是睡眠的,接受到报文后不能及时处理,最坏的情况的是要该核接受到硬中断后才能处理,这样延迟就很厉害了。 RPS: http://lwn.net/Articles/362339/ ,好消息是已经merge进linux-next了。 -- Regards, Changli Gao(xiaosuo在gmail.com) From orphen.leiliu在gmail.com Wed Apr 7 14:32:57 2010 From: orphen.leiliu在gmail.com (Liu Lei) Date: Wed, 7 Apr 2010 14:32:57 +0800 Subject: =?GB2312?Q?Re:_=BF=C9=D2=D4=B4=D3=D2=BB=B8=F6=BA=CB=C9=CF=C8=A5?= =?GB2312?Q?=BB=BD=D0=D1=C1=ED=D2=BB=B8=F6=BA=CB=C9=CF=B5=C4ksoft?= =?GB2312?Q?riqd=C3=B4=A3=BF?= In-Reply-To: References: <1b001c7a.69e5.127d6d2b9a4.Coremail.d00fy@163.com> Message-ID: 您好: 在 2010-4-7,下午2:17, Changli Gao 写道: > 2010/4/7 d00fy : >> 目前想做如下的一个设计: >> 在smp机器上,一个核使用NAPI的方式收取报文,然后模拟软中断的方式分发到其他核上,现在的问题是,在没有数据的情况下,其他核上的ksoftirqd是睡眠的,接受到报文后不能及时处理,最坏的情况的是要该核接受到硬中断后才能处理,这样延迟就很厉害了。 > > RPS: http://lwn.net/Articles/362339/ ,好消息是已经merge进linux-next了。 > > > -- > Regards, > Changli Gao(xiaosuo在gmail.com) > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org 曾经也做过这方面的考虑。但是觉得,如果还是普通的SMP模式下,意义不是很大(没有验证过)。 如果采用类似多核的方式就很好了。 至少要使另一个或几个CPU“专心”做处理,而不进行其他的任务调度。 但是目前的Intel CPU核数还是不够多的。太多的成本就上去了。 致 礼! ──────────────────────────── Liu Lei From d00fy在163.com Wed Apr 7 14:41:32 2010 From: d00fy在163.com (d00fy) Date: Wed, 7 Apr 2010 14:41:32 +0800 (CST) Subject: =?gbk?B?UmU6UmU6IL/J0tS009K7uPa6y8nPyKW7vdDR?= =?gbk?B?we3Su7j2usvJz7XEa3NvZnRyaXFkw7Sjvw==?= In-Reply-To: References: <1b001c7a.69e5.127d6d2b9a4.Coremail.d00fy@163.com> Message-ID: <161b278.4eee.127d7009566.Coremail.d00fy@163.com> 主要是想减少硬中断造成上下文切换的开销,类似于NAPI的方式,不过NAPI方式在smp上不能均匀分发,所以才有这个设想。 在2010-04-07 14:32:57,"Liu Lei" 写道: >您好: > >在 2010-4-7,下午2:17, Changli Gao 写道: > >> 2010/4/7 d00fy : >>> 目前想做如下的一个设计: >>> 在smp机器上,一个核使用NAPI的方式收取报文,然后模拟软中断的方式分发到其他核上,现在的问题是,在没有数据的情况下,其他核上的ksoftirqd是睡眠的,接受到报文后不能及时处理,最坏的情况的是要该核接受到硬中断后才能处理,这样延迟就很厉害了。 >> >> RPS: http://lwn.net/Articles/362339/ ,好消息是已经merge进linux-next了。 >> >> >> -- >> Regards, >> Changli Gao(xiaosuo在gmail.com) >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > > >曾经也做过这方面的考虑。但是觉得,如果还是普通的SMP模式下,意义不是很大(没有验证过)。 >如果采用类似多核的方式就很好了。 >至少要使另一个或几个CPU“专心”做处理,而不进行其他的任务调度。 > >但是目前的Intel CPU核数还是不够多的。太多的成本就上去了。 > > 致 >礼! > >──────────────────────────── > Liu Lei > > > > > From jiang.adam在gmail.com Wed Apr 7 14:56:42 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Wed, 7 Apr 2010 15:56:42 +0900 Subject: =?GB2312?B?UmU6IFJlOiC/ydLUtNPSu7j2usvJz8ilu73Q0cHt0ru49rrL?= =?GB2312?B?yc+1xGtzb2Z0cmlxZMO0o78=?= In-Reply-To: <161b278.4eee.127d7009566.Coremail.d00fy@163.com> References: <1b001c7a.69e5.127d6d2b9a4.Coremail.d00fy@163.com> <161b278.4eee.127d7009566.Coremail.d00fy@163.com> Message-ID: 这里又一个thread的讨论,不知道又没有帮助 http://lkml.indiana.edu/hypermail/linux/kernel/0910.2/01974.html /大头阿当 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From orphen.leiliu在gmail.com Wed Apr 7 15:00:54 2010 From: orphen.leiliu在gmail.com (Liu Lei) Date: Wed, 7 Apr 2010 15:00:54 +0800 Subject: =?GB2312?Q?Re:_=BF=C9=D2=D4=B4=D3=D2=BB=B8=F6=BA=CB=C9=CF=C8=A5?= =?GB2312?Q?=BB=BD=D0=D1=C1=ED=D2=BB=B8=F6=BA=CB=C9=CF=B5=C4ksoft?= =?GB2312?Q?riqd=C3=B4=A3=BF?= In-Reply-To: References: <1b001c7a.69e5.127d6d2b9a4.Coremail.d00fy@163.com> Message-ID: 您好: 在 2010-4-7,下午2:53, kaih luo 写道: > 在 2010年4月7日 下午2:32,Liu Lei 写道: >> 您好: >> >> 在 2010-4-7,下午2:17, Changli Gao 写道: >> >>> 2010/4/7 d00fy : >>>> 目前想做如下的一个设计: >>>> 在smp机器上,一个核使用NAPI的方式收取报文,然后模拟软中断的方式分发到其他核上,现在的问题是,在没有数据的情况下,其他核上的ksoftirqd是睡眠的,接受到报文后不能及时处理,最坏的情况的是要该核接受到硬中断后才能处理,这样延迟就很厉害了。 >>> >>> RPS: http://lwn.net/Articles/362339/ ,好消息是已经merge进linux-next了。 >>> >>> >>> -- >>> Regards, >>> Changli Gao(xiaosuo在gmail.com) >>> _______________________________________________ >>> Linux 内核开发中文邮件列表 >>> Linux-kernel在zh-kernel.org >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>> Linux 内核开发中文社区: http://zh-kernel.org >> >> >> 曾经也做过这方面的考虑。但是觉得,如果还是普通的SMP模式下,意义不是很大(没有验证过)。 >> 如果采用类似多核的方式就很好了。 >> 至少要使另一个或几个CPU"专心"做处理,而不进行其他的任务调度。 >> >> 但是目前的Intel CPU核数还是不够多的。太多的成本就上去了。 > > 视产品而定吧,很多网络产品使用这种技术了,可以采用非intel的啊,例如多mips核。主要是一些路由器、UTM产品在使用 > >> 致 >> 礼! >> >> ──────────────────────────── >> Liu Lei >> >> >> >> >> >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org 当然,如果使用的是RMI或cavium的多核CPU的话,这种方式就是标准处理流程了。如果不这么做的话就等于是浪费了。 致 礼! ──────────────────────────── Liu Lei From wen_kernel在163.com Wed Apr 7 15:20:24 2010 From: wen_kernel在163.com (Wenxy) Date: Wed, 7 Apr 2010 15:20:24 +0800 Subject: =?gb2312?B?0sbWsnlhZmZzMiC1vTIuNi4xOMnPo6xta3lhZmZzsrvE3NC0yOt5YWZmczIgaW1hZ2Uu?= Message-ID: <201004071520237961718@163.com> Hi, linux-kernel google了一些资料,mkyaffs工具不能把yaffs2 image写入的原因是kernel 2.6.18及更新版本的MTD驱动不支持ioctl()的些参数。 谁有这方面的经验? Best regards. Wenxy. 2010-04-07, 15:18:18 Email: wen_kernel在163.com Blog: http://blog.csdn.net/wenxy1 From winricky在gmail.com Thu Apr 8 00:27:05 2010 From: winricky在gmail.com (Tong Xuan) Date: Thu, 8 Apr 2010 00:27:05 +0800 Subject: =?UTF-8?B?Ym9vdGxvYWRlcuaAjuS5iOS4umluaXRyYW1mcy5jcGlv5re75Yqg5ZCv5Yqo5Y+C5pWw?= Message-ID: 如果是和内核编译在一起,那么就不需要加启动参数了 但是这样每次修改initramfs后就要重新编译内核,这样很麻烦 有没有像原来initrd一样的启动参数,可以单独在flash中存放initramfs镜像,单独更新 使用initrd=xx 总提示找不到,bootloader为u-boot From hzpeterchen在gmail.com Thu Apr 8 09:45:39 2010 From: hzpeterchen在gmail.com (Peter Chen) Date: Thu, 08 Apr 2010 09:45:39 +0800 Subject: =?UTF-8?B?5YWz5LqOZnJhbWVidWZmZXLnmoTlh6DkuKrpl67popg=?= In-Reply-To: References: Message-ID: <4BBD3543.9030607@gmail.com> Qiang Wang wrote: > framebuffer有硬件加速的功能,但是要看具体的硬件设备。 > Linux现有的框架,已经提供硬件加速的支持。但是具体实现,还有看具体的硬件。 > > 在 2010年4月2日 下午5:36,Qiang Wang 写道: >> framebuffer的主要功能,就是控制display controller,从内存中抓取数据,并且按照相应的数据格式,发送给显示屏。 >> >> 当然,对文件系统会给出一个能够被应用层访问的接口。 >> >> >> >> 在 2010年4月1日 下午10:01,Lv yuanzhou 写道: >>> 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~ 不公布这些接口的话就无法使用其硬件加速了吧~ 而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ >>> 不知道我理解得对不~ = 3= >>> >>> 在2010-04-01 21:56:35,"丁少衡" 写道: >>>> 最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 >>>> framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算? framebuffer的内存就是显存, 数据是直接写到显存上,然后通过DMA给SoC LCD模 块, 最后通过你之前设置的显示格式,数据通过LCD的数据线传到LCD panel的内部, 然后显示在屏幕上. 我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别 是他定义了许多常量(例如#define >>>> PALETTE_INDEX >>>> 0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? >>>> 哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) >>>> _______________________________________________ >>>> Linux 内核开发中文邮件列表 >>>> Linux-kernel在zh-kernel.org >>>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>>> Linux 内核开发中文社区: http://zh-kernel.org >>> _______________________________________________ >>> Linux 内核开发中文邮件列表 >>> Linux-kernel在zh-kernel.org >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>> Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org -- Best regards, Peter Chen From hzpeterchen在gmail.com Thu Apr 8 09:48:37 2010 From: hzpeterchen在gmail.com (Peter Chen) Date: Thu, 08 Apr 2010 09:48:37 +0800 Subject: =?UTF-8?B?5pyJ5rKh5pyJ5Lq65YGa6L+HIEVjbGlwc2Ug5YWz5LqOIE1JUFM=?= =?UTF-8?B?L0FSTSB0b29sY2hhaW4g55qE5o+S5Lu255qE77yM5ZKo6K+i5LiLPw==?= In-Reply-To: References: Message-ID: <4BBD35F5.9000200@gmail.com> Search "Macraigor_with_Eclipse" at google Eric Miao wrote: > 2010/4/2 ja alex >> CDT uses GDB Machine Interface to communicate with GDB. >> So it can integrate your version of GDB seamlessly. >> > > I see, thanks. > >> 在 2010年4月2日 上午11:55,Eric Miao 写道: >>> What about debugging then? >>> >>> 2010/4/2 ja alex >>>> Eclipse/CDT would be your choice. It uses GNU GCC as backend. >>>> >>>> 在 2010年4月2日 上午9:53,Eric Miao 写道: >>>>> Exactly, I'd like to know if there are already some usable solutions >>>>> freely available, and if there are any, how's the user experience, >>>>> like JTAG/debugger support, how well tools are integrated, ... >>>>> >>>>> 2010/4/2 ja alex >>>>>> GNU-toolchain based? >>>>>> >>>>>> 在 2010年4月1日 下午10:58,Eric Miao 写道: >>>>>>> RT >>>>>>> _______________________________________________ >>>>>>> Linux 内核开发中文邮件列表 >>>>>>> chttp://zh-kernel.org/mailman/listinfo/linux-kernel >>>>>>> Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org -- Best regards, Peter Chen From hzpeterchen在gmail.com Thu Apr 8 10:04:55 2010 From: hzpeterchen在gmail.com (Peter Chen) Date: Thu, 08 Apr 2010 10:04:55 +0800 Subject: =?UTF-8?B?6Zeu5LiA5LiL5YaF5qC454mI5pys5Y+355qE6Zeu6aKY77yIdW4=?= =?UTF-8?B?YW1lIC1y77yJ?= In-Reply-To: References: <20100407030550.GA3830@cr0.nay.redhat.com> Message-ID: <4BBD39C7.8050507@gmail.com> 1. Makefile的前4行 2. make menuconfig General Setup ---> Local version - append to kernel release cyher wrote: > 在 2010年4月7日 上午11:06,Amerigo Wang 写道: > >> On Wed, Apr 07, 2010 at 10:46:24AM +0800, cyher wrote: >>> 在 2010年4月7日 上午10:32,Jike Song 写道: >>> >>>> 2010/4/7 cyher : >>>>> hi all >>>>> 都知道uname -r是现实当前内核版本号,但是这个版本号又是怎么写入的呢?在哪里写入的? >>>>> 比如现在的版本号总是2.6.30-gen-xx-pae-xxx一堆xxx这些都是在哪里写的? >>>>> 注:我看了不是在kernel的主Makefile里面。有知道的兄弟麻烦告知一声 谢谢 >>>>> >>>> man 2 uname. 用strace跟一下uname命令就能看到使用了这个syscall。 >>>> >>>> -- >>>> Thanks, >>>> Jike >>>> >>> >>> 恩 谢谢 回复,我的意思是:我想知道内核是怎么生成这样的一串字符,并不是操作系统怎么读出的。 >> 是这样的,情况比你想象的有些复杂。 >> >> 首先,对于你说的uname -r来说,其实就是对应UTS_RELEASE,即utsname.release。这个是怎么来的呢, >> 是来自makefile的前4行,你可以head -4 Makefile看一下。然后在Makefile的后面用KERNELVERSION >> 和KERNELRELEASE来生成最后的字符串,放到include/generated/utsrelease.h中,作为一个宏, >> 宏的名字叫UTS_RELEASE。最后你再看init/version.c就可以了,里面有UTS_RELEASE。 >> >> 其次,对于uname -a,它除了包含上面的UTS_RELEASE之外,还包含UTS_MACHINE,UTS_VERSION等, >> 这个可以在init/version.c中看到,不过,这个生成的文件是在include/generated/compile.h, >> 是由init/Makefile调用script/mkcompile_h来生成的。 >> >> > 谢谢大家 ,这个是正解,不仅仅是makefile里面的前4行 > -- Best regards, Peter Chen From cyher.net在gmail.com Thu Apr 8 10:44:16 2010 From: cyher.net在gmail.com (cyher) Date: Thu, 8 Apr 2010 10:44:16 +0800 Subject: =?GB2312?B?UmU6IM7K0rvPwsTausuw5rG+usW1xM7KzOKjqHVuYW1lIC1yo6k=?= In-Reply-To: <4BBD39C7.8050507@gmail.com> References: <20100407030550.GA3830@cr0.nay.redhat.com> <4BBD39C7.8050507@gmail.com> Message-ID: 在 2010年4月8日 上午10:04,Peter Chen 写道: > 1. Makefile的前4行 > 2. make menuconfig > General Setup > ---> Local version - append to kernel release > > -- > Best regards, > Peter Chen > 终于找到根源了,原来在这里,我说那些内核后面的版本号怎么那么奇怪。 -- http://cyher.net From dshbusiness在gmail.com Thu Apr 8 11:02:05 2010 From: dshbusiness在gmail.com (=?GB2312?B?tqHJ2bri?=) Date: Thu, 8 Apr 2010 11:02:05 +0800 Subject: =?GB2312?B?UmU6ILnY09pmcmFtZWJ1ZmZlcrXEvLi49s7KzOI=?= In-Reply-To: <4BBD3543.9030607@gmail.com> References: <4BBD3543.9030607@gmail.com> Message-ID: 在 2010年4月8日 上午9:45,Peter Chen 写道: > Qiang Wang wrote: > >> framebuffer有硬件加速的功能,但是要看具体的硬件设备。 >> Linux现有的框架,已经提供硬件加速的支持。但是具体实现,还有看具体的硬件。 >> >> 在 2010年4月2日 下午5:36,Qiang Wang 写道: >> >>> framebuffer的主要功能,就是控制display controller,从内存中抓取数据,并且按照相应的数据格式,发送给显示屏。 >>> >>> 当然,对文件系统会给出一个能够被应用层访问的接口。 >>> >>> >>> >>> 在 2010年4月1日 下午10:01,Lv yuanzhou 写道: >>> >>>> 好像framebuffer就是显卡的最简单操作~ 因为显卡芯片商不公布自己的具体硬件接口~ 不公布这些接口的话就无法使用其硬件加速了吧~ >>>> 而以前linux的显卡驱动其实就是对framebuffer的封装~ 不能高效的使用显卡~ >>>> 不知道我理解得对不~ = 3= >>>> >>>> 在2010-04-01 21:56:35,"丁少衡" 写道: >>>> >>>>> 最近在看framebuffer和directfb相关的代码,有一个问题百思不得其解,我比较菜,希望大家能够解答我的问题。 >>>>> >>>>> framebuffer只是显存到用户层的一个简单抽象吗?framebuffer之下还有没有别的系统支撑,例如显卡驱动?向framebuffer写入一些数据以后,这些数据是直接被写入显存,然后显示在屏幕上,还是要先经过GPU的运算? >>>>> >>>> framebuffer的内存就是显存, 数据是直接写到显存上,然后通过DMA给SoC LCD模 块, > 最后通过你之前设置的显示格式,数据通过LCD的数据线传到LCD panel的内部, 然后显示在屏幕上. > 我看directfb里面有使用显卡的硬件加速功能,但是它的实现我不是很明白,特别 是他定义了许多常量(例如#define > > PALETTE_INDEX >>>>> >>>>> 0x00b0),这些常量貌似是用来操纵显卡的控制端口的寄存器的,可是有关显卡寄存器的文档我却始终找不到。好像只有通过操纵显卡i/o端口才能使用显卡的硬件加速功能,单纯的把数据写入framebuffer是没有使用硬件加速的,是不是? >>>>> >>>>> 哪位好心大牛给我解释一下framebuffer和显卡驱动之间的关系,如果要在framebuffer下面使用显卡的硬件加速,应该怎么做,是不是要像directfb的实现那样在每个画线和画矩形的函数里面都加上对显卡寄存器的操作,而不单单是简单的写入显存?(显存已经用mmap映射) >>>>> _______________________________________________ >>>>> Linux 内核开发中文邮件列表 >>>>> Linux-kernel在zh-kernel.org >>>>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>>>> Linux 内核开发中文社区: http://zh-kernel.org >>>>> >>>> _______________________________________________ >>>> Linux 内核开发中文邮件列表 >>>> Linux-kernel在zh-kernel.org >>>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>>> Linux 内核开发中文社区: http://zh-kernel.org >>>> >>> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org >> > > -- > Best regards, > Peter Chen > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > 我已经大致能够看懂directfb的代码了。例如directfb里头提供了一个drawrectangle()的函数,这个函数根据不同的显卡会映射到不同的函数,例如ati显卡就映射到一个叫做ati128drawrectangle的函数上,然后ati128drawrectangle函数计算一些值以后,会把一些数据写入显存,然后比较特别的是,它调用了一个叫做ati_out32的函数(好像是这个名字),这个函数对ati显卡的寄存器进行了一番设置,好像是为了使用显卡的矩形填充硬件加速功能。那么在以上过程中,我有点想不明白显卡驱动程序是做什么的?扮演了什么角色?是不是上面的ati_out32函数就是一个显卡驱动?如果是,那么directfb自己实现这个驱动做什么?用ati现成的驱动不是更好吗? From xiyou.wangcong在gmail.com Thu Apr 8 11:15:06 2010 From: xiyou.wangcong在gmail.com (Amerigo Wang) Date: Thu, 8 Apr 2010 11:15:06 +0800 Subject: =?utf-8?B?6Zeu5LiA5LiL5YaF5qC454mI5pys?= =?utf-8?B?5Y+355qE6Zeu6aKY77yIdW5hbWUgLXLvvIk=?= In-Reply-To: References: <20100407030550.GA3830@cr0.nay.redhat.com> <4BBD39C7.8050507@gmail.com> Message-ID: <20100408031506.GA3978@cr0.nay.redhat.com> On Thu, Apr 08, 2010 at 10:44:16AM +0800, cyher wrote: >在 2010年4月8日 上午10:04,Peter Chen 写道: > >> 1. Makefile的前4行 >> 2. make menuconfig >> General Setup >> ---> Local version - append to kernel release > >终于找到根源了,原来在这里,我说那些内核后面的版本号怎么那么奇怪。 你肯定没读源代码。;) 我前面提到的KERNELRELEASE里面考虑到了LOCALVERSION。 顺便说一下,LOCALVERSION是由scripts/setlocalversion生成的。 如果你用过archlinux的话,你会发现CONFIG_LOCALVERSION_AUTO和 CONFIG_LOCALVERSION都是打开的。 From teklife.kernel在gmail.com Sun Apr 4 12:44:58 2010 From: teklife.kernel在gmail.com (tek-life) Date: Sun, 4 Apr 2010 12:44:58 +0800 Subject: =?GB2312?B?Wk9ORV9ETUHE3Lm70sbIpcO0Pw==?= Message-ID: 在《深入理解Linux内核》一书中,说ZONE_DMA存在主要是因为ISA总线上的DMA控制器不用线性地址,而直接用物理地址,由于硬件的限制,所以,只能寻址到16MB的位置,因此要设置一个ZONE_DMA区。 我的问题是: 1、现在ISA早已经推出历史舞台了。为什么还要保留这个区呢?难道现在PCI上的DMA也只能寻址到16MB的地方么? 2、这个区现在仍在,仅仅是为了兼容么(其他的体系结构么和那些老的有ISA的机器)? 谢谢 From teklife.kernel在gmail.com Sun Apr 4 16:07:24 2010 From: teklife.kernel在gmail.com (tek-life) Date: Sun, 4 Apr 2010 16:07:24 +0800 Subject: =?GB2312?B?UmU6IFpPTkVfRE1BxNy5u9LGyKXDtD8=?= In-Reply-To: <20100404060400.GB3012@hack> References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> Message-ID: 对啊,我的问题就是如果在x86_32里面把ZONE_DMA移去了,改区被ZONE_NORMAL“接管”,系统还会正常运行么? 在 10-4-4,Américo Wang 写道: > On Sun, Apr 04, 2010 at 01:20:25PM +0800, tek-life wrote: >>对,我看到在现在Linux的内核中,有四个ZONE >>ZONE_DMA >>ZONE_DMA32 >>ZONE_NORMAL >>ZONE_HIGHMEM >>其中,ZONE_DMA 仍然是16MB,而ZONE_DMA32为0啊,不就相当于实际上没有ZONE_DMA32区,而仍然存在ZONE_DMA区么 >> > > 对于x86 32,ZONE_DMA32没用。。。它影响的是x86 64。 > > -- Laboratory of Service Computing Technology and System p-web:http://tek-life.org/blog QQ:150439216 From teklife.kernel在gmail.com Sun Apr 4 16:46:12 2010 From: teklife.kernel在gmail.com (tek-life) Date: Sun, 4 Apr 2010 16:46:12 +0800 Subject: =?GB2312?B?UmU6IFpPTkVfRE1BxNy5u9LGyKXDtD8=?= In-Reply-To: <20100404083952.GA5636@hack> References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> <20100404083952.GA5636@hack> Message-ID: 谢谢你的回复。 我产生这个问题的原因是,在看到ZONE数据结构的时候,分了3个区分别是:ZONE_DMA,ZONE_NORMAL,ZONE_HIGHMEM,在<深入理解LINUX内核》里面,它说设置这个区的原因是因为,ISA总线上的DMA控制器,直接用物理地址寻址的,只能寻址低16MB,于是,我就想,现在ISA早已经不用了(I810主板都已经将它淘汰了)。那为什么现在版本的Linux还要保留着这个ZONE_DMA呢?然后,我想,如果没有必要的话,在现在的PC机上跑的Linux不再单独为DMA设置这个区,可以么?所以,就产生了这个问题---ZONE_DMA在个人PC机上(当然是现在比较新的PC机了)还有没有存在的必要了。 在 2010年4月4日 下午4:39,Américo Wang 写道: > On Sun, Apr 04, 2010 at 04:07:24PM +0800, tek-life wrote: > >对啊,我的问题就是如果在x86_32里面把ZONE_DMA移去了,改区被ZONE_NORMAL“接管”,系统还会正常运行么? > > > 不对,你根本就没理解这里的问题,ZONE_DMA32在某种程度上就是替换ZONE_DMA的。 > > 对于你这个问题,为什么不自己找一下呢? > > % grep -wnr 'GFP_DMA\|__GFP_DMA' drivers > > -- > Live like a child, think like the god. > > -- Laboratory of Service Computing Technology and System p-web:http://tek-life.org/blog QQ:150439216 From teklife.kernel在gmail.com Tue Apr 6 22:37:46 2010 From: teklife.kernel在gmail.com (hayfeng Lee) Date: Tue, 6 Apr 2010 22:37:46 +0800 Subject: why choose 896MB to the start point of ZONE_HIGHMEM Message-ID: hello,every one. I have a question: Why does linux choose 896MB to do a start point of ZONE_HIGHMEM and the end point of ZONE_NORMAL. Just for experience? What is the advantages? From agnel.joel在gmail.com Tue Apr 6 23:02:39 2010 From: agnel.joel在gmail.com (Joel Fernandes) Date: Tue, 6 Apr 2010 20:32:39 +0530 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: Message-ID: Hi Hayfeng, On Tue, Apr 6, 2010 at 8:07 PM, hayfeng Lee wrote: > hello,every one. > I have a question: > Why does linux choose 896MB to do a start point of ZONE_HIGHMEM and > the end point of ZONE_NORMAL. Just for experience? > What is the advantages? This is not an advantage but a limitation of 32 bit processor and architecture. Only physical memory in first 896MB is directly mapped to the kernel virtual memory address space. This is called ZONE_NORMAL. To access any physical memory in ZONE_HIGHMEM, the kernel has to set up page table entries to indirectly map the physical memory into a virtual memory address (I think around 128MB or so worth page table entries are reused for this purpose). On the other hand, on 64 bit architectures, the entire physical memory is directly mapped and accessible to the kernel. ZONE_HIGHMEM doesn't exist on 64 bit. Take the above with a grain of salt, someone with a better knowledge about this intrusive topic can be give a more detailed explanation :) Hope this helps, thanks, -Joel From frank.hu.2001在gmail.com Wed Apr 7 03:20:22 2010 From: frank.hu.2001在gmail.com (Frank Hu) Date: Tue, 6 Apr 2010 12:20:22 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: <4BBB7AC9.5060008@zytor.com> References: <4BBB7AC9.5060008@zytor.com> Message-ID: On Tue, Apr 6, 2010 at 11:17 AM, H. Peter Anvin wrote: > On 04/06/2010 08:02 AM, Joel Fernandes wrote: >> Hi Hayfeng, >> >> On Tue, Apr 6, 2010 at 8:07 PM, hayfeng Lee wrote: >>> hello,every one. >>> I have a question: >>> Why does linux choose 896MB to do a start point of ZONE_HIGHMEM and >>> the end point of ZONE_NORMAL. Just for experience? >>> What is the advantages? >> >> This is not an advantage but a limitation of 32 bit processor and >> architecture. Only physical memory in first 896MB  is directly mapped >> to the kernel virtual memory address space. This is called >> ZONE_NORMAL. To access any physical memory in ZONE_HIGHMEM, the kernel >> has to set up page table entries to indirectly map the physical memory >> into a virtual memory address (I think around 128MB or so worth page >> table entries are reused for this purpose). On the other hand, on 64 >> bit architectures, the entire physical memory is directly mapped and >> accessible to the kernel. ZONE_HIGHMEM doesn't exist on 64 bit. >> >> Take the above with a grain of salt, someone with a better knowledge >> about this intrusive topic can be give a more detailed explanation :) >> > > The ELF ABI specifies that user space has 3 GB available to it.  That > leaves 1 GB for the kernel.  The kernel, by default, uses 128 MB for I/O > mapping, vmalloc, and kmap support, which leaves 896 MB for LOWMEM. > > All of these boundaries are configurable; with PAE enabled the user > space boundary has to be on a 1 GB boundary. > >        -hpa > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo在vger.kernel.org > More majordomo info at  http://vger.kernel.org/majordomo-info.html > Please read the FAQ at  http://www.tux.org/lkml/ > the VM split is also configurable when building the kernel (for 32-bit processors). From agnel.joel在gmail.com Wed Apr 7 04:01:46 2010 From: agnel.joel在gmail.com (Joel Fernandes) Date: Wed, 7 Apr 2010 01:31:46 +0530 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: <4BBB8F07.60401@zytor.com> References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> Message-ID: Hi Peter, On Wed, Apr 7, 2010 at 1:14 AM, H. Peter Anvin wrote: > On 04/06/2010 12:20 PM, Frank Hu wrote: >>> >>> The ELF ABI specifies that user space has 3 GB available to it.  That >>> leaves 1 GB for the kernel.  The kernel, by default, uses 128 MB for I/O >>> mapping, vmalloc, and kmap support, which leaves 896 MB for LOWMEM. >>> >>> All of these boundaries are configurable; with PAE enabled the user >>> space boundary has to be on a 1 GB boundary. >>> >> >> the VM split is also configurable when building the kernel (for 32-bit >> processors). > > I did say "all these boundaries are configurable".  Rather explicitly. > I thought the 896 MB was a hardware limitation on 32 bit architectures and something that cannot be configured? Or am I missing something here? Also the vm-splits refer to "virtual memory" . While ZONE_* and the 896MB we were discussing refers to "physical memory". How then is discussing about vm splits pertinent here? Thanks, -Joel From frank.hu.2001在gmail.com Wed Apr 7 04:15:49 2010 From: frank.hu.2001在gmail.com (Frank Hu) Date: Tue, 6 Apr 2010 13:15:49 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: <4BBB8F07.60401@zytor.com> References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> Message-ID: On Tue, Apr 6, 2010 at 12:44 PM, H. Peter Anvin wrote: > On 04/06/2010 12:20 PM, Frank Hu wrote: >>> >>> The ELF ABI specifies that user space has 3 GB available to it.  That >>> leaves 1 GB for the kernel.  The kernel, by default, uses 128 MB for I/O >>> mapping, vmalloc, and kmap support, which leaves 896 MB for LOWMEM. >>> >>> All of these boundaries are configurable; with PAE enabled the user >>> space boundary has to be on a 1 GB boundary. >>> >> >> the VM split is also configurable when building the kernel (for 32-bit >> processors). > > I did say "all these boundaries are configurable".  Rather explicitly. > >        -hpa > thought that you can only configure how to split the VM like 1G/3G or 2G/2G. But the DMA zone size, the 128MB space for I/O is not configurable. The NORMAL zone size will be deducted based on the VM Split and some hard coded DMA zone and 128 MB space size. I am not a guru in this space... so I might be wrong. From venkatram867在gmail.com Wed Apr 7 06:28:49 2010 From: venkatram867在gmail.com (Venkatram Tummala) Date: Tue, 6 Apr 2010 15:28:49 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> Message-ID: Joel, To make things clear, 896 MB is not a hardware limitation. The 3GB:1GB split can be configured during the kernel build but the split cannot be changed dynamically. you are correct that ZONE_* refers to grouping of physical memory but the very concept of ZONES is logical and not physical. Now, why does ZONE_NORMAL has only 896MB on a 32 bit system? If you recall the concept of virtual memory, you will remember that its aim is to provide a illusion to the user processes that it has all the theoritical maximum memory possible on that specific architecture, which is 4GB in this case, and that that is only process running on the system. The kernel internally deals with pages, swapping in & out pages to create this illusion. The advantage is that user processes does not have to care about how much physical memory is actually present in the system. So, out of this 4GB, it was conceptually decided that 3GB is the process's virtual address space and 1GB is the kernel virtual address space. The kernel maps these 3GB of user processes' virtual address space to physical memory using page tables. The kernel can just address 1GB of virtual addresses. This 1GB of virtual addresses is directly mapped (1-1 mapping) into the physical memory without using page tables. If the kernel wants to address more virtual addresses, it has to kmap the high memory(ZONE_HIGHMEM) which sets up the page tables etc. So, you can imagine this as : "Whenever a context switch occurs, 3GB virtual address space of the previous running process will be replaced by the virtual address space of the newly selected process, and the 1GB always remains with the kernel." Note that all this is virtual (That is, conceptual), this is only an illusion. So, out of this 1GB of kernel virtual address space that is 1-1 mapped into the physical memory(without requiring page tables), 0-16MB is used by device drivers, 896MB - 1024MB is used by the kernel for vmalloc, kmap, etc which leaves (16MB - 896MB) and this range is "called" ZONE_NORMAL. Giving specific emphasis to the word "called" in the previous sentence. In summary, the kernel can only access 896 MB of physical ram because it only has 1GB of virtual address space available out of which the lower 16MB is used for DMA by device drivers and the 896MB-1024MB is used to support kmap, vmalloc etc. And note that this limitation is not because of the hardware but this is because of the conceptualization of the division of virtual address space into user address space & kernel address space. For example, you can make the split 2G-2G instead of 3G-1G. So, the kernel can now use 2GB of virtual address space (directly mapped to 2GB of physical memory). You can also make the split 1GB:3GB instead of 3GB:1GB as already explained. Hope this clears the confusion. Regards, Venkatram Tummala On Tue, Apr 6, 2010 at 1:01 PM, Joel Fernandes wrote: > Hi Peter, > > On Wed, Apr 7, 2010 at 1:14 AM, H. Peter Anvin wrote: > > On 04/06/2010 12:20 PM, Frank Hu wrote: > >>> > >>> The ELF ABI specifies that user space has 3 GB available to it. That > >>> leaves 1 GB for the kernel. The kernel, by default, uses 128 MB for > I/O > >>> mapping, vmalloc, and kmap support, which leaves 896 MB for LOWMEM. > >>> > >>> All of these boundaries are configurable; with PAE enabled the user > >>> space boundary has to be on a 1 GB boundary. > >>> > >> > >> the VM split is also configurable when building the kernel (for 32-bit > >> processors). > > > > I did say "all these boundaries are configurable". Rather explicitly. > > > > I thought the 896 MB was a hardware limitation on 32 bit architectures > and something that cannot be configured? Or am I missing something > here? Also the vm-splits refer to "virtual memory" . While ZONE_* and > the 896MB we were discussing refers to "physical memory". How then is > discussing about vm splits pertinent here? > > Thanks, > -Joel > > -- > To unsubscribe from this list: send an email with > "unsubscribe kernelnewbies" to ecartis在nl.linux.org > Please read the FAQ at http://kernelnewbies.org/FAQ > > From breadncup在gmail.com Wed Apr 7 07:27:58 2010 From: breadncup在gmail.com (Youngwhan Song) Date: Tue, 6 Apr 2010 16:27:58 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> Message-ID: <3715922601579231267@unknownmsgid> Nice explanation, Venkatram, Just one question pop up mind. What if actual physical memory is only 256MB? How does kernel divide virtual memory? Do we need to specify the region to kernel? Or will kernel itself decide it automatically? On Apr 6, 2010, at 3:28 PM, Venkatram Tummala wrote: Joel, To make things clear, 896 MB is not a hardware limitation. The 3GB:1GB split can be configured during the kernel build but the split cannot be changed dynamically. you are correct that ZONE_* refers to grouping of physical memory but the very concept of ZONES is logical and not physical. Now, why does ZONE_NORMAL has only 896MB on a 32 bit system? If you recall the concept of virtual memory, you will remember that its aim is to provide a illusion to the user processes that it has all the theoritical maximum memory possible on that specific architecture, which is 4GB in this case, and that that is only process running on the system. The kernel internally deals with pages, swapping in & out pages to create this illusion. The advantage is that user processes does not have to care about how much physical memory is actually present in the system. So, out of this 4GB, it was conceptually decided that 3GB is the process's virtual address space and 1GB is the kernel virtual address space. The kernel maps these 3GB of user processes' virtual address space to physical memory using page tables. The kernel can just address 1GB of virtual addresses. This 1GB of virtual addresses is directly mapped (1-1 mapping) into the physical memory without using page tables. If the kernel wants to address more virtual addresses, it has to kmap the high memory(ZONE_HIGHMEM) which sets up the page tables etc. So, you can imagine this as : "Whenever a context switch occurs, 3GB virtual address space of the previous running process will be replaced by the virtual address space of the newly selected process, and the 1GB always remains with the kernel." Note that all this is virtual (That is, conceptual), this is only an illusion. So, out of this 1GB of kernel virtual address space that is 1-1 mapped into the physical memory(without requiring page tables), 0-16MB is used by device drivers, 896MB - 1024MB is used by the kernel for vmalloc, kmap, etc which leaves (16MB - 896MB) and this range is "called" ZONE_NORMAL. Giving specific emphasis to the word "called" in the previous sentence. In summary, the kernel can only access 896 MB of physical ram because it only has 1GB of virtual address space available out of which the lower 16MB is used for DMA by device drivers and the 896MB-1024MB is used to support kmap, vmalloc etc. And note that this limitation is not because of the hardware but this is because of the conceptualization of the division of virtual address space into user address space & kernel address space. For example, you can make the split 2G-2G instead of 3G-1G. So, the kernel can now use 2GB of virtual address space (directly mapped to 2GB of physical memory). You can also make the split 1GB:3GB instead of 3GB:1GB as already explained. Hope this clears the confusion. Regards, Venkatram Tummala On Tue, Apr 6, 2010 at 1:01 PM, Joel Fernandes wrote: > Hi Peter, > > On Wed, Apr 7, 2010 at 1:14 AM, H. Peter Anvin wrote: > > On 04/06/2010 12:20 PM, Frank Hu wrote: > >>> > >>> The ELF ABI specifies that user space has 3 GB available to it. That > >>> leaves 1 GB for the kernel. The kernel, by default, uses 128 MB for > I/O > >>> mapping, vmalloc, and kmap support, which leaves 896 MB for LOWMEM. > >>> > >>> All of these boundaries are configurable; with PAE enabled the user > >>> space boundary has to be on a 1 GB boundary. > >>> > >> > >> the VM split is also configurable when building the kernel (for 32-bit > >> processors). > > > > I did say "all these boundaries are configurable". Rather explicitly. > > > > I thought the 896 MB was a hardware limitation on 32 bit architectures > and something that cannot be configured? Or am I missing something > here? Also the vm-splits refer to "virtual memory" . While ZONE_* and > the 896MB we were discussing refers to "physical memory". How then is > discussing about vm splits pertinent here? > > Thanks, > -Joel > > -- > To unsubscribe from this list: send an email with > "unsubscribe kernelnewbies" to ecartis在nl.linux.org > Please read the FAQ at http://kernelnewbies.org/FAQ > > From xiaoxianghua在gmail.com Wed Apr 7 09:47:44 2010 From: xiaoxianghua在gmail.com (Xianghua Xiao) Date: Tue, 6 Apr 2010 20:47:44 -0500 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: <4BBBC470.4050002@zytor.com> References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> <3715922601579231267@unknownmsgid> <4BBBC470.4050002@zytor.com> Message-ID: If the last 128MB out of the kernel 1GB space is used to for highmen, meanwhile it's also used for IO/vmalloc, how does this work? Xianghua On Tue, Apr 6, 2010 at 6:32 PM, H. Peter Anvin wrote: > On 04/06/2010 04:27 PM, Youngwhan Song wrote: >> Nice explanation, Venkatram, >> >> Just one question pop up mind. >> >> What if actual physical memory is only 256MB? How does kernel divide >> virtual memory? Do we need to specify the region to kernel? Or will >> kernel itself decide it automatically? >> > > If there is less than 896 MB of physical memory, the vmalloc region is > automatically extended (in your case, it will be 768 MB in size.)  There > will be no HIGHMEM in such a case, and if you are compiling your own > kernel you will gain considerable speed by disabling HIGHMEM support > completely. > > This, of course, was the norm back when Linux was first created, and a > typical amount of memory was 8 MB or so.  That we'd have gigabytes of > memory seemed very distant at the time. > >        -hpa > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo在vger.kernel.org > More majordomo info at  http://vger.kernel.org/majordomo-info.html > Please read the FAQ at  http://www.tux.org/lkml/ > From venkatram867在gmail.com Wed Apr 7 10:04:13 2010 From: venkatram867在gmail.com (Venkatram Tummala) Date: Tue, 6 Apr 2010 19:04:13 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> <3715922601579231267@unknownmsgid> <4BBBC470.4050002@zytor.com> Message-ID: Hey Xiao, last 128MB is not used for highmem. last 128MB is used for data structures(page tables etc.) to support highmem . Highmem is not something which is "INSIDE" Kernel's Virtual Address space. Highmem refers to a region of "Physical memory" which can be mapped into kernel's virtual address space through page tables. Regards, Venkatram Tummala On Tue, Apr 6, 2010 at 6:47 PM, Xianghua Xiao wrote: > If the last 128MB out of the kernel 1GB space is used to for highmen, > meanwhile it's also used for IO/vmalloc, how does this work? > > Xianghua > > On Tue, Apr 6, 2010 at 6:32 PM, H. Peter Anvin wrote: > > On 04/06/2010 04:27 PM, Youngwhan Song wrote: > >> Nice explanation, Venkatram, > >> > >> Just one question pop up mind. > >> > >> What if actual physical memory is only 256MB? How does kernel divide > >> virtual memory? Do we need to specify the region to kernel? Or will > >> kernel itself decide it automatically? > >> > > > > If there is less than 896 MB of physical memory, the vmalloc region is > > automatically extended (in your case, it will be 768 MB in size.) There > > will be no HIGHMEM in such a case, and if you are compiling your own > > kernel you will gain considerable speed by disabling HIGHMEM support > > completely. > > > > This, of course, was the norm back when Linux was first created, and a > > typical amount of memory was 8 MB or so. That we'd have gigabytes of > > memory seemed very distant at the time. > > > > -hpa > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" > in > > the body of a message to majordomo在vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ > > > From chetannanda在gmail.com Wed Apr 7 12:05:46 2010 From: chetannanda在gmail.com (Chetan Nanda) Date: Wed, 7 Apr 2010 09:35:46 +0530 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> Message-ID: On Wed, Apr 7, 2010 at 3:58 AM, Venkatram Tummala wrote: > Joel, > > To make things clear, 896 MB is not a hardware limitation. The 3GB:1GB > split can be configured during the kernel build but the split cannot be > changed dynamically. > > you are correct that ZONE_* refers to grouping of physical memory but the > very concept of ZONES is logical and not physical. > > Now, why does ZONE_NORMAL has only 896MB on a 32 bit system? > > If you recall the concept of virtual memory, you will remember that its aim > is to provide a illusion to the user processes that it has all the > theoritical maximum memory possible on that specific architecture, which is > 4GB in this case, and that that is only process running on the system. The > kernel internally deals with pages, swapping in & out pages to create this > illusion. The advantage is that user processes does not have to care about > how much physical memory is actually present in the system. > > So, out of this 4GB, it was conceptually decided that 3GB is the process's > virtual address space and 1GB is the kernel virtual address space. The > kernel maps these 3GB of user processes' virtual address space to physical > memory using page tables. The kernel can just address 1GB of virtual > addresses. This 1GB of virtual addresses is directly mapped (1-1 mapping) > into the physical memory without using page tables. If the kernel wants to > address more virtual addresses, it has to kmap the high memory(ZONE_HIGHMEM) > which sets up the page tables etc. So, you can imagine this as : "Whenever a > context switch occurs, 3GB virtual address space of the previous running > process will be replaced by the virtual address space of the newly selected > process, and the 1GB always remains with the kernel." Note that all this is > virtual (That is, conceptual), this is only an illusion. > > So, out of this 1GB of kernel virtual address space that is 1-1 mapped into > the physical memory(without requiring page tables), 0-16MB is used by device > drivers, 896MB - 1024MB is used by the kernel for vmalloc, kmap, etc which > leaves (16MB - 896MB) and this range is "called" ZONE_NORMAL. > > Giving specific emphasis to the word "called" in the previous sentence. > > In summary, the kernel can only access 896 MB of physical ram because it > only has 1GB of virtual address space available out of which the lower 16MB > is used for DMA by device drivers and the 896MB-1024MB is used to support > kmap, vmalloc etc. And note that this limitation is not because of the > hardware but this is because of the conceptualization of the division of > virtual address space into user address space & kernel address space. > I have a question here, what if I have a 32bit system with 2GB of RAM, so in that case my 896MB - 2GB RAM would be in accessible? What my understanding on the subject is: Only 896 MB of physical RAM is directly mapped on to kernel 1G virtual address space. And we still require page table settings to do that (page table would be identity mapping). But for rest of RAM, i.e. whenever there is need to access physical RAM beyond 896MB then that page will be mapped on to pages from 128MB kernel virtual address space (1GB - 896MB = 128MB), and AFAIK kmap is just for that. Please correct me if i am wrong ~cnanda For example, you can make the split 2G-2G instead of 3G-1G. So, the kernel > can now use 2GB of virtual address space (directly mapped to 2GB of physical > memory). You can also make the split 1GB:3GB instead of 3GB:1GB as already > explained. > > Hope this clears the confusion. > > Regards, > Venkatram Tummala > > > > On Tue, Apr 6, 2010 at 1:01 PM, Joel Fernandes wrote: > >> Hi Peter, >> >> On Wed, Apr 7, 2010 at 1:14 AM, H. Peter Anvin wrote: >> > On 04/06/2010 12:20 PM, Frank Hu wrote: >> >>> >> >>> The ELF ABI specifies that user space has 3 GB available to it. That >> >>> leaves 1 GB for the kernel. The kernel, by default, uses 128 MB for >> I/O >> >>> mapping, vmalloc, and kmap support, which leaves 896 MB for LOWMEM. >> >>> >> >>> All of these boundaries are configurable; with PAE enabled the user >> >>> space boundary has to be on a 1 GB boundary. >> >>> >> >> >> >> the VM split is also configurable when building the kernel (for 32-bit >> >> processors). >> > >> > I did say "all these boundaries are configurable". Rather explicitly. >> > >> >> I thought the 896 MB was a hardware limitation on 32 bit architectures >> and something that cannot be configured? Or am I missing something >> here? Also the vm-splits refer to "virtual memory" . While ZONE_* and >> the 896MB we were discussing refers to "physical memory". How then is >> discussing about vm splits pertinent here? >> >> Thanks, >> -Joel >> >> -- >> To unsubscribe from this list: send an email with >> "unsubscribe kernelnewbies" to ecartis在nl.linux.org >> Please read the FAQ at http://kernelnewbies.org/FAQ >> >> > From venkatram867在gmail.com Wed Apr 7 13:48:15 2010 From: venkatram867在gmail.com (Venkatram Tummala) Date: Tue, 6 Apr 2010 22:48:15 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: <4BBBE976.1000603@zytor.com> References: <4BBB8F07.60401@zytor.com> <3715922601579231267@unknownmsgid> <4BBBC470.4050002@zytor.com> <4BBBE976.1000603@zytor.com> Message-ID: I completely agree with you. I was just trying to clarify Xianghua'sstatement "last 128 MB is used for HIGHMEM". I got the feeling that he thought that last 128MB can be used for vmalloc, IO and for HIGHMEM. So, i was clarifying that last 128MB is not "used for highmem" but it is used to support highmem.(among many other things). That was what i intended. On Tue, Apr 6, 2010 at 7:09 PM, H. Peter Anvin wrote: > On 04/06/2010 07:04 PM, Venkatram Tummala wrote: > > Hey Xiao, > > > > last 128MB is not used for highmem. last 128MB is used for data > > structures(page tables etc.) to support highmem . Highmem is not > > something which is "INSIDE" Kernel's Virtual Address space. Highmem > > refers to a region of "Physical memory" which can be mapped into > > kernel's virtual address space through page tables. > > > > Regards, > > Venkatram Tummala > > > > Not quite. > > The vmalloc region is for *anything which is dynamically mapped*, which > includes I/O, vmalloc, and HIGHMEM (kmap). > > -hpa > > -- > H. Peter Anvin, Intel Open Source Technology Center > I work for Intel. I don't speak on their behalf. > > From venkatram867在gmail.com Wed Apr 7 13:57:43 2010 From: venkatram867在gmail.com (Venkatram Tummala) Date: Tue, 6 Apr 2010 22:57:43 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: <4BBC1807.1090004@zytor.com> References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> <4BBC1807.1090004@zytor.com> Message-ID: Just a note Chetan. We can't exactly say that we require "page table settings" to map that 896 MB of physical ram. It is an identity mapped segment (1-1 mapping). So, we dont require the "page tables". Virtual address will be equal to Physical Address + Page Offset. It is just an addition of offset Chetan, I see what you mean. You were absolutely correct. Just that, I feel that the term "page tables" should not be used for the conversion of virtual addresses to physical address in the identity mapped segment. O'wise people may get confused. On Tue, Apr 6, 2010 at 10:28 PM, H. Peter Anvin wrote: > On 04/06/2010 09:05 PM, Chetan Nanda wrote: > > > > I have a question here, what if I have a 32bit system with 2GB of RAM, > > so in that case my 896MB - 2GB RAM would be in accessible? > > What my understanding on the subject is: > > Only 896 MB of physical RAM is directly mapped on to kernel 1G virtual > > address space. And we still require page table settings to do that (page > > table would be identity mapping). But for rest of RAM, i.e. whenever > > there is need to access physical RAM beyond 896MB then that page will be > > mapped on to pages from 128MB kernel virtual address space (1GB - 896MB > > = 128MB), and AFAIK kmap is just for that. > > > > Please correct me if i am wrong > > > > Correct. > > -hpa > -- > H. Peter Anvin, Intel Open Source Technology Center > I work for Intel. I don't speak on their behalf. > > From venkatram867在gmail.com Wed Apr 7 14:20:17 2010 From: venkatram867在gmail.com (Venkatram Tummala) Date: Tue, 6 Apr 2010 23:20:17 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: <4BBC2086.6090708@zytor.com> References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> <4BBC1807.1090004@zytor.com> <4BBC2086.6090708@zytor.com> Message-ID: Can you please explain the last statement. My understanding was - the exact conversion formula of virtual address to physical address in identity mapped segment is platform specific and in most cases, this is as simple as the addition of an offset. So we can do away with page tables to access memory mapped in identity mapped segment. Am i missing something? Regards, Venkatram Tummala On Tue, Apr 6, 2010 at 11:04 PM, H. Peter Anvin wrote: > On 04/06/2010 10:57 PM, Venkatram Tummala wrote: > > Just a note Chetan. > > > > We can't exactly say that we require "page table settings" to map that > > 896 MB of physical ram. It is an identity mapped segment (1-1 mapping). > > So, we dont require the "page tables". Virtual address will be equal to > > Physical Address + Page Offset. It is just an addition of offset > > > > No, we still need page tables for the identity-mapped segment. > > -hpa > > -- > H. Peter Anvin, Intel Open Source Technology Center > I work for Intel. I don't speak on their behalf. > > From chetannanda在gmail.com Wed Apr 7 14:48:40 2010 From: chetannanda在gmail.com (Chetan Nanda) Date: Wed, 7 Apr 2010 12:18:40 +0530 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB8F07.60401@zytor.com> <4BBC1807.1090004@zytor.com> <4BBC2086.6090708@zytor.com> Message-ID: On Wed, Apr 7, 2010 at 11:50 AM, Venkatram Tummala wrote: > Can you please explain the last statement. My understanding was - the exact > conversion formula of virtual address to physical address in identity mapped > segment is platform specific and in most cases, this is as simple as the > addition of an offset. So we can do away with page tables to access memory > mapped in identity mapped segment. > Hi Venkat, That is what I was trying to point out. even the address that are generated by kernel are virtual address and they still goes through page table for mapping to actual physical address. And this is done by MMU (via page table), so MMU must be configured to do the same. ~cnanda Am i missing something? > > Regards, > Venkatram Tummala > > > On Tue, Apr 6, 2010 at 11:04 PM, H. Peter Anvin wrote: > >> On 04/06/2010 10:57 PM, Venkatram Tummala wrote: >> > Just a note Chetan. >> > >> > We can't exactly say that we require "page table settings" to map that >> > 896 MB of physical ram. It is an identity mapped segment (1-1 mapping). >> > So, we dont require the "page tables". Virtual address will be equal to >> > Physical Address + Page Offset. It is just an addition of offset >> > >> >> No, we still need page tables for the identity-mapped segment. >> >> -hpa >> >> -- >> H. Peter Anvin, Intel Open Source Technology Center >> I work for Intel. I don't speak on their behalf. >> >> > From venkatram867在gmail.com Wed Apr 7 15:59:50 2010 From: venkatram867在gmail.com (Venkatram Tummala) Date: Wed, 7 Apr 2010 00:59:50 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> Message-ID: Yes, to be technically very correct, process switch is a more appropriate word to use here. Because, context switch includes the case where an interrupt has to be serviced while a process is executing and after the interrupt is serviced, the same process may continue execution. A process switch on other hand involves switching to another user level process. Having said that, words context switching & process switching are often used interchangeably. I dont know the actual norm used in the linux kernel discussion. On Wed, Apr 7, 2010 at 12:33 AM, Siddu wrote: > Hi Venkat > > On Wed, Apr 7, 2010 at 3:58 AM, Venkatram Tummala wrote: > >> Joel, >> >> To make things clear, 896 MB is not a hardware limitation. The 3GB:1GB >> split can be configured during the kernel build but the split cannot be >> changed dynamically. >> >> you are correct that ZONE_* refers to grouping of physical memory but the >> very concept of ZONES is logical and not physical. >> >> Now, why does ZONE_NORMAL has only 896MB on a 32 bit system? >> >> If you recall the concept of virtual memory, you will remember that its >> aim is to provide a illusion to the user processes that it has all the >> theoritical maximum memory possible on that specific architecture, which is >> 4GB in this case, and that that is only process running on the system. The >> kernel internally deals with pages, swapping in & out pages to create this >> illusion. The advantage is that user processes does not have to care about >> how much physical memory is actually present in the system. >> >> So, out of this 4GB, it was conceptually decided that 3GB is the process's >> virtual address space and 1GB is the kernel virtual address space. The >> kernel maps these 3GB of user processes' virtual address space to physical >> memory using page tables. The kernel can just address 1GB of virtual >> addresses. This 1GB of virtual addresses is directly mapped (1-1 mapping) >> into the physical memory without using page tables. If the kernel wants to >> address more virtual addresses, it has to kmap the high memory(ZONE_HIGHMEM) >> which sets up the page tables etc. So, you can imagine this as : "Whenever a >> context switch > > > Shouldnt "context switch" be termed as "process switch" over here ..... > Correct me if am wrong ! > > >> occurs, 3GB virtual address space of the previous running process will be >> replaced by the virtual address space of the newly selected process, and the >> 1GB always remains with the kernel." Note that all this is virtual (That is, >> conceptual), this is only an illusion. >> >> So, out of this 1GB of kernel virtual address space that is 1-1 mapped >> into the physical memory(without requiring page tables), 0-16MB is used by >> device drivers, 896MB - 1024MB is used by the kernel for vmalloc, kmap, etc >> which leaves (16MB - 896MB) and this range is "called" ZONE_NORMAL. >> >> Giving specific emphasis to the word "called" in the previous sentence. >> >> In summary, the kernel can only access 896 MB of physical ram because it >> only has 1GB of virtual address space available out of which the lower 16MB >> is used for DMA by device drivers and the 896MB-1024MB is used to support >> kmap, vmalloc etc. And note that this limitation is not because of the >> hardware but this is because of the conceptualization of the division of >> virtual address space into user address space & kernel address space. >> >> For example, you can make the split 2G-2G instead of 3G-1G. So, the kernel >> can now use 2GB of virtual address space (directly mapped to 2GB of physical >> memory). You can also make the split 1GB:3GB instead of 3GB:1GB as already >> explained. >> >> Hope this clears the confusion. >> >> Regards, >> Venkatram Tummala >> >> >> >> On Tue, Apr 6, 2010 at 1:01 PM, Joel Fernandes wrote: >> >>> Hi Peter, >>> >>> On Wed, Apr 7, 2010 at 1:14 AM, H. Peter Anvin wrote: >>> > On 04/06/2010 12:20 PM, Frank Hu wrote: >>> >>> >>> >>> The ELF ABI specifies that user space has 3 GB available to it. That >>> >>> leaves 1 GB for the kernel. The kernel, by default, uses 128 MB for >>> I/O >>> >>> mapping, vmalloc, and kmap support, which leaves 896 MB for LOWMEM. >>> >>> >>> >>> All of these boundaries are configurable; with PAE enabled the user >>> >>> space boundary has to be on a 1 GB boundary. >>> >>> >>> >> >>> >> the VM split is also configurable when building the kernel (for 32-bit >>> >> processors). >>> > >>> > I did say "all these boundaries are configurable". Rather explicitly. >>> > >>> >>> I thought the 896 MB was a hardware limitation on 32 bit architectures >>> and something that cannot be configured? Or am I missing something >>> here? Also the vm-splits refer to "virtual memory" . While ZONE_* and >>> the 896MB we were discussing refers to "physical memory". How then is >>> discussing about vm splits pertinent here? >>> >>> Thanks, >>> -Joel >>> >>> -- >>> To unsubscribe from this list: send an email with >>> "unsubscribe kernelnewbies" to ecartis在nl.linux.org >>> Please read the FAQ at http://kernelnewbies.org/FAQ >>> >>> >> > > > -- > Regards, > ~Sid~ > A little bird which escaped the nest had to fall before it learnt to fly ! > > From venkatram867在gmail.com Wed Apr 7 16:09:43 2010 From: venkatram867在gmail.com (Venkatram Tummala) Date: Wed, 7 Apr 2010 01:09:43 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB8F07.60401@zytor.com> <4BBC1807.1090004@zytor.com> <4BBC2086.6090708@zytor.com> Message-ID: Hey Chetan, Exactly.You are absolutely correct! But I thought that as the conversion is platform specific & in most cases, we can do away with page tables in the identity mapped segment if it is as simple as adding an offset, which is a kind of a performance hack. We can look at the arch specific __pa(..) and __va(..) implementation in the kernel to have a better idea. For example, if we look at arch specific IA64 code, __pa and __va are defined as follows : FILE : arch/IA64/include/asm/page.h . #ifdef __ASSEMBLY__ # define __pa (x ) ((x ) - PAGE_OFFSET ) # define __va (x ) ((x ) + PAGE_OFFSET ) #else /* !__ASSEMBLY */ So, in this case no page tables were used. This is what i meant. On Tue, Apr 6, 2010 at 11:48 PM, Chetan Nanda wrote: > > > On Wed, Apr 7, 2010 at 11:50 AM, Venkatram Tummala > wrote: > >> Can you please explain the last statement. My understanding was - the >> exact conversion formula of virtual address to physical address in identity >> mapped segment is platform specific and in most cases, this is as simple as >> the addition of an offset. So we can do away with page tables to access >> memory mapped in identity mapped segment. >> > > Hi Venkat, > > That is what I was trying to point out. even the address that are generated > by kernel are virtual address and they still goes through page table for > mapping to actual physical address. > And this is done by MMU (via page table), so MMU must be configured to do > the same. > > ~cnanda > > Am i missing something? >> >> Regards, >> Venkatram Tummala >> >> >> On Tue, Apr 6, 2010 at 11:04 PM, H. Peter Anvin wrote: >> >>> On 04/06/2010 10:57 PM, Venkatram Tummala wrote: >>> > Just a note Chetan. >>> > >>> > We can't exactly say that we require "page table settings" to map that >>> > 896 MB of physical ram. It is an identity mapped segment (1-1 mapping). >>> > So, we dont require the "page tables". Virtual address will be equal >>> to >>> > Physical Address + Page Offset. It is just an addition of offset >>> > >>> >>> No, we still need page tables for the identity-mapped segment. >>> >>> -hpa >>> >>> -- >>> H. Peter Anvin, Intel Open Source Technology Center >>> I work for Intel. I don't speak on their behalf. >>> >>> >> > From xiaoxianghua在gmail.com Wed Apr 7 20:10:02 2010 From: xiaoxianghua在gmail.com (Xianghua Xiao) Date: Wed, 7 Apr 2010 07:10:02 -0500 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB8F07.60401@zytor.com> <3715922601579231267@unknownmsgid> <4BBBC470.4050002@zytor.com> <4BBBE976.1000603@zytor.com> Message-ID: On Wed, Apr 7, 2010 at 12:48 AM, Venkatram Tummala wrote: > I completely agree with you. I was just trying to clarify Xianghua's > statement "last 128 MB is used for HIGHMEM". I got the feeling that he > thought that last 128MB can be used for vmalloc, IO and for HIGHMEM. So, i > was clarifying that last 128MB is not "used for highmem" but it is used to > support highmem.(among many other things). That was what i intended. > > On Tue, Apr 6, 2010 at 7:09 PM, H. Peter Anvin wrote: >> >> On 04/06/2010 07:04 PM, Venkatram Tummala wrote: >> > Hey Xiao, >> > >> > last 128MB is not used for highmem. last 128MB is used for data >> > structures(page tables etc.) to support highmem .  Highmem is not >> > something which is "INSIDE" Kernel's Virtual Address space. Highmem >> > refers to a region of "Physical memory" which can be mapped into >> > kernel's virtual address space through page tables. >> > >> > Regards, >> > Venkatram Tummala >> > >> >> Not quite. >> >> The vmalloc region is for *anything which is dynamically mapped*, which >> includes I/O, vmalloc, and HIGHMEM (kmap). >> >>        -hpa >> >> -- >> H. Peter Anvin, Intel Open Source Technology Center >> I work for Intel.  I don't speak on their behalf. >> > > Thanks Venkatram, do these sound right: 1. All HIGHMEM(physical address beyond 896MB) are kmapped back into the last 128MB kernel "virtual" address space(using page tables stored in the last 128MB physical address). That also implies it's a very limited virtual space for large memory system and need do kunmap when you're done with it(so you can kmap other physical memories in). I'm not familiar with large-memory systems, not sure how kmap cope with that using this limited 128M window assuming kernel is 1:3 split. 2. The last 128MB physical address can be used for page tables(kmap), vmalloc, IO,etc Regards, Xianghua From chetannanda在gmail.com Wed Apr 7 20:50:29 2010 From: chetannanda在gmail.com (Chetan Nanda) Date: Wed, 7 Apr 2010 18:20:29 +0530 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <3715922601579231267@unknownmsgid> <4BBBC470.4050002@zytor.com> <4BBBE976.1000603@zytor.com> Message-ID: On Wed, Apr 7, 2010 at 5:40 PM, Xianghua Xiao wrote: > On Wed, Apr 7, 2010 at 12:48 AM, Venkatram Tummala > wrote: > > I completely agree with you. I was just trying to clarify Xianghua's > > statement "last 128 MB is used for HIGHMEM". I got the feeling that he > > thought that last 128MB can be used for vmalloc, IO and for HIGHMEM. So, > i > > was clarifying that last 128MB is not "used for highmem" but it is used > to > > support highmem.(among many other things). That was what i intended. > > > > On Tue, Apr 6, 2010 at 7:09 PM, H. Peter Anvin wrote: > >> > >> On 04/06/2010 07:04 PM, Venkatram Tummala wrote: > >> > Hey Xiao, > >> > > >> > last 128MB is not used for highmem. last 128MB is used for data > >> > structures(page tables etc.) to support highmem . Highmem is not > >> > something which is "INSIDE" Kernel's Virtual Address space. Highmem > >> > refers to a region of "Physical memory" which can be mapped into > >> > kernel's virtual address space through page tables. > >> > > >> > Regards, > >> > Venkatram Tummala > >> > > >> > >> Not quite. > >> > >> The vmalloc region is for *anything which is dynamically mapped*, which > >> includes I/O, vmalloc, and HIGHMEM (kmap). > >> > >> -hpa > >> > >> -- > >> H. Peter Anvin, Intel Open Source Technology Center > >> I work for Intel. I don't speak on their behalf. > >> > > > > > > Thanks Venkatram, do these sound right: > > 1. All HIGHMEM(physical address beyond 896MB) are kmapped back into > the last 128MB kernel "virtual" address space(using page tables stored > in the last 128MB physical address). That also implies it's a very > limited virtual space for large memory system and need do kunmap when > you're done with it(so you can kmap other physical memories in). > I'm not familiar with large-memory systems, not sure how kmap cope > with that using this limited 128M window assuming kernel is 1:3 split. > Small correction here, page-table is not store in last 128MB of physical memory. Instead the complete page table for 4GB virtual address space is stored in kernel data-structures (kernel data section). ~cnanda 2. The last 128MB physical address can be used for page tables(kmap), > vmalloc, IO,etc > > Regards, > Xianghua > > -- > To unsubscribe from this list: send an email with > "unsubscribe kernelnewbies" to ecartis在nl.linux.org > Please read the FAQ at http://kernelnewbies.org/FAQ > > From teklife.kernel在gmail.com Wed Apr 7 22:11:30 2010 From: teklife.kernel在gmail.com (tek-life) Date: Wed, 7 Apr 2010 22:11:30 +0800 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> Message-ID: Dear Venkatram, Thanks for your  hot heart and detailed explaination. Your opinion is just  for the balance with choosing 896MB ? Then I want to konw wheather is the decision for 896  based on a lot of  experiments. I think it is an important things . Best wishes. 2010/4/7 Venkatram Tummala > > First Of All, > > Total Virtual address space of the user process + Virtual address space of the kernel should ALWAYS be equal to 4GB. (on 32-bit) > > So, you have to luxury to decide the split between user address space + kernel address space. > > Lets the consider the two exterme alternatives to choosing 896MB > > First Extreme : You dont want to  choose too less memory for identity mapped segment (eg. 512MB instead of 896MB) because you don't all the addition memory for vmalloc area. As identity mapped segment is 1-1 mapping, finding & accessing the corresponding physical address is easier & faster. You want to have the max. memory possible in this identity mapped segment. > > Second Extreme : You dont to choose too high memory either (eg. 960MB instead of 896 MB) because that will leave you with insufficient memory for the vmalloc area. > > So, you have to balance the two extremes. Kernel Guys decided that 128MB (1024MB - 896MB) is sufficient for vmalloc area. So, the rest of the address space is 1-1 mapped. > > Hope this is clear. > > Regards, > Venkatram Tummala > > > > > > > On Tue, Apr 6, 2010 at 10:08 PM, tek-life wrote: >> >> Thanks for you so detailed answer. >> But I  am also confused that why don't we choose 64MB physical memory >> spaces for ZONE_HIGHMEM. >> It's known that in the initialization of the memory ,kernel will >> create main page table ,and the kernel use physical address + 3G to >> map . then the kernel map from 0 to 896MB physical memory spaces to >> 3G~3G+896MB virtual spaces. why cann't we map 0~512MB to 3G ~ 3G+512MB >> , and the left (>512MB) is given to ZONE_HIGHMEM for dynamic mapping? >> The focus is 896MB not others. >> why choose 896 ? why not 512 or 960 or others? >> >> 2010/4/7 Venkatram Tummala >> > >> > Joel, >> > >> > To make things clear, 896 MB is not a hardware limitation. The 3GB:1GB split can be configured during the kernel build but the split cannot be changed dynamically. >> > >> > you are correct that ZONE_* refers to grouping of physical memory but the very concept of ZONES is logical and not physical. >> > >> > Now, why does ZONE_NORMAL has only 896MB on a 32 bit system? >> > >> > If you recall the concept of virtual memory, you will remember that its aim is to provide a illusion to the user processes that it has all the theoritical maximum memory possible on that specific architecture, which is 4GB in this case, and that that is only process running on the system. The kernel internally deals with pages, swapping in & out pages to create this illusion. The advantage is that user processes does not have to care about how much physical memory is actually present in the system. >> > >> > So, out of this 4GB, it was conceptually decided that 3GB is the process's virtual address space and 1GB is the kernel virtual address space. The kernel maps these 3GB of user processes' virtual address space to physical memory using page tables. The kernel can just address 1GB of virtual addresses. This 1GB of virtual addresses is directly mapped (1-1 mapping) into the physical memory without using page tables. If the kernel wants to address more virtual addresses, it has to kmap the high memory(ZONE_HIGHMEM) which sets up the page tables etc. So, you can imagine this as : "Whenever a context switch occurs, 3GB virtual address space of the previous running process will be replaced by the virtual address space of the newly selected process, and the 1GB always remains with the kernel." Note that all this is virtual (That is, conceptual), this is only an illusion. >> > >> > So, out of this 1GB of kernel virtual address space that is 1-1 mapped into the physical memory(without requiring page tables), 0-16MB is used by device drivers, 896MB - 1024MB is used by the kernel for vmalloc, kmap, etc which leaves (16MB - 896MB) and this range is "called" ZONE_NORMAL. >> > >> > Giving specific emphasis to the word "called" in the previous sentence. >> > >> > In summary, the kernel can only access 896 MB of physical ram because it only has 1GB of virtual address space available out of which the lower 16MB is used for DMA by device drivers and the 896MB-1024MB is used to support kmap, vmalloc etc. And note that this limitation is not because of the hardware but this is because of the conceptualization of the division of virtual address space into user address space & kernel address space. >> > >> > For example, you can make the split 2G-2G instead of 3G-1G. So, the kernel can now use 2GB of virtual address space (directly mapped to 2GB of physical memory). You can also make the split 1GB:3GB instead of 3GB:1GB as already explained. >> > >> > Hope this clears the confusion. >> > >> > Regards, >> > Venkatram Tummala >> > >> > >> > On Tue, Apr 6, 2010 at 1:01 PM, Joel Fernandes wrote: >> >> >> >> Hi Peter, >> >> >> >> On Wed, Apr 7, 2010 at 1:14 AM, H. Peter Anvin wrote: >> >> > On 04/06/2010 12:20 PM, Frank Hu wrote: >> >> >>> >> >> >>> The ELF ABI specifies that user space has 3 GB available to it.  That >> >> >>> leaves 1 GB for the kernel.  The kernel, by default, uses 128 MB for I/O >> >> >>> mapping, vmalloc, and kmap support, which leaves 896 MB for LOWMEM. >> >> >>> >> >> >>> All of these boundaries are configurable; with PAE enabled the user >> >> >>> space boundary has to be on a 1 GB boundary. >> >> >>> >> >> >> >> >> >> the VM split is also configurable when building the kernel (for 32-bit >> >> >> processors). >> >> > >> >> > I did say "all these boundaries are configurable".  Rather explicitly. >> >> > >> >> >> >> I thought the 896 MB was a hardware limitation on 32 bit architectures >> >> and something that cannot be configured? Or am I missing something >> >> here? Also the vm-splits refer to "virtual memory" . While ZONE_* and >> >> the 896MB we were discussing refers to "physical memory". How then is >> >> discussing about vm splits pertinent here? >> >> >> >> Thanks, >> >> -Joel >> >> >> >> -- >> >> To unsubscribe from this list: send an email with >> >> "unsubscribe kernelnewbies" to ecartis在nl.linux.org >> >> Please read the FAQ at http://kernelnewbies.org/FAQ >> >> >> > >> > From jiang.adam在gmail.com Thu Apr 8 12:34:47 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Thu, 8 Apr 2010 13:34:47 +0900 Subject: =?GB2312?B?UmU6IFpPTkVfRE1BxNy5u9LGyKXDtD8=?= In-Reply-To: References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> <20100404083952.GA5636@hack> Message-ID: Hi, tek-life 2010/4/4 tek-life : > 谢谢你的回复。 > 我产生这个问题的原因是,在看到ZONE数据结构的时候,分了3个区分别是:ZONE_DMA,ZONE_NORMAL,ZONE_HIGHMEM,在<深入理解LINUX内核》里面,它说设置这个区的原因是因为,ISA总线上的DMA控制器,直接用物理地址寻址的,只能寻址低16MB,于是,我就想,现在ISA早已经不用了(I810主板都已经将它淘汰了)。那为什么现在版本的Linux还要保留着这个ZONE_DMA呢?然后,我想,如果没有必要的话,在现在的PC机上跑的Linux不再单独为DMA设置这个区,可以么?所以,就产生了这个问题---ZONE_DMA在个人PC机上(当然是现在比较新的PC机了)还有没有存在的必要了。 Americo Wang已经回到了你的问题。结论是ZONE_DMA是必要的。我想你应该仔细读一读上面的回复,你的问题被用不同的多个原因做出解释并且回答了。 另外一个不能去掉ZONE_DMA的原因是,主板上某些设备可能需要ISA通信,ISA不仅仅发生在ISA卡的外设上。再次,这个ZONE在PC上不能少。 好好读回复,要不然大家的热心都白费了。 /大头阿当 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From jiang.adam在gmail.com Thu Apr 8 12:40:59 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Thu, 8 Apr 2010 13:40:59 +0900 Subject: =?GB2312?B?UmU6IFpPTkVfRE1BxNy5u9LGyKXDtD8=?= In-Reply-To: <20100407040318.GA6651@gentoo> References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> <20100404083952.GA5636@hack> <20100407040318.GA6651@gentoo> Message-ID: Hi, frank >> memory上面前去,所以,有DMA32的说法。ia64体系结构上,DMA和DMA32是同样的区域。 >> > > 这里的 I/O memory 应该指的是从 PCI 设备看到的主存地址吧? 驱动程序和操纵外设有两种方式,一种是I/O port,就是直接读写外设的寄存器,读写外设寄存器可以让外设做出相应的动作;另一种是I/O memory,就是将寄存器映射到整个地址空间(没有cache的那段)的方法,通过读写这些memory来操作外设。 PCI设备的I/O memory就是它的BAR,而ISA设备也是有I/O memory的,只要该设备的驱动程序做了映射即可。 你说的“从 PCI 设备看到的主存地址”可能不太确切,但是意思差不多,其实我觉得似乎是刚好相反。努力理解ing...... -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From cyher.net在gmail.com Thu Apr 8 12:52:26 2010 From: cyher.net在gmail.com (cyher) Date: Thu, 8 Apr 2010 12:52:26 +0800 Subject: =?GB2312?B?UmU6IM7K0rvPwsTausuw5rG+usW1xM7KzOKjqHVuYW1lIC1yo6k=?= In-Reply-To: <20100408031506.GA3978@cr0.nay.redhat.com> References: <20100407030550.GA3830@cr0.nay.redhat.com> <4BBD39C7.8050507@gmail.com> <20100408031506.GA3978@cr0.nay.redhat.com> Message-ID: 在 2010年4月8日 上午11:15,Amerigo Wang 写道: > On Thu, Apr 08, 2010 at 10:44:16AM +0800, cyher wrote: > >在 2010年4月8日 上午10:04,Peter Chen 写道: > > > >> 1. Makefile的前4行 > >> 2. make menuconfig > >> General Setup > >> ---> Local version - append to kernel release > > > >终于找到根源了,原来在这里,我说那些内核后面的版本号怎么那么奇怪。 > > 你肯定没读源代码。;) > > 我前面提到的KERNELRELEASE里面考虑到了LOCALVERSION。 > 顺便说一下,LOCALVERSION是由scripts/setlocalversion生成的。 > > 如果你用过archlinux的话,你会发现CONFIG_LOCALVERSION_AUTO和 > CONFIG_LOCALVERSION都是打开的。 > 这点确实没读过。。 看过scripts/setlocalversion 这个东西以后 20 # Are there uncommitted changes? 21 git update-index --refresh --unmerged > /dev/null 22 if git diff-index --name-only HEAD | grep -v "^scripts/package" \ 23 | read dummy; then 24 printf '%s' -dirty 25 fi 终于解释了我真正想知道的问题,就是在自动编译的一个代码服务器上下的内核的版本号中为什么 会以-dirty结尾了。 -- http://cyher.net From chengxuzhu在gmail.com Thu Apr 8 17:59:47 2010 From: chengxuzhu在gmail.com (keven) Date: Thu, 8 Apr 2010 17:59:47 +0800 Subject: =?GB2312?B?cGljus1hcGljubK05rXEzsrM4g==?= Message-ID: 各位好: 关于时钟中断,我想大家请教下面几个问题。 首先就是不管是i8253还是hpet,他们都充当irq0的角色,但是在最新的版本里面,我发现只在启动阶段, 这个时钟会被处理,之后就像被屏蔽了一样。看下面的输出 CPU0 CPU1 0: 244 0 IO-APIC-edge timer 1: 461 4 IO-APIC-edge i8042 6: 3 0 IO-APIC-edge floppy 7: 0 0 IO-APIC-edge parport0 9: 0 0 IO-APIC-fasteoi acpi 12: 12 87 IO-APIC-edge i8042 14: 0 0 IO-APIC-edge ata_piix 15: 0 0 IO-APIC-edge ata_piix 16: 0 0 IO-APIC-fasteoi ehci_hcd:usb1 17: 44978 1049 IO-APIC-fasteoi BusLogic BT-958 18: 5640 13 IO-APIC-fasteoi eth0 19: 0 0 IO-APIC-fasteoi uhci_hcd:usb2 NMI: 0 0 Non-maskable interrupts LOC: 16069757 5423179 Local timer interrupts RES: 38928 50278 Rescheduling interrupts CAL: 8 23 Function call interrupts TLB: 16279 11918 TLB shootdowns TRM: 0 0 Thermal event interrupts SPU: 0 0 Spurious interrupts ERR: 0 MIS: 0 [root在localhost orcal]# irq0的中断只在启动时候被处理了,那么它在什么时候被替换或者禁止的,为什么需要禁止它 第二个问题是在新的版本里面,我发现系统正常运行时候,主要是LOC(local clock)在产生时钟中断,那么LOC和i8153或者hpet 之间的主要区别是什么,他们分别作用是什么 第三个问题,它们能否共存,如果可以,我应该做哪些方面的修改。 谢谢大家。 From hu.taoo在gmail.com Thu Apr 8 18:32:38 2010 From: hu.taoo在gmail.com (hu.taoo在gmail.com) Date: Thu, 8 Apr 2010 18:32:38 +0800 Subject: =?utf-8?B?Wk9ORV9ETUHog73lpJ/np7vljrs=?= =?utf-8?B?5LmIPw==?= In-Reply-To: References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> <20100404083952.GA5636@hack> <20100407040318.GA6651@gentoo> Message-ID: <20100408103201.GA6285@gentoo> On Thu, Apr 08, 2010 at 12:40:59PM +0800, Adam Jiang wrote: > Hi, frank > > >> memory上面前去,所以,有DMA32的说法。ia64体系结构上,DMA和DMA32是同样的区域。 > >> > > > > 这里的 I/O memory 应该指的是从 PCI 设备看到的主存地址吧? > > 驱动程序和操纵外设有两种方式,一种是I/O port,就是直接读写外设的寄存器,读写外设寄存器可以让外设做出相应的动作;另一种是I/O > memory,就是将寄存器映射到整个地址空间(没有cache的那段)的方法,通过读写这些memory来操作外设。 没错,而且 I/O port 和 I/O memory 是两个不同的地址空间,I/O port 要用专门的指令来读写。I/O memory 我的理解是设备的片上存储区,比如 说显卡的显存,硬盘的缓存等。 DMA 操作说白了就是在设备和主存之间的数据传输。DMA 控制器要读写主存,必须要有一个主存地址,这个地址,在 ldd3 上称为 bus address(ldd3,chap15,p413), 在 http://en.wikipedia.org/wiki/IOMMU 题 图中又叫 device addresses, 也就是我说的“从设备看到的主存地址”啦,严 格说是 DMA 控制器看到的:) 下面我以 bus address 来称呼这个地址。 对于 PC 上的 ISA 和 PCI 总线,这个 bus address 就是物理地址(ldd3,chap15,p443). 但是有的平台会在主存的物理地址和 bus address 间作映射,这样 bus address 可能就不是物理地址了。(IOMMU 就是一个例子) 回到开始的问题,所以我觉得你说的用 mask 转换 64bit 地址到 32bit 地址,应该是转换到 bus address, 而不应该是 I/O memory. p.s. 还是习惯用gmail From jiang.adam在gmail.com Thu Apr 8 19:43:03 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Thu, 8 Apr 2010 20:43:03 +0900 Subject: =?GB2312?B?UmU6IFpPTkVfRE1BxNy5u9LGyKXDtD8=?= In-Reply-To: <20100408110649.GA4018@desktop> References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> <20100404083952.GA5636@hack> <20100408110649.GA4018@desktop> Message-ID: 2010/4/8, anfei : > On Mon, Apr 05, 2010 at 01:57:27AM +0900, Adam Jiang wrote: >> ZONE_DMA 最初的设计是为了服务ISA等设备的,在x86结构上,ISA设备的bus >> address只有24bits,所以,它们只能访问前2^24=2^4*2^20=16M。但是,这个区域在代码中的实际意义确实有kmalloc等函数的GFP标志决定的,如果在使用GFP_DMA或者__GFP_DMA标志来申请内存,那么得到的将是在ZONE_DMA中划分出来的内存。现在,虽然ISA设备已经减少了,大部分PCI设备可以访问32bit线宽的内存区域,ZONE_DMA的意义已经不能说直接和ISA关联,而是仅仅于GFP_DMA关联了。这个区域非常重要,不能用ZONE_NORMAL来替代,因为DMA操作在缓冲区大小大于PAGE_SIZE的时候,需要地址连续的物理内存,基本上只有在这个区域可以到的这样的内存;当然,ZONE_NORMAL和ZONE_DMA的实际界线是由water >> mark决定的,这个值在/proc/sys/../lowmem_reserved_ratio调整的。此外,ZONE_DMA在嵌入式设备的特殊体系结构上可以定义为不同的大小,不限于16M。看各个体系结构的arch/.../setup.c文件中bootmem相关内容。 >> > 没看出ZONE_NORMAL和ZONE_DMA的边界时由watermark决定的, > 也不是lowmem_reserved_ratio调整的。 > > btw, 我认为去掉ZONE_DMA几乎没有好处,即使不使用GFP_DMA, > 该内存还是可以被分配出去的。 > >> ZONE_DMA32是在64bit地址线宽的机器上使用的DMA区域,为什么叫作DMA32呢,因为目前PCI外部设备的bus >> address是32bit,DMA操作的时候从CPU的address到外设的bus >> address需要一个mask来转换,这个mask通常是将64bit地址映射/转换到32的设备的I/O >> memory上面前去,所以,有DMA32的说法。ia64体系结构上,DMA和DMA32是同样的区域。 >> > DMA和DMA32还是不一样的. > #ifdef CONFIG_ZONE_DMA32 > /* > * x86_64 needs two ZONE_DMAs because it supports devices that > * are > * only able to do DMA to the lower 16M but also 32 bit devices > * that > * can only do DMA areas below 4G. > */ > ZONE_DMA32, > #endif 你是对的,我想写ia64是笔误,是ia32,回这帖子那天已经很晚了,好晕,谢谢指正。 /大头阿当 > >> /大头阿当 >> >> -- >> Adam Jiang >> ----------------------------------- >> e-mail:jiang.adam在gmail.com >> http://www.adamjiang.com >> ----------------------------------- >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From yanan_111在163.com Thu Apr 8 19:55:49 2010 From: yanan_111在163.com (yanan_111) Date: Thu, 8 Apr 2010 19:55:49 +0800 Subject: helper_wq Message-ID: <201004081955490784914@163.com> 不知道那位大侠知道helper_wq的创建过程,能不能讲讲呀! 2010-04-08 yanan_111 From teklife.kernel在gmail.com Thu Apr 8 22:34:41 2010 From: teklife.kernel在gmail.com (tek-life) Date: Thu, 8 Apr 2010 22:34:41 +0800 Subject: =?GB2312?B?UmU6IFpPTkVfRE1BxNy5u9LGyKXDtD8=?= In-Reply-To: References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> <20100404083952.GA5636@hack> Message-ID: 恩。谢谢你的提醒。 好惭愧啊。其实Americo Wang 给我敲的那个命令,我偷懒了,输入查看了一下,呵呵,确实很多驱动程序还需要呢。另外我自己也总结了一下,过段时间,把总结出来的贴到博客上。 谢谢 Adam Jiang ,Americo Wang. 在 2010年4月8日 下午12:34,Adam Jiang 写道: > Hi, tek-life > > 2010/4/4 tek-life : > > 谢谢你的回复。 > > > 我产生这个问题的原因是,在看到ZONE数据结构的时候,分了3个区分别是:ZONE_DMA,ZONE_NORMAL,ZONE_HIGHMEM,在<深入理解LINUX内核》里面,它说设置这个区的原因是因为,ISA总线上的DMA控制器,直接用物理地址寻址的,只能寻址低16MB,于是,我就想,现在ISA早已经不用了(I810主板都已经将它淘汰了)。那为什么现在版本的Linux还要保留着这个ZONE_DMA呢?然后,我想,如果没有必要的话,在现在的PC机上跑的Linux不再单独为DMA设置这个区,可以么?所以,就产生了这个问题---ZONE_DMA在个人PC机上(当然是现在比较新的PC机了)还有没有存在的必要了。 > > Americo > Wang已经回到了你的问题。结论是ZONE_DMA是必要的。我想你应该仔细读一读上面的回复,你的问题被用不同的多个原因做出解释并且回答了。 > > 另外一个不能去掉ZONE_DMA的原因是,主板上某些设备可能需要ISA通信,ISA不仅仅发生在ISA卡的外设上。再次,这个ZONE在PC上不能少。 > > 好好读回复,要不然大家的热心都白费了。 > > /大头阿当 > -- > Adam Jiang > ----------------------------------- > e-mail:jiang.adam在gmail.com > http://www.adamjiang.com > ----------------------------------- > -- Laboratory of Service Computing Technology and System p-web:http://tek-life.org/blog QQ:150439216 From agnel.joel在gmail.com Fri Apr 9 04:29:59 2010 From: agnel.joel在gmail.com (Joel Fernandes) Date: Fri, 9 Apr 2010 01:59:59 +0530 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> Message-ID: Hi Venkatram, thanks for your wonderful explanation, I delayed asking further questions till I read every ones posts, its much clearer now. :) To make things clear, 896 MB is not a hardware limitation. The 3GB:1GB split > can be configured during the kernel build but the split cannot be changed > dynamically. > Actually someone further along in this thread mentioned that the value of LOWMEM / HIGHMEM can be a hardware constraint such as in the case of x86 > Hope this clears the confusion. > Surely does, thank you. I have one more question, the memory between 896MB and 1GB (128 MB) is actually the kernel virtual memory that is dynamically mapped to highmem using kmap or used for vmalloc/IO right? and the 896 MB of physically memory which is directly accessible is what contains the actual page tables that make accessing high mem using the 128MB kernel virtual address space possible right? You said page tables are stored in the 128 MB portion, I'm confused because the 128 MB is virtual and the page tables have to be stored in the 896 MB segment. no? -Joel From venkatram867在gmail.com Fri Apr 9 05:31:15 2010 From: venkatram867在gmail.com (Venkatram Tummala) Date: Thu, 8 Apr 2010 14:31:15 -0700 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBB7AC9.5060008@zytor.com> <4BBB8F07.60401@zytor.com> Message-ID: On Thu, Apr 8, 2010 at 1:29 PM, Joel Fernandes wrote: > Hi Venkatram, > thanks for your wonderful explanation, I delayed asking further questions > till I read every ones posts, its much clearer now. :) > > To make things clear, 896 MB is not a hardware limitation. The 3GB:1GB >> split can be configured during the kernel build but the split cannot be >> changed dynamically. >> > > Actually someone further along in this thread mentioned that the value of > LOWMEM / HIGHMEM can be a hardware constraint such as in the case of x86 > it is a hardware constraint in other architectures like MIPS, not x86. > > >> Hope this clears the confusion. >> > > Surely does, thank you. I have one more question, the memory between 896MB > and 1GB (128 MB) is actually the kernel virtual memory that is dynamically > mapped to highmem using kmap or used for vmalloc/IO right? and the 896 MB of > physically memory which is directly accessible is what contains the actual > page tables that make accessing high mem using the 128MB kernel virtual > address space possible right? > Correct > > You said page tables are stored in the 128 MB portion, I'm confused because > the 128 MB is virtual and the page tables have to be stored in the 896 MB > segment. no? > I was wrong, page tables are stored in the kernel data area as told by Chetan Nanda. > > -Joel > > From anfei.zhou在gmail.com Thu Apr 8 19:06:49 2010 From: anfei.zhou在gmail.com (anfei) Date: Thu, 8 Apr 2010 19:06:49 +0800 Subject: =?utf-8?B?Wk9ORV9ETUHog73lpJ/np7vljrs=?= =?utf-8?B?5LmIPw==?= In-Reply-To: References: <20100404051530.GA3012@hack> <20100404060400.GB3012@hack> <20100404083952.GA5636@hack> Message-ID: <20100408110649.GA4018@desktop> On Mon, Apr 05, 2010 at 01:57:27AM +0900, Adam Jiang wrote: > ZONE_DMA 最初的设计是为了服务ISA等设备的,在x86结构上,ISA设备的bus > address只有24bits,所以,它们只能访问前2^24=2^4*2^20=16M。但是,这个区域在代码中的实际意义确实有kmalloc等函数的GFP标志决定的,如果在使用GFP_DMA或者__GFP_DMA标志来申请内存,那么得到的将是在ZONE_DMA中划分出来的内存。现在,虽然ISA设备已经减少了,大部分PCI设备可以访问32bit线宽的内存区域,ZONE_DMA的意义已经不能说直接和ISA关联,而是仅仅于GFP_DMA关联了。这个区域非常重要,不能用ZONE_NORMAL来替代,因为DMA操作在缓冲区大小大于PAGE_SIZE的时候,需要地址连续的物理内存,基本上只有在这个区域可以到的这样的内存;当然,ZONE_NORMAL和ZONE_DMA的实际界线是由water > mark决定的,这个值在/proc/sys/../lowmem_reserved_ratio调整的。此外,ZONE_DMA在嵌入式设备的特殊体系结构上可以定义为不同的大小,不限于16M。看各个体系结构的arch/.../setup.c文件中bootmem相关内容。 > 没看出ZONE_NORMAL和ZONE_DMA的边界时由watermark决定的, 也不是lowmem_reserved_ratio调整的。 btw, 我认为去掉ZONE_DMA几乎没有好处,即使不使用GFP_DMA, 该内存还是可以被分配出去的。 > ZONE_DMA32是在64bit地址线宽的机器上使用的DMA区域,为什么叫作DMA32呢,因为目前PCI外部设备的bus > address是32bit,DMA操作的时候从CPU的address到外设的bus > address需要一个mask来转换,这个mask通常是将64bit地址映射/转换到32的设备的I/O > memory上面前去,所以,有DMA32的说法。ia64体系结构上,DMA和DMA32是同样的区域。 > DMA和DMA32还是不一样的. #ifdef CONFIG_ZONE_DMA32 /* * x86_64 needs two ZONE_DMAs because it supports devices that * are * only able to do DMA to the lower 16M but also 32 bit devices * that * can only do DMA areas below 4G. */ ZONE_DMA32, #endif > /大头阿当 > > -- > Adam Jiang > ----------------------------------- > e-mail:jiang.adam在gmail.com > http://www.adamjiang.com > ----------------------------------- > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From lkml.himanshu在gmail.com Fri Apr 9 01:03:27 2010 From: lkml.himanshu在gmail.com (Himanshu Aggarwal) Date: Thu, 8 Apr 2010 22:33:27 +0530 Subject: why choose 896MB to the start point of ZONE_HIGHMEM In-Reply-To: References: <4BBBE976.1000603@zytor.com> <4BBCBD8B.6070701@zytor.com> Message-ID: On Thu, Apr 8, 2010 at 7:53 AM, Nobin Mathew wrote: > On Wed, Apr 7, 2010 at 10:44 PM, H. Peter Anvin wrote: > > On 04/07/2010 09:48 AM, Himanshu Aggarwal wrote: > >> I think for some architectures, the position of highmem is constrained > >> by hardware as well. It is not always a kernel decision and not always > >> configurable as in case of x86. > > > > > > This is correct. > > > >> In case of MIPS32, low memory is between 0 and 512 MB and high memory > >> starts above 512 MB. Also the user space is of size 2 GB. > >> > >> Please see the definition of macros PAGE_OFFSET and HIGHMEM_START at : > >> > http://lxr.linux.no/linux+v2.6.33/arch/mips/include/asm/mach-generic/spaces.h > > > > Right so far... > > > >> This is because MIPS32 processors have KSEG0 and KSEG1 segments lying > >> between 0 and 512 MB and KSEG2/3 lies above it. > >> > >> May be someone on the group can confirm this. > > > > Wrong. I have to say this thread has been just astonishing in the > > amount of misinformation. > > > > On MIPS32, userspace is 0-2 GB, kseg0 is 2.0-2.5 GB and kseg1 is 2.5-3.0 > > GB. kseg2/3 (3.0-4.0 GB), which invokes the TLB, is used for the > > vmalloc/iomap/kmap area. > > > > LOWMEM has to fit inside kseg0, so LOWMEM is limited to 512 MB in thie > > current Linux implementation. > > http://www.johnloomis.org/microchip/pic32/memory/memory.html > > So what is the memory division here in mips, again 1:3? > > kseg2 is already 1 GB address space? > > > -Nobin > I think for MIPS32 it should be 1:1. 2 GB user space and 2GB kernel space. If it is correct, I was just wondering : Isn't 2 GB user space for MIPS32 not "less" or "insufficient" as compared to 3 GB for i386 etc. ~Himanshu Aggarwal From wanglh在nec-as.nec.com.cn Fri Apr 9 11:30:15 2010 From: wanglh在nec-as.nec.com.cn (wanglh) Date: Fri, 09 Apr 2010 11:30:15 +0800 Subject: super =?GB2312?B?YmxvY2vDu9PQyrXKsbj80MI=?= Message-ID: <4BBE9F47.7020009@nec-as.nec.com.cn> 请问大家: 我通过读superblock(第二个sector开始的1K) 来读文件系统(ext3)的block使用情况,当往文件系统里写了数据, 通过df看到的使用量会实时增加,但是通过读superblock却不能更新。 请问什么办法可以实时读出正确的信息? 我加了fsync_bdev()也不好使。 From jiang.adam在gmail.com Fri Apr 9 13:34:58 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Fri, 9 Apr 2010 14:34:58 +0900 Subject: =?GB2312?B?Q2hhctDNyeixuMf9tq/U9dH51qez1rbguPbJ6LG4o78=?= Message-ID: Hi, 大家好。 我正在写某个Char型设备的驱动,这个驱动中需要支持多个设备,当然,这些设备的major设备号是一样的,而minor设备号从0开始递增到10。比如, /dev/foo1 100 0 /dev/foo2 100 1 ... /dev/foo10 100 9 我们现在已经有一个解决方案,在这个驱动中支持多个设备,采用的方法是在模块初始化时使用函数 if (dev.major) { result = register_chrdev(dev.major, "driver", dev.fops); } 这样注册的。然后,在每fops的每个操作中,都首先使用 minor = minor(inode); 取出minor设备号才进行相应的读写或者ioctl操作。但是LDD3中提到,这种注册方法十分老旧,鼓励驱动程序采用新的注册方法,也就是 cdev foo_cdev; int devno = MKDEV(dev.major,0) cdev_init(foo_cdev); cdev_add(&foo_cdev, MAJOR(devno), 10); 这种方式注册;我想到代码肯以通过这种方式得到改进,因为原来的方法随人可以登记10个字符设备,但是他们事实上用了同一个dev结构体共享变量,导致锁非查多。我想采用这种新方法登记10个字符设备并且在驱动中保存10个dev变量本别响应这些设备。这样可以让并行运行的可能性提高,因为没有理由在访问设备foo1的时候锁住foo2需要的数据。但是,不知道这样的方法如何实现才是最好的?在内核代码中有没有类似的例子可以参照? P.S. 其实LDD3中给出的scull就是一个类似的例子,但是因为太简单了,提到的内容较少。 谢谢。 /大头阿当 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From taoma.tm在gmail.com Fri Apr 9 13:55:26 2010 From: taoma.tm在gmail.com (Tao Ma) Date: Fri, 9 Apr 2010 13:55:26 +0800 Subject: =?GB2312?B?UmU6IHN1cGVyIGJsb2Nrw7vT0Mq1yrG4/NDC?= In-Reply-To: <4BBE9F47.7020009@nec-as.nec.com.cn> References: <4BBE9F47.7020009@nec-as.nec.com.cn> Message-ID: fsync_bdev应该可以工作的, 你试试sync(2)好使么? 如果可以的话,可能你的fsync_bdev参数有问题 2010/4/9 wanglh > 请问大家: > 我通过读superblock(第二个sector开始的1K) > 来读文件系统(ext3)的block使用情况,当往文件系统里写了数据, > 通过df看到的使用量会实时增加,但是通过读superblock却不能更新。 > 请问什么办法可以实时读出正确的信息? > 我加了fsync_bdev()也不好使。 > > > > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From jiuxian_chu在foxmail.com Fri Apr 9 16:02:42 2010 From: jiuxian_chu在foxmail.com (=?gbk?B?uLvC+szD?=) Date: Fri, 9 Apr 2010 16:02:42 +0800 Subject: =?gbk?B?x+vOynN5bmNocm9uaXphdGlvbiBwYXJ0bmVyysc=?= =?gbk?B?yrLDtLartqs=?= Message-ID: 大家好: 我刚接触MTP(media transfer proctocl)协议,关于device property中有synchronization partner。协议里介绍的是 This device property specifies a human-readable, friendly name of a synchronization partner for the portable media player. A synchronization partner can be either another device, a software application on a device, or a server on a network. This is a get-only property. 我看了上面的介绍,还是搞不明白synchronization partner具体是做什么用的。 请了解的人介绍一下。 非常感谢。 From hzpeterchen在gmail.com Fri Apr 9 16:36:07 2010 From: hzpeterchen在gmail.com (Peter Chen) Date: Fri, 09 Apr 2010 16:36:07 +0800 Subject: =?UTF-8?B?Q2hhcuWei+iuvuWkh+mpseWKqOaAjuagt+aUr+aMgeWkmuS4quiuvg==?= =?UTF-8?B?5aSH77yf?= In-Reply-To: References: Message-ID: <4BBEE6F7.2000204@gmail.com> 试着用platform device + platform driver的方式, 然后让一个平台驱动对应多 个平台设备,将cdev的结构作为每个platform device private data的内容. 当platform_driver_register的时候,就会将platform bus上多个名字相同的 platform device进行关联, driver的probe函数也会被每个device都调用一次. Adam Jiang wrote: > Hi, 大家好。 > > 我正在写某个Char型设备的驱动,这个驱动中需要支持多个设备,当然,这些设备的major设备号是一样的,而minor设备号从0开始递增到10。比如, > > /dev/foo1 100 0 > /dev/foo2 100 1 > ... > /dev/foo10 100 9 > > 我们现在已经有一个解决方案,在这个驱动中支持多个设备,采用的方法是在模块初始化时使用函数 > > if (dev.major) { > result = register_chrdev(dev.major, "driver", dev.fops); > } > > 这样注册的。然后,在每fops的每个操作中,都首先使用 minor = minor(inode); > 取出minor设备号才进行相应的读写或者ioctl操作。但是LDD3中提到,这种注册方法十分老旧,鼓励驱动程序采用新的注册方法,也就是 > > cdev foo_cdev; > > int devno = MKDEV(dev.major,0) > > cdev_init(foo_cdev); > cdev_add(&foo_cdev, MAJOR(devno), 10); > > 这种方式注册;我想到代码肯以通过这种方式得到改进,因为原来的方法随人可以登记10个字符设备,但是他们事实上用了同一个dev结构体共享变量,导致锁非查多。我想采用这种新方法登记10个字符设备并且在驱动中保存10个dev变量本别响应这些设备。这样可以让并行运行的可能性提高,因为没有理由在访问设备foo1的时候锁住foo2需要的数据。但是,不知道这样的方法如何实现才是最好的?在内核代码中有没有类似的例子可以参照? > > P.S. 其实LDD3中给出的scull就是一个类似的例子,但是因为太简单了,提到的内容较少。 > > 谢谢。 > > /大头阿当 -- Best regards, Peter Chen From lzy.dev在gmail.com Fri Apr 9 17:19:17 2010 From: lzy.dev在gmail.com (=?UTF-8?B?5YiY55+l6KiA?=) Date: Fri, 9 Apr 2010 17:19:17 +0800 Subject: =?UTF-8?B?6K+35pWZ5Yeg5LiqZ2Nj57yW6K+R5bGe5oCn?= Message-ID: Hi, all: # define __acquires(x) __attribute__((exact_context(x,0,1))) # define __releases(x) __attribute__((exact_context(x,1,0))) # define __with_lock_acquired(x) __attribute__((exact_context(x,1,1))) # define __acquire(x) __context__(x,1,0) # define __release(x) __context__(x,-1,1) 这几个gcc属性表示什么意思? 那位支持下,谢谢! 以上 From jiang.adam在gmail.com Fri Apr 9 18:51:07 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Fri, 9 Apr 2010 19:51:07 +0900 Subject: =?GB2312?B?UmU6IENoYXLQzcnosbjH/bav1PXR+dans9a24Lj2yeixuKO/?= In-Reply-To: <4BBEE6F7.2000204@gmail.com> References: <4BBEE6F7.2000204@gmail.com> Message-ID: 2010/4/9 Peter Chen : > 试着用platform device + platform driver的方式, 然后让一个平台驱动对应多 > 个平台设备,将cdev的结构作为每个platform device private data的内容. > > 当platform_driver_register的时候,就会将platform bus上多个名字相同的 platform device进行关联, > driver的probe函数也会被每个device都调用一次. Bingo! You're great Peter! 这正是我要寻找的方法,platform_device就是为了代替比较旧的port_base_device设计的,你一语中的阿,佩服佩服。非常感谢。 /大头阿当 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From r58472在freescale.com Fri Apr 9 19:16:09 2010 From: r58472在freescale.com (Li Yang-R58472) Date: Fri, 9 Apr 2010 19:16:09 +0800 Subject: =?utf-8?B?UkU6IOivt+aVmeWHoOS4qmdjY+e8luivkeWxnuaApw==?= In-Reply-To: References: Message-ID: <3A45394FD742FA419B760BB8D398F9ED017AF6B2@zch01exm26.fsl.freescale.net> >Subject: 请教几个gcc编译属性 > >Hi, all: > ># define __acquires(x) __attribute__((exact_context(x,0,1))) ># define __releases(x) __attribute__((exact_context(x,1,0))) ># define __with_lock_acquired(x) __attribute__((exact_context(x,1,1))) ># define __acquire(x) __context__(x,1,0) ># define __release(x) __context__(x,-1,1) > >这几个gcc属性表示什么意思? 这些不是gcc的属性,是给sparse工具用的。 sparse可以通过这些属性帮助检查程序是否有逻辑错误。 - Leo From dragonlinux在gmail.com Fri Apr 9 20:34:16 2010 From: dragonlinux在gmail.com (yao zhao) Date: Fri, 9 Apr 2010 08:34:16 -0400 Subject: wireless Message-ID: HI, I am porting Linux rt28xx driver to another OS but no too much experience with wireless. Can anyone suggest some wireless books like wireless driver, wireless stack or some basic 802.11 book. Some other questions: 1. does iwlagn support AP mode in 2.6.31? I am setting up an AP to debug some problems in the group handshake. In group handshake, I have captured the last eapol from my driver to ap and it is corrected encrypted(wireshark decrypted it and the message is same from wpa_supplicant so I say it is encrypted correctly) but it seems AP didn't receive it, after 3 eapols from AP I got deauth from the AP. so I want to set up an AP to debug AP side to see what is wrong. I am using wpa-psk. I am compiling trunk kernel code to see whether it supports. 2. null frame: if clients get null frame from ap, should hw reply or stack? 3. sometimes I see "drop TX EAPOL in non-IEEE 802.1x mode" message in wpa_supplicant log, what is this? 4. for which hw can do encrypt/decrypt, will it send some encrypted broadcast? sometimes I see hw will send encrypted broadcast in authentication procedure(random in 4way handshake or group handshake) and I am not sure what it is. I put debug info in driver tx routine and I didn't see these. sorry probably not all questions related to Linux kernel. thanks, yao From linkn.lin在gmail.com Fri Apr 9 22:31:51 2010 From: linkn.lin在gmail.com (Corey) Date: Fri, 9 Apr 2010 22:31:51 +0800 Subject: =?utf-8?Q?=E7=AD=94=E5=A4=8D:_wireless?= In-Reply-To: References: Message-ID: <4bbf3a5e.9613f30a.1d55.52d4@mx.google.com> HI, Wireshark can't capture wireless packets, you can use Omnipeek tool with RT2770 to capture wireless packets . If you can't get support of Ralink , I recommend you use SoftAP of RT3070 USB card. Corey. -----邮件原件----- 发件人: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] 代表 yao zhao 发送时间: 2010年4月9日 20:34 收件人: zh-kernel 主题: wireless HI, I am porting Linux rt28xx driver to another OS but no too much experience with wireless. Can anyone suggest some wireless books like wireless driver, wireless stack or some basic 802.11 book. Some other questions: 1. does iwlagn support AP mode in 2.6.31? I am setting up an AP to debug some problems in the group handshake. In group handshake, I have captured the last eapol from my driver to ap and it is corrected encrypted(wireshark decrypted it and the message is same from wpa_supplicant so I say it is encrypted correctly) but it seems AP didn't receive it, after 3 eapols from AP I got deauth from the AP. so I want to set up an AP to debug AP side to see what is wrong. I am using wpa-psk. I am compiling trunk kernel code to see whether it supports. 2. null frame: if clients get null frame from ap, should hw reply or stack? 3. sometimes I see "drop TX EAPOL in non-IEEE 802.1x mode" message in wpa_supplicant log, what is this? 4. for which hw can do encrypt/decrypt, will it send some encrypted broadcast? sometimes I see hw will send encrypted broadcast in authentication procedure(random in 4way handshake or group handshake) and I am not sure what it is. I put debug info in driver tx routine and I didn't see these. sorry probably not all questions related to Linux kernel. thanks, yao _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From dragonlinux在gmail.com Fri Apr 9 22:37:31 2010 From: dragonlinux在gmail.com (yao zhao) Date: Fri, 9 Apr 2010 10:37:31 -0400 Subject: =?GB2312?B?UmU6ILTwuLQ6IHdpcmVsZXNz?= In-Reply-To: <4bbf3a5e.9613f30a.1d55.52d4@mx.google.com> References: <4bbf3a5e.9613f30a.1d55.52d4@mx.google.com> Message-ID: Thanks for your reply. I am using iwlagn running in monitor mode on my laptop so it can capture that channel's wireless packet. thanks, yao On Fri, Apr 9, 2010 at 10:31 AM, Corey wrote: > HI, > > > Wireshark can't capture wireless packets, you can use Omnipeek tool > with RT2770 to capture wireless packets . > If you can't get support of Ralink , I recommend you use SoftAP of > RT3070 USB card. > > Corey. > > -----邮件原件----- > 发件人: linux-kernel-bounces在zh-kernel.org [mailto: > linux-kernel-bounces在zh-kernel.org] 代表 yao zhao > 发送时间: 2010年4月9日 20:34 > 收件人: zh-kernel > 主题: wireless > > HI, > > I am porting Linux rt28xx driver to another OS but no too much experience > with wireless. Can anyone suggest some wireless books like wireless driver, > wireless stack or some basic 802.11 book. > > Some other questions: > 1. does iwlagn support AP mode in 2.6.31? I am setting up an AP to debug > some problems in the group handshake. In group handshake, I have captured > the last eapol from my driver to ap and it is corrected encrypted(wireshark > decrypted it and the message is same from wpa_supplicant so I say it is > encrypted correctly) but it seems AP didn't receive it, after 3 eapols from > AP I got deauth from the AP. so I want to set up an AP to debug AP side to > see what is wrong. I am using wpa-psk. I am compiling trunk kernel code to > see whether it supports. > 2. null frame: if clients get null frame from ap, should hw reply or stack? > 3. sometimes I see "drop TX EAPOL in non-IEEE 802.1x mode" message in > wpa_supplicant log, what is this? > 4. for which hw can do encrypt/decrypt, will it send some encrypted > broadcast? sometimes I see hw will send encrypted broadcast in > authentication procedure(random in 4way handshake or group handshake) and I > am not sure what it is. I put debug info in driver tx routine and I didn't > see these. > > sorry probably not all questions related to Linux kernel. > > thanks, > yao > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > > From wen_kernel在163.com Fri Apr 9 22:51:02 2010 From: wen_kernel在163.com (=?utf-8?B?V2VueHk=?=) Date: Fri, 9 Apr 2010 22:51:02 +0800 Subject: =?utf-8?B?UmU6IOetlOWkjTpfd2lyZWxlc3M=?= References: , <4bbf3a5e.9613f30a.1d55.52d4@mx.google.com> Message-ID: <201004092251004842901@163.com> Hi, linkn.lin BTW., not selected "capture packets in promiscuous mode" in Capture Optinons Window", then you can capture all network packages that belong to locak NIC. >HI, > > > Wireshark can't capture wireless packets, you can use Omnipeek tool with RT2770 to capture wireless packets . > If you can't get support of Ralink , I recommend you use SoftAP of RT3070 USB card. > > Corey. > >-----邮件原件----- >发件人: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] 代表 yao zhao >发送时间: 2010年4月9日 20:34 >收件人: zh-kernel >主题: wireless > >HI, > >I am porting Linux rt28xx driver to another OS but no too much experience >with wireless. Can anyone suggest some wireless books like wireless driver, >wireless stack or some basic 802.11 book. > >Some other questions: >1. does iwlagn support AP mode in 2.6.31? I am setting up an AP to debug >some problems in the group handshake. In group handshake, I have captured >the last eapol from my driver to ap and it is corrected encrypted(wireshark >decrypted it and the message is same from wpa_supplicant so I say it is >encrypted correctly) but it seems AP didn't receive it, after 3 eapols from >AP I got deauth from the AP. so I want to set up an AP to debug AP side to >see what is wrong. I am using wpa-psk. I am compiling trunk kernel code to >see whether it supports. >2. null frame: if clients get null frame from ap, should hw reply or stack? >3. sometimes I see "drop TX EAPOL in non-IEEE 802.1x mode" message in >wpa_supplicant log, what is this? >4. for which hw can do encrypt/decrypt, will it send some encrypted >broadcast? sometimes I see hw will send encrypted broadcast in >authentication procedure(random in 4way handshake or group handshake) and I >am not sure what it is. I put debug info in driver tx routine and I didn't >see these. > >sorry probably not all questions related to Linux kernel. > >thanks, >yao >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org > >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org Best regards, Wenxy, 2010-04-09, 22:46:24. Email: wen_kernel在163.com Blog: http://blog.csdn.net/wenxy1 From 412295176在qq.com Sun Apr 11 15:53:36 2010 From: 412295176在qq.com (=?gbk?B?xaG3osz1xPE=?=) Date: Sun, 11 Apr 2010 15:53:36 +0800 Subject: =?gbk?B?x+u9zLnY09pncGlvyerH69f3zqrW0LbP1LS1xM7K?= =?gbk?B?zOI=?= Message-ID: 大家好, 我在给Imote2板子写cc2420的驱动程序,需要把PXA271的gpio0设置为中断源。在imote2.c文件中已经通过MFP功能把GPIO0设置为GPIO功能。然后在cc2420中spi的probe函数中先gpio_requeset,然后调用gpio_to_irq保存中断向量,最后request_irq申请中断,这在2.6.32内核里没有问题,但是到了2.6.33后就出现问题了,首先是gpio_request函数出错: cc2420: probe of spi3.0 failed with error -16 如果注释掉gpio_request这句话,那么request_irq会出错: pxa_set_low_gpio_type failed: GPIO is configured setting trigger mode 1 for irq 8 failed (pxa_set_low_gpio_type+0x0/0x154) cc2420 spi3.0: could not get fifop irq for some reason? ------------[ cut here ]------------ WARNING: at kernel/irq/manage.c:858 __free_irq+0x80/0x160() Trying to free already-free IRQ 8 Modules linked in: cc2420(+) pxa2xx_spi ssp [last unloaded: helloworld] [] (unwind_backtrace+0x0/0xdc) from [] (warn_slowpath_common+0x4c/0x80) [] (warn_slowpath_common+0x4c/0x80) from [] (warn_slowpath_fmt+0x28/0x38) [] (warn_slowpath_fmt+0x28/0x38) from [] (__free_irq+0x80/0x160) [] (__free_irq+0x80/0x160) from [] (free_irq+0x3c/0x5c) [] (free_irq+0x3c/0x5c) from [] (cc2420_probe+0x528/0x60c [cc2420]) [] (cc2420_probe+0x528/0x60c [cc2420]) from [] (spi_drv_probe+0x1c/0x24) [] (spi_drv_probe+0x1c/0x24) from [] (driver_probe_device+0x110/0x224) [] (driver_probe_device+0x110/0x224) from [] (__driver_attach+0x60/0x84) [] (__driver_attach+0x60/0x84) from [] (bus_for_each_dev+0x4c/0x8c) [] (bus_for_each_dev+0x4c/0x8c) from [] (bus_add_driver+0xac/0x238) [] (bus_add_driver+0xac/0x238) from [] (driver_register+0xc0/0x150) [] (driver_register+0xc0/0x150) from [] (do_one_initcall+0x5c/0x1c0) [] (do_one_initcall+0x5c/0x1c0) from [] (sys_init_module+0xc0/0x1f0) [] (sys_init_module+0xc0/0x1f0) from [] (ret_fast_syscall+0x0/0x28) ---[ end trace 1b75b31a2719ed1e ]--- cc2420: probe of spi3.0 failed with error -22 请问如何解决这种问题呢,谢谢 附件有cc2420的驱动源码 From jiang.adam在gmail.com Mon Apr 12 11:11:43 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Mon, 12 Apr 2010 12:11:43 +0900 Subject: =?GB2312?B?UmU6IENoYXLQzcnosbjH/bav1PXR+dans9a24Lj2yeixuKO/?= In-Reply-To: <4BBEE6F7.2000204@gmail.com> References: <4BBEE6F7.2000204@gmail.com> Message-ID: 2010/4/9 Peter Chen : > 试着用platform device + platform driver的方式, 然后让一个平台驱动对应多 > 个平台设备,将cdev的结构作为每个platform device private data的内容. > > 当platform_driver_register的时候,就会将platform bus上多个名字相同的 platform device进行关联, > driver的probe函数也会被每个device都调用一次. > Hi, Peter 星期天的时候我仔细看了一下platform_device和platform_driver,似乎这个距离我想要的东西还有一段距离。因为,plafrom_bus提供了一种虚拟bus把设备连接起来的,而我的设备确确实实在pci bus上,它的probe可以用pci_driver和pci_register_driver注册,似乎不需要platform_driver提供的probe等函数。 这个dirver是驱动一个在pci bus上的设备,同时它又是多个Char设备的驱动程序,所以,似乎有点难搞。现在我采用的数据结构是 typedef struct port{ int filed1; char filed2; struct mutex port_mutex; ... } port_t; struct foo_device { pci_dev pdev; spin_lock_t spin_lock; port_t port[10]; /**< 10 devices */ } foo_dev; 如果从userspace过来的requst,只有先判断它的minor设备号才取得相应的port[minor(inode)]来操作的,所以效率相当低下...... 所以,我想将数据结构变更为 struct foo_device { int filed1; /**< what's in port_t originally */ char filed2; struct mutex dev_mutex; }; struct foo_device devices[10]; 继续寻找更好的解决办法。 /大头阿当 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- > Adam Jiang wrote: >> >> Hi, 大家好。 >> >> 我正在写某个Char型设备的驱动,这个驱动中需要支持多个设备,当然,这些设备的major设备号是一样的,而minor设备号从0开始递增到10。比如, >> >> /dev/foo1 100 0 >> /dev/foo2 100 1 >> ... >> /dev/foo10 100 9 >> >> 我们现在已经有一个解决方案,在这个驱动中支持多个设备,采用的方法是在模块初始化时使用函数 >> >> if (dev.major) { >> result = register_chrdev(dev.major, "driver", dev.fops); >> } >> >> 这样注册的。然后,在每fops的每个操作中,都首先使用 minor = minor(inode); >> 取出minor设备号才进行相应的读写或者ioctl操作。但是LDD3中提到,这种注册方法十分老旧,鼓励驱动程序采用新的注册方法,也就是 >> >> cdev foo_cdev; >> >> int devno = MKDEV(dev.major,0) >> >> cdev_init(foo_cdev); >> cdev_add(&foo_cdev, MAJOR(devno), 10); >> >> >> 这种方式注册;我想到代码肯以通过这种方式得到改进,因为原来的方法随人可以登记10个字符设备,但是他们事实上用了同一个dev结构体共享变量,导致锁非查多。我想采用这种新方法登记10个字符设备并且在驱动中保存10个dev变量本别响应这些设备。这样可以让并行运行的可能性提高,因为没有理由在访问设备foo1的时候锁住foo2需要的数据。但是,不知道这样的方法如何实现才是最好的?在内核代码中有没有类似的例子可以参照? >> >> P.S. 其实LDD3中给出的scull就是一个类似的例子,但是因为太简单了,提到的内容较少。 >> >> 谢谢。 >> >> /大头阿当 > > -- > Best regards, > Peter Chen > From jack_wang在usish.com Mon Apr 12 11:21:42 2010 From: jack_wang在usish.com (jack wang) Date: Mon, 12 Apr 2010 11:21:42 +0800 Subject: =?gb2312?B?tPC4tDogQ2hhctDNyeixuMf9tq/U9dH51qez1rbguPbJ6LG4o78=?= In-Reply-To: References: <4BBEE6F7.2000204@gmail.com> Message-ID: <066E59AA95524CD2B624162B9CF41D0D@usish.com.cn> -----邮件原件----- 发件人: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] 代表 Adam Jiang 发送时间: 2010年4月12日 11:12 收件人: Peter Chen 抄送: 中文内核邮件列表 主题: Re: Char型设备驱动怎样支持多个设备? 2010/4/9 Peter Chen : > 试着用platform device + platform driver的方式, 然后让一个平台驱动对应多 > 个平台设备,将cdev的结构作为每个platform device private data的内容. > > 当platform_driver_register的时候,就会将platform bus上多个名字相同的 platform device进行关联, > driver的probe函数也会被每个device都调用一次. > Hi, Peter 星期天的时候我仔细看了一下platform_device和platform_driver,似乎这个距离我想 要的东西还有一段距离。因为,plafrom_bus提供了一种虚拟bus把设备连接起来的,而 我的设备确确实实在pci bus上,它的probe可以用pci_driver和pci_register_driver注册,似乎不需要 platform_driver提供的probe等函数。 这个dirver是驱动一个在pci bus上的设备,同时它又是多个Char设备的驱动程序,所 以,似乎有点难搞。现在我采用的数据结构是 typedef struct port{ int filed1; char filed2; struct mutex port_mutex; ... } port_t; struct foo_device { pci_dev pdev; spin_lock_t spin_lock; port_t port[10]; /**< 10 devices */ } foo_dev; 如果从userspace过来的requst,只有先判断它的minor设备号才取得相应的 port[minor(inode)]来操作的,所以效率相当低下...... 所以,我想将数据结构变更为 struct foo_device { int filed1; /**< what's in port_t originally */ char filed2; struct mutex dev_mutex; }; struct foo_device devices[10]; 继续寻找更好的解决办法。 /大头阿当 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- 是pci的多功能设备? Best Regards ************************************************************************ Jack Wang > Adam Jiang wrote: >> >> Hi, 大家好。 >> >> 我正在写某个Char型设备的驱动,这个驱动中需要支持多个设备,当然,这些设备 的major设备号是一样的,而minor设备号从0开始递增到10。比如, >> >> /dev/foo1 100 0 >> /dev/foo2 100 1 >> ... >> /dev/foo10 100 9 >> >> 我们现在已经有一个解决方案,在这个驱动中支持多个设备,采用的方法是在模块 初始化时使用函数 >> >> if (dev.major) { >> result = register_chrdev(dev.major, "driver", dev.fops); >> } >> >> 这样注册的。然后,在每fops的每个操作中,都首先使用 minor = minor(inode); >> 取出minor设备号才进行相应的读写或者ioctl操作。但是LDD3中提到,这种注册方 法十分老旧,鼓励驱动程序采用新的注册方法,也就是 >> >> cdev foo_cdev; >> >> int devno = MKDEV(dev.major,0) >> >> cdev_init(foo_cdev); >> cdev_add(&foo_cdev, MAJOR(devno), 10); >> >> >> 这种方式注册;我想到代码肯以通过这种方式得到改进,因为原来的方法随人可以 登记10个字符设备,但是他们事实上用了同一个dev结构体共享变量,导致锁非查多。 我想采用这种新方法登记10个字符设备并且在驱动中保存10个dev变量本别响应这些设 备。这样可以让并行运行的可能性提高,因为没有理由在访问设备foo1的时候锁住foo2 需要的数据。但是,不知道这样的方法如何实现才是最好的?在内核代码中有没有类似 的例子可以参照? >> >> P.S. 其实LDD3中给出的scull就是一个类似的例子,但是因为太简单了,提到的内 容较少。 >> >> 谢谢。 >> >> /大头阿当 > > -- > Best regards, > Peter Chen > _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From jiang.adam在gmail.com Mon Apr 12 11:35:08 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Mon, 12 Apr 2010 12:35:08 +0900 Subject: =?GB2312?B?UmU6ILTwuLQ6IENoYXLQzcnosbjH/bav1PXR+dans9a24Lj2yeg=?= =?GB2312?B?sbijvw==?= In-Reply-To: <066E59AA95524CD2B624162B9CF41D0D@usish.com.cn> References: <4BBEE6F7.2000204@gmail.com> <066E59AA95524CD2B624162B9CF41D0D@usish.com.cn> Message-ID: 2010/4/12 jack wang : > 是pci的多功能设备? 事实上是一个ASIC芯片,挂在PCI设备上,的确是多功能的,但是和PCI的function却不是一个意思...... -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From jack_wang在usish.com Mon Apr 12 11:45:36 2010 From: jack_wang在usish.com (jack wang) Date: Mon, 12 Apr 2010 11:45:36 +0800 Subject: =?gb2312?B?tPC4tDogtPC4tDogQ2hhctDNyeixuMf9tq/U9dH51qez1rbguPbJ6LG4o78=?= In-Reply-To: References: <4BBEE6F7.2000204@gmail.com> <066E59AA95524CD2B624162B9CF41D0D@usish.com.cn> Message-ID: -----邮件原件----- 发件人: Adam Jiang [mailto:jiang.adam在gmail.com] 发送时间: 2010年4月12日 11:35 收件人: jack wang 抄送: Peter Chen; 中文内核邮件列表 主题: Re: 答复: Char型设备驱动怎样支持多个设备? 2010/4/12 jack wang : > 是pci的多功能设备? 事实上是一个ASIC芯片,挂在PCI设备上,的确是多功能的,但是和PCI的function却不 是一个意思...... -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- 以为是pci的多功能设备呢,那就不知道了 Best Regards ************************ From hzpeterchen在gmail.com Mon Apr 12 11:47:41 2010 From: hzpeterchen在gmail.com (Peter Chen) Date: Mon, 12 Apr 2010 11:47:41 +0800 Subject: =?GB2312?B?Q2hhctDNyeixuMf9tq/U9dH51qez1rbguPbJ6LG4o78=?= In-Reply-To: References: <4BBEE6F7.2000204@gmail.com> Message-ID: <4BC297DD.2070209@gmail.com> Adam Jiang wrote: > 2010/4/9 Peter Chen : >> 试着用platform device + platform driver的方式, 然后让一个平台驱动对应多 >> 个平台设备,将cdev的结构作为每个platform device private data的内容. >> >> 当platform_driver_register的时候,就会将platform bus上多个名字相同的 platform device进行关联, >> driver的probe函数也会被每个device都调用一次. >> > > Hi, Peter > > 星期天的时候我仔细看了一下platform_device和platform_driver,似乎这个距离我想要的东西还有一段距离。因为,plafrom_bus提供了一种虚拟bus把设备连接起来的,而我的设备确确实实在pci > bus上,它的probe可以用pci_driver和pci_register_driver注册,似乎不需要platform_driver提供的probe等函数。 > 在platform driver的probe里调用每个pci设备的pci_register_driver. 对cdev的处理,可以如下: cdev_init(&(port->cdev), &port_fops); cdev_add的时候用platform_device里 data传入的从设备号. 在你的arch/arm/mach-xxx/device.c里要有10个platofrm_device结构, 每个结构 的data可以在platform driver probe的时候传给driver. > 这个dirver是驱动一个在pci bus上的设备,同时它又是多个Char设备的驱动程序,所以,似乎有点难搞。现在我采用的数据结构是 > > typedef struct port{ > int filed1; > char filed2; > struct mutex port_mutex; > ... > } port_t; > > struct foo_device { > pci_dev pdev; > spin_lock_t spin_lock; > port_t port[10]; /**< 10 devices */ > } foo_dev; > 可以将你的port作为driver data, 在probe的时候赋值好,然后用 platform_set_drvdata(pdev, port)保存. 在要用的时候(比如suspend, resume, remove, shutdown等) 用struct xxx_port *port = platform_get_drvdata(pdev); 得到你的driver data (也就是port) > 如果从userspace过来的requst,只有先判断它的minor设备号才取得相应的port[minor(inode)]来操作的,所以效率相当低下...... > 所以,我想将数据结构变更为 > > struct foo_device { > int filed1; /**< what's in port_t originally */ > char filed2; > struct mutex dev_mutex; > }; > struct foo_device devices[10]; > > 继续寻找更好的解决办法。 > > /大头阿当 -- Best regards, Peter Chen From yangoliver在gmail.com Mon Apr 12 11:56:18 2010 From: yangoliver在gmail.com (oliver yang) Date: Mon, 12 Apr 2010 11:56:18 +0800 Subject: =?UTF-8?B?T3JhY2xlL1NVTiDmi5vogZjnnJ/mraPnmoTlhoXmoLjlvIDlj5E=?= Message-ID: 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX 驱动程序和内核IO子系统PCI/Interrupt/DMA的实現。 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 此职位不适合工作经验少于5年的朋友。谢谢。 -- Cheers, Oliver Yang Twitter: http://twitter.com/yangoliver Blog: http://blog.csdn.net/yayong -------------------------------------------------------------------- An OpenSolaris Developer From qingshenlwy在gmail.com Mon Apr 12 12:05:50 2010 From: qingshenlwy在gmail.com (Liuwenyi) Date: Mon, 12 Apr 2010 12:05:50 +0800 Subject: Oracle/SUN =?UTF-8?B?5oub6IGY55yf5q2j55qE5YaF5qC45byA5Y+R?= In-Reply-To: References: Message-ID: <4BC29C1E.7010709@gmail.com> 于 2010-4-12 11:56, oliver yang 写道: > 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX > 驱动程序和内核IO子系统PCI/Interrupt/DMA的实現。 > > 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 > > 此职位不适合工作经验少于5年的朋友。谢谢。 > > 这个职位不错,做Solaris的。只是工作地点在首都,而且我的工作经验不够,哎。 挺不错的一个职位,还是顶一个。 From jiang.adam在gmail.com Mon Apr 12 12:12:32 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Mon, 12 Apr 2010 13:12:32 +0900 Subject: =?GB2312?B?UmU6IE9yYWNsZS9TVU4g1dDGuNXm1f21xMTausu/qrei?= In-Reply-To: References: Message-ID: 2010/4/12 oliver yang : > ������������������Ҫ��Solaris�������O��������Ҫ����˿���������ϤLinux/UNIX > ������ں�O�ϵͳPCI/Interrupt/DMA����F�� > > ���������������PCI�淶���ȿ����Ӣ�Ҫ�ã�Ҫ����Կ��绰���ij̶ȣ�нˮ�ܷ������������ > > ���λ����Ϲ�������5�����лл�� �����������8-10����/�����֪��ڱ������õ�ʲôˮƽ�� -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From mingyong.zhang在gmail.com Mon Apr 12 12:18:38 2010 From: mingyong.zhang在gmail.com (Mingyong Zhang) Date: Mon, 12 Apr 2010 12:18:38 +0800 Subject: =?GB2312?B?u9i4tKO6IFJlOiBPcmFjbGUvU1VOINXQxrjV5tX9tcTE2rrLv6q3og==?= In-Reply-To: <4BC29C1E.7010709@gmail.com> References: <4BC29C1E.7010709@gmail.com> Message-ID: ֻ������� � 2010 � 4 12 ���12:07 PM��"Liuwenyi" ���� � 2010-4-12 11:56, oliver yang д�� > > ������������������Ҫ��Solaris�������O��������Ҫ����˿���������ϤLinux/UNIX > ������ں�O�ϵͳPCI/Interrupt/DMA����F... ��������Solaris�ġ�ֻ�����ص���������Ĺ��������������� ͦ����һ����������һ�� _______________________________________________ Linux ��˿�����������inux-kernel在zh-kernel.org h... From tom.leiming在gmail.com Mon Apr 12 12:20:45 2010 From: tom.leiming在gmail.com (Ming Lei) Date: Mon, 12 Apr 2010 12:20:45 +0800 Subject: =?GB2312?B?UmU6IE9yYWNsZS9TVU4g1dDGuNXm1f21xMTausu/qrei?= In-Reply-To: References: Message-ID: � 2010�4�12� ��12:12��Adam Jiang д��� > 2010/4/12 oliver yang : >> ������������������Ҫ��Solaris�������O��������Ҫ����˿���������ϤLinux/UNIX >> ������ں�O�ϵͳPCI/Interrupt/DMA����F�� >> >> ���������������PCI�淶���ȿ����Ӣ�Ҫ�ã�Ҫ����Կ��绰���ij̶ȣ�нˮ�ܷ������������ >> >> ���λ����Ϲ�������5�����лл�� > > �����������8-10����/�����֪��ڱ������õ�ʲôˮƽ�� ����10W������� -- Lei Ming From jiang.adam在gmail.com Mon Apr 12 12:35:19 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Mon, 12 Apr 2010 13:35:19 +0900 Subject: =?GB2312?B?UmU6IE9yYWNsZS9TVU4g1dDGuNXm1f21xMTausu/qrei?= In-Reply-To: References: Message-ID: 2010/4/12 Ming Lei : > � 2010�4�12� ��12:12��Adam Jiang д��� >> 2010/4/12 oliver yang : >>> ������������������Ҫ��Solaris�������O��������Ҫ����˿���������ϤLinux/UNIX >>> ������ں�O�ϵͳPCI/Interrupt/DMA����F�� >>> >>> ���������������PCI�淶���ȿ����Ӣ�Ҫ�ã�Ҫ����Կ��绰���ij̶ȣ�нˮ�ܷ������������ >>> >>> ���λ����Ϲ�������5�����лл�� >> >> �����������8-10����/�����֪��ڱ������õ�ʲôˮƽ�� > > ����10W������� 5������һ�㹫˾ƽ��8-10W�����acle/SunӦ���0W�������ûɶ�����Ϊ�Щ������н���-10W������Ȼ��Ҫ��������У�� -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From albcamus在gmail.com Mon Apr 12 12:38:44 2010 From: albcamus在gmail.com (Jike Song) Date: Mon, 12 Apr 2010 12:38:44 +0800 Subject: =?UTF-8?B?UmU6IE9yYWNsZS9TVU4g5oub6IGY55yf5q2j55qE5YaF5qC45byA5Y+R?= In-Reply-To: References: Message-ID: 2010/4/12 Adam Jiang : > > 5年经验,一般公司平均也就8-10W,如果时Oracle/Sun应该在10W美刀以上那是没啥问题,因为这些大公司差不多起薪就在8-10W左右,当然还要看毕业的学校。 > 在北京,哪来的10W美刀? 不过肯定是一线工程师里的峰值——至少也是近似峰值了。 -- Thanks, Jike From pyxchina在sina.com Mon Apr 12 20:34:51 2010 From: pyxchina在sina.com (pyxchina在sina.com) Date: Mon, 12 Apr 2010 20:34:51 +0800 Subject: =?GBK?B?u9i4tKO6UmU6IE9yYWNsZS9TVU4g1dDGuNXm1f21xMTausu/qrei?= Message-ID: <20100412123451.C09CA50862@mail2-210.sinamail.sina.com.cn> 呃,菜菜地问一句,啥是一线工程师? ------------------------------------------------ Much as formal systems, thanks to their very power, are doomed to incompleteness, so living beings, thanks to their complexity, are doomed to perish, each in its own unique manner. ----DOUGLAS HOFSTADTER ----- 原始邮件 ----- 发件人:Jike Song 收件人:Adam Jiang 主题:Re: Oracle/SUN 招聘真正的内核开发 日期:2010-4-12 12:38:44 2010/4/12 Adam Jiang : > > 5年经验,一般公司平均也就8-10W,如果时Oracle/Sun应该在10W美刀以上那是没啥问题,因为这些大公司差不多起薪就在8-10W左右,当然还要看毕业的学校。 > 在北京,哪来的10W美刀? 不过肯定是一线工程师里的峰值——至少也是近似峰值了。 -- Thanks, Jike _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From jiuxian_chu在foxmail.com Mon Apr 12 20:53:51 2010 From: jiuxian_chu在foxmail.com (=?gbk?B?uLvC+szD?=) Date: Mon, 12 Apr 2010 20:53:51 +0800 Subject: =?gbk?B?x+vOymRldmljZSBGcmllbmRseSBOYW1lysfKssO0?= =?gbk?B?o78=?= Message-ID: 如题。 在pc上外接一个设备,请问device friendly name指的的是设备在pc中显示的名字还是什么别的名字?如何修改。 谢谢。 From jiuxian_chu在foxmail.com Mon Apr 12 20:58:58 2010 From: jiuxian_chu在foxmail.com (=?gbk?B?uLvC+szD?=) Date: Mon, 12 Apr 2010 20:58:58 +0800 Subject: =?gbk?B?emhhbmdsaW7Kx8uto7/Oqsqyw7TO0rei08q8/qOs?= =?gbk?B?u+HK1bW90ru34sC019TT2sv7tcTX1Lavu9i4tKGj?= Message-ID: 如题。 谢谢 From kaih.luo.cn在gmail.com Mon Apr 12 21:52:16 2010 From: kaih.luo.cn在gmail.com (kaih luo) Date: Mon, 12 Apr 2010 21:52:16 +0800 Subject: =?GB2312?B?UmU6ILvYuLSjulJlOiBPcmFjbGUvU1VOINXQxrjV5tX9tcTE2rrLv6o=?= =?GB2312?B?t6I=?= In-Reply-To: <20100412123451.C09CA50862@mail2-210.sinamail.sina.com.cn> References: <20100412123451.C09CA50862@mail2-210.sinamail.sina.com.cn> Message-ID: 在 2010年4月12日 下午8:34, 写道: > > 呃,菜菜地问一句,啥是一线工程师? > ------------------------------------------------ > Much as formal systems, > > thanks to their very power, > > are doomed to incompleteness, > > so living beings, > > thanks to their complexity, > > are doomed to perish, > > each in its own unique manner. > > > > > > ----DOUGLAS HOFSTADTER > ----- 原始邮件 ----- > 发件人:Jike Song > 收件人:Adam Jiang > 主题:Re: Oracle/SUN 招聘真正的内核开发 > 日期:2010-4-12 12:38:44 > > 2010/4/12 Adam Jiang : > >> > >> 5年经验,一般公司平均也就8-10W,如果时Oracle/Sun应该在10W美刀以上那是没啥问题,因为这些大公司差不多起薪就在8-10W左右,当然还要看毕业的学校。 > >> > > > > 在北京,哪来的10W美刀? 不过肯定是一线工程师里的峰值----至少也是近似峰值了。 > > > > -- > > Thanks, > > Jike > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org 一线就是最基层的干活的呗 From dragonlinux在gmail.com Mon Apr 12 21:54:19 2010 From: dragonlinux在gmail.com (yao zhao) Date: Mon, 12 Apr 2010 09:54:19 -0400 Subject: =?GB2312?B?UmU6IE9yYWNsZS9TVU4g1dDGuNXm1f21xMTausu/qrei?= In-Reply-To: References: Message-ID: Many application developer can get >12W if you are senior so I am guessing it should be more. 2010/4/12 Adam Jiang > 2010/4/12 Ming Lei : > > � 2010�4�12� ��12:12��Adam Jiang д��� > >> 2010/4/12 oliver yang : > >>> ������������������Ҫ��Solaris�������O��������Ҫ����˿���������ϤLinux/UNIX > >>> ������ں�O�ϵͳPCI/Interrupt/DMA����F�� > >>> > >>> ���������������PCI�淶���ȿ����Ӣ�Ҫ�ã�Ҫ����Կ��绰���ij̶ȣ�нˮ�ܷ������������ > >>> > >>> ���λ����Ϲ�������5�����лл�� > >> > >> �����������8-10����/�����֪��ڱ������õ�ʲôˮƽ�� > > > > ����10W������� > > > 5������һ�㹫˾ƽ��8-10W�����acle/SunӦ���0W�������ûɶ�����Ϊ�Щ������н���-10W������Ȼ��Ҫ��������У�� > > -- > Adam Jiang > ----------------------------------- > e-mail:jiang.adam在gmail.com > http://www.adamjiang.com > ----------------------------------- > > _______________________________________________ > Linux ��˿����������� Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux ��˿��������� http://zh-kernel.org > From figure1802在126.com Mon Apr 12 22:39:26 2010 From: figure1802在126.com (Figo.zhang) Date: Mon, 12 Apr 2010 22:39:26 +0800 Subject: Oracle/SUN =?GB2312?B?1dDGuNXm1f21xMTausu/qrei?= In-Reply-To: References: Message-ID: <4BC3309E.4000603@126.com> >>>>> ������������������Ҫ��Solaris�������O��������Ҫ����˿���������ϤLinux/UNIX >>>>> ������ں�O�ϵͳPCI/Interrupt/DMA����F�� >>>>> >>>>> ���������������PCI�淶���ȿ����Ӣ�Ҫ�ã�Ҫ����Կ��绰���ij̶ȣ�нˮ�ܷ������������ >>>>> �����н��W RMB���� �20W RMB�� From lujing9101在163.com Tue Apr 13 12:29:04 2010 From: lujing9101在163.com (lu) Date: Tue, 13 Apr 2010 12:29:04 +0800 (CST) Subject: =?gbk?B?c3F1aWS437i61NjKsaOssru/qrTFxcy7ug==?= =?gbk?B?tOajrMTaustDUFXVvNPDuf2436Os1PXDtL3ivvY=?= Message-ID: <2db42849.661c.127f56d798e.Coremail.lujing9101@163.com> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 From kaih.luo.cn在gmail.com Tue Apr 13 12:46:08 2010 From: kaih.luo.cn在gmail.com (kaih luo) Date: Tue, 13 Apr 2010 12:46:08 +0800 Subject: =?GB2312?B?UmU6IHNxdWlkuN+4utTYyrGjrLK7v6q0xcXMu7q05qOsxNq6y0M=?= =?GB2312?B?UFXVvNPDuf2436Os1PXDtL3ivvY=?= In-Reply-To: <2db42849.661c.127f56d798e.Coremail.lujing9101@163.com> References: <2db42849.661c.127f56d798e.Coremail.lujing9101@163.com> Message-ID: 在 2010年4月13日 下午12:29,lu 写道: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org 磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 From kaih.luo.cn在gmail.com Tue Apr 13 13:11:13 2010 From: kaih.luo.cn在gmail.com (kaih luo) Date: Tue, 13 Apr 2010 13:11:13 +0800 Subject: =?GB2312?B?UmU6IFJlOiBzcXVpZLjfuLrU2Mqxo6yyu7+qtMXFzLu6tOajrMTa?= =?GB2312?B?ustDUFXVvNPDuf2436Os1PXDtL3ivvY=?= In-Reply-To: <15c5c24.6c7a.127f58d0dc4.Coremail.lujing9101@163.com> References: <2db42849.661c.127f56d798e.Coremail.lujing9101@163.com> <15c5c24.6c7a.127f58d0dc4.Coremail.lujing9101@163.com> Message-ID: 在 2010年4月13日 下午1:03,lu 写道: > 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 打开磁盘缓存,CPU占用率会下来? > > > 在2010-04-13 12:46:08,"kaih luo" 写道: >>在 2010年4月13日 下午12:29,lu 写道: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> _______________________________________________ >>> Linux 内核开发中文邮件列表 >>> Linux-kernel在zh-kernel.org >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>> Linux 内核开发中文社区: http://zh-kernel.org >> >>磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 > > > From gongfan193在gmail.com Tue Apr 13 13:23:06 2010 From: gongfan193在gmail.com (Drunkard Zhang) Date: Tue, 13 Apr 2010 13:23:06 +0800 Subject: =?UTF-8?B?UmU6IHNxdWlk6auY6LSf6L295pe277yM5LiN5byA56OB55uY57yT5a2Y77yM5YaF5qC4Qw==?= =?UTF-8?B?UFXljaDnlKjov4fpq5jvvIzmgI7kuYjop6PlhrM=?= In-Reply-To: References: <2db42849.661c.127f56d798e.Coremail.lujing9101@163.com> Message-ID: 在 2010年4月13日 下午12:46,kaih luo 写道: > 在 2010年4月13日 下午12:29,lu 写道: > > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > CPU占用率高可能有多个起因。用htop或atop观察能看到是应用程序占用了CPU时间还是内核本身占用了很多CPU时间,对网卡驱动不太好的系统来说可能处理网卡的IRQ中断会占用大量时间,可能会达到50%以上。所以我原来用的开源的e1000e驱动换成Intel官方的驱动后性能好了很多。 如果系统开始使用SWAP,它的性能就会急剧下降,建议关掉swap(或只留几十MB的交换空间,然后sysctl -w vm.swappiness=1)。 如果怀疑是IO问题,试试 cache_dir null /tmp squid是单进程,不支持SMP确实是问题,可以尝试下这个: http://eu.squid-cache.org/ConfigExamples/ExtremeCarpFrontend -- 张绍文 gongfan193在gmail.com zhangsw在gwbnsh.net.cn 18601633785 From gongfan193在gmail.com Tue Apr 13 13:28:50 2010 From: gongfan193在gmail.com (Drunkard Zhang) Date: Tue, 13 Apr 2010 13:28:50 +0800 Subject: =?UTF-8?B?UmU6IFJlOiBzcXVpZOmrmOi0n+i9veaXtu+8jOS4jeW8gOejgeebmOe8k+WtmO+8jOWGhQ==?= =?UTF-8?B?5qC4Q1BV5Y2g55So6L+H6auY77yM5oCO5LmI6Kej5Yaz?= In-Reply-To: References: <2db42849.661c.127f56d798e.Coremail.lujing9101@163.com> <15c5c24.6c7a.127f58d0dc4.Coremail.lujing9101@163.com> Message-ID: 在 2010年4月13日 下午1:11,kaih luo 写道: > 在 2010年4月13日 下午1:03,lu 写道: > > 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 > 打开磁盘缓存,CPU占用率会下来? > 如果你的流量很大(单台200Mbit左右),建议你只用内存,少用或不用硬盘。我自己的经验:用SATA-2硬盘,每块硬盘用10G空间,在高负载下流量不会超过120M,再高延时就明显增大或流量开始抖动。 内存很大也未必是好事,squid本身有局限性,我现在的机器在24GB内存下跑的很好,但64GB的怎么也跑不起来,后来听说是squid本身的局限性... > > > > > 在2010-04-13 12:46:08,"kaih luo" 写道: > >>在 2010年4月13日 下午12:29,lu 写道: > >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > >>> _______________________________________________ > >>> Linux 内核开发中文邮件列表 > >>> Linux-kernel在zh-kernel.org > >>> http://zh-kernel.org/mailman/listinfo/linux-kernel > >>> Linux 内核开发中文社区: http://zh-kernel.org > >> > >>磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 > > > > > > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > -- 张绍文 gongfan193在gmail.com zhangsw在gwbnsh.net.cn 18601633785 From jon_zhou在agilent.com Tue Apr 13 15:13:01 2010 From: jon_zhou在agilent.com (jon_zhou在agilent.com) Date: Tue, 13 Apr 2010 01:13:01 -0600 Subject: =?gb2312?B?UkU6IE9yYWNsZS9TVU4g1dDGuNXm1f21xMTausu/qrei?= In-Reply-To: <4BC3309E.4000603@126.com> References: <4BC3309E.4000603@126.com> Message-ID: <885FCCD8138809458C8E4FE0A71C0A121D20DD91F1@cos-us-mb10.agilent.com> �����30w û�� -----Original Message----- From: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] On Behalf Of Figo.zhang Sent: Monday, April 12, 2010 10:39 PM To: yao zhao Cc: linux-kernel在zh-kernel.org Subject: Re: Oracle/SUN �Ƹ����ں˿��� >>>>> ������������������Ҫ��Solaris�������O��������Ҫ����˿���������ϤLinux/UNIX >>>>> ������ں�O�ϵͳPCI/Interrupt/DMA����F�� >>>>> >>>>> ���������������PCI�淶���ȿ����Ӣ�Ҫ�ã�Ҫ����Կ��绰���ij̶ȣ�нˮ�ܷ������������ >>>>> �����н��W RMB���� �20W RMB�� From crquan在gmail.com Tue Apr 13 15:27:30 2010 From: crquan在gmail.com (Cheng Renquan) Date: Tue, 13 Apr 2010 15:27:30 +0800 Subject: =?UTF-8?B?UmU6IENoYXLlnovorr7lpIfpqbHliqjmgI7moLfmlK/mjIHlpJrkuKrorr7lpIfvvJ8=?= In-Reply-To: References: <4BBEE6F7.2000204@gmail.com> Message-ID: 2010/4/12 Adam Jiang : > Hi, Peter > > 星期天的时候我仔细看了一下platform_device和platform_driver,似乎这个距离我想要的东西还有一段距离。因为,plafrom_bus提供了一种虚拟bus把设备连接起来的,而我的设备确确实实在pci > bus上,它的probe可以用pci_driver和pci_register_driver注册,似乎不需要platform_driver提供的probe等函数。 > > 这个dirver是驱动一个在pci bus上的设备,同时它又是多个Char设备的驱动程序,所以,似乎有点难搞。现在我采用的数据结构是 > > typedef struct port{ >  int filed1; >  char filed2; >  struct mutex port_mutex; >  ... > } port_t; > > struct foo_device { >   pci_dev pdev; >   spin_lock_t spin_lock; >   port_t    port[10]; /**< 10 devices */ > } foo_dev; > > 如果从userspace过来的requst,只有先判断它的minor设备号才取得相应的port[minor(inode)]来操作的,所以效率相当低下...... > 所以,我想将数据结构变更为 > > struct foo_device { >  int filed1;      /**< what's in port_t originally */ >  char filed2; >  struct mutex dev_mutex; > }; > struct foo_device  devices[10]; 十个设备有各自不同的数据结构啊, mutex 不会争用问题,什么效率低呢? 试试类似于 misc 设备构造一个虚拟的 class, 或者直接使用 misc 是否可以? int misc_register(struct miscdevice * misc) misc->this_device = device_create(misc_class, misc->parent, dev, misc, "%s", misc->name); misc_class = class_create(THIS_MODULE, "misc"); > > 继续寻找更好的解决办法。 > > /大头阿当 From crquan在gmail.com Tue Apr 13 15:47:32 2010 From: crquan在gmail.com (Cheng Renquan) Date: Tue, 13 Apr 2010 15:47:32 +0800 Subject: =?UTF-8?B?UmU6IE9yYWNsZS9TVU4g5oub6IGY55yf5q2j55qE5YaF5qC45byA5Y+R?= In-Reply-To: References: Message-ID: 2010/4/12 Adam Jiang : > 2010/4/12 oliver yang : >> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX >> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实現。 >> >> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 >> >> 此职位不适合工作经验少于5年的朋友。谢谢。 > > 这个职位在美国可以拿到8-10万美刀/年,不知道在北京可以拿到什么水平? 五年水平也是在美国 8-10万美刀/年 较多了;看过的一些小不点硅谷创业公司都敢宣称 "我们的SE平均工龄在七年以上," (因此软件质量是有保障的, ...) 这个职位在日本可以拿到 5百万日元/年 ??? 合人民币30W, 这个职位在新加坡可以拿到 6-8万新元/年,合人民币30W+, (但总体新加坡国家很小,此类职位相当稀缺) 这个职位在澳洲可以拿到 6-8万澳元/年 ??? 合人民币40W+ 抄送里面 还有在澳洲、英国、迪拜工作的 同学继续; 邮件存档在 http://zh-kernel.org/pipermail/linux-kernel/2010-April/014170.html http://zh-kernel.org/pipermail/linux-kernel/2010-April/thread.html#14170 不知道在北京可以拿到什么水平? 30W RMB? 楼主 oliver yang 是否可以给个明确(或者模糊)的下限上限? From xianming.yan在gmail.com Tue Apr 13 16:26:03 2010 From: xianming.yan在gmail.com (yan xianming) Date: Tue, 13 Apr 2010 16:26:03 +0800 Subject: =?GB2312?B?UkU6T3JhY2xlL1NVTiDV0Ma41ebV/bXExNq6y7+qt6I=?= Message-ID: 一个普通的,senior一点的C++程序员都能开到,20K/M以上,像这种,内核的,少说,也有,4-50K/M吧。要不然,用丰厚二字形容,有点过吧。 Message: 1 Date: Mon, 12 Apr 2010 22:39:26 +0800 From: "Figo.zhang" To: yao zhao Cc: linux-kernel在zh-kernel.org Subject: Re: Oracle/SUN 招聘真正的内核开发 Message-ID: <4BC3309E.4000603在126.com> Content-Type: text/plain; charset=GB2312 >>>>> 我们组在北京开了三个职位, > > 主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX > >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 > >>>>> > >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 > >>>>> > 这个职位年薪多少W RMB阿? 有20W RMB不 在 2010年4月13日 下午3:48, 写道: > 想在 Linux-kernel 邮件列表发言,请写信给: > linux-kernel在zh-kernel.org > > 要订阅或者退订列表,可以访问万维网地址: > http://zh-kernel.org/mailman/listinfo/linux-kernel > 或者可以向: > linux-kernel-request在zh-kernel.org > 发送主题或者正文为'help'的邮件。 > > 您可以通过邮件地址: > linux-kernel-owner在zh-kernel.org > 联系到此列表的管理员。 > > 当回信时,请给一个适当的标题,这样会比 "Re: > Contents of Linux-kernel digest..."更清楚明白。 > > > 这是邮件列表的摘要。如果想要回复此邮件,请务必注意: > 1. 根据要回复的主题,重新给邮件加上合适的标题 > 2. 去除和回复无关的其他引文。 > > 本日主题: > > 1. Re: Oracle/SUN 招聘真正的内核开发 (Figo.zhang) > 2. > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (lu) > 3. Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (kaih luo) > 4. Re: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (kaih luo) > 5. Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (Drunkard Zhang) > 6. Re: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (Drunkard Zhang) > 7. RE: Oracle/SUN 招聘真正的内核开发 (jon_zhou在agilent.com) > 8. Re: Char型设备驱动怎样支持多个设备? (Cheng Renquan) > 9. Re: Oracle/SUN 招聘真正的内核开发 (Cheng Renquan) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 12 Apr 2010 22:39:26 +0800 > From: "Figo.zhang" > To: yao zhao > Cc: linux-kernel在zh-kernel.org > Subject: Re: Oracle/SUN 招聘真正的内核开发 > Message-ID: <4BC3309E.4000603在126.com> > Content-Type: text/plain; charset=GB2312 > > > >>>>> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX > >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 > >>>>> > >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 > >>>>> > 这个职位年薪多少W RMB阿? 有20W RMB不 > > > > > ------------------------------ > > Message: 2 > Date: Tue, 13 Apr 2010 12:29:04 +0800 (CST) > From: lu > To: linux-kernel在zh-kernel.org > Subject: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: <2db42849.661c.127f56d798e.Coremail.lujing9101在163.com> > Content-Type: text/plain; charset=gbk > > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > ------------------------------ > > Message: 3 > Date: Tue, 13 Apr 2010 12:46:08 +0800 > From: kaih luo > To: lu , Linux-kernel在zh-kernel.org > Subject: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: > > Content-Type: text/plain; charset=GB2312 > > 在 2010年4月13日 下午12:29,lu 写道: > > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > 磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 > > ------------------------------ > > Message: 4 > Date: Tue, 13 Apr 2010 13:11:13 +0800 > From: kaih luo > To: lu , Linux-kernel在zh-kernel.org > Subject: Re: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: > > Content-Type: text/plain; charset=GB2312 > > 在 2010年4月13日 下午1:03,lu 写道: > > 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 > 打开磁盘缓存,CPU占用率会下来? > > > > > > 在2010-04-13 12:46:08,"kaih luo" 写道: > >>在 2010年4月13日 下午12:29,lu 写道: > >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > >>> _______________________________________________ > >>> Linux 内核开发中文邮件列表 > >>> Linux-kernel在zh-kernel.org > >>> http://zh-kernel.org/mailman/listinfo/linux-kernel > >>> Linux 内核开发中文社区: http://zh-kernel.org > >> > >>磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 > > > > > > > > ------------------------------ > > Message: 5 > Date: Tue, 13 Apr 2010 13:23:06 +0800 > From: Drunkard Zhang > To: kaih luo > Cc: lu , Linux-kernel在zh-kernel.org > Subject: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 在 2010年4月13日 下午12:46,kaih luo 写道: > > > 在 2010年4月13日 下午12:29,lu 写道: > > > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > > > > CPU占用率高可能有多个起因。用htop或atop观察能看到是应用程序占用了CPU时间还是内核本身占用了很多CPU时间,对网卡驱动不太好的系统来说可能处理网卡的IRQ中断会占用大量时间,可能会达到50%以上。所以我原来用的开源的e1000e驱动换成Intel官方的驱动后性能好了很多。 > > 如果系统开始使用SWAP,它的性能就会急剧下降,建议关掉swap(或只留几十MB的交换空间,然后sysctl -w vm.swappiness=1)。 > > 如果怀疑是IO问题,试试 cache_dir null /tmp > > squid是单进程,不支持SMP确实是问题,可以尝试下这个: > http://eu.squid-cache.org/ConfigExamples/ExtremeCarpFrontend > > -- > 张绍文 > gongfan193在gmail.com > zhangsw在gwbnsh.net.cn > 18601633785 > > ------------------------------ > > Message: 6 > Date: Tue, 13 Apr 2010 13:28:50 +0800 > From: Drunkard Zhang > To: kaih luo > Cc: lu , Linux-kernel在zh-kernel.org > Subject: Re: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 在 2010年4月13日 下午1:11,kaih luo 写道: > > > 在 2010年4月13日 下午1:03,lu 写道: > > > 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 > > 打开磁盘缓存,CPU占用率会下来? > > > > > 如果你的流量很大(单台200Mbit左右),建议你只用内存,少用或不用硬盘。我自己的经验:用SATA-2硬盘,每块硬盘用10G空间,在高负载下流量不会超过120M,再高延时就明显增大或流量开始抖动。 > > 内存很大也未必是好事,squid本身有局限性,我现在的机器在24GB内存下跑的很好,但64GB的怎么也跑不起来,后来听说是squid本身的局限性... > > > > > > > > > 在2010-04-13 12:46:08,"kaih luo" 写道: > > >>在 2010年4月13日 下午12:29,lu 写道: > > >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > >>> _______________________________________________ > > >>> Linux 内核开发中文邮件列表 > > >>> Linux-kernel在zh-kernel.org > > >>> http://zh-kernel.org/mailman/listinfo/linux-kernel > > >>> Linux 内核开发中文社区: http://zh-kernel.org > > >> > > >>磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 > > > > > > > > > > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > > > > > -- > 张绍文 > gongfan193在gmail.com > zhangsw在gwbnsh.net.cn > 18601633785 > > ------------------------------ > > Message: 7 > Date: Tue, 13 Apr 2010 01:13:01 -0600 > From: > To: > Subject: RE: Oracle/SUN 招聘真正的内核开发 > Message-ID: > <885FCCD8138809458C8E4FE0A71C0A121D20DD91F1在cos-us-mb10.agilent.com > > > Content-Type: text/plain; charset="gb2312" > > 我看少于30w 没人来 > > -----Original Message----- > From: linux-kernel-bounces在zh-kernel.org [mailto: > linux-kernel-bounces在zh-kernel.org] On Behalf Of Figo.zhang > Sent: Monday, April 12, 2010 10:39 PM > To: yao zhao > Cc: linux-kernel在zh-kernel.org > Subject: Re: Oracle/SUN 招聘真正的内核开发 > > > >>>>> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX > >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 > >>>>> > >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 > >>>>> > 这个职位年薪多少W RMB阿? 有20W RMB不 > > > > ------------------------------ > > Message: 8 > Date: Tue, 13 Apr 2010 15:27:30 +0800 > From: Cheng Renquan > To: Peter Chen , Adam Jiang > > Cc: 中文内核邮件列表 > Subject: Re: Char型设备驱动怎样支持多个设备? > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 2010/4/12 Adam Jiang : > > Hi, Peter > > > > > 星期天的时候我仔细看了一下platform_device和platform_driver,似乎这个距离我想要的东西还有一段距离。因为,plafrom_bus提供了一种虚拟bus把设备连接起来的,而我的设备确确实实在pci > > > bus上,它的probe可以用pci_driver和pci_register_driver注册,似乎不需要platform_driver提供的probe等函数。 > > > > 这个dirver是驱动一个在pci bus上的设备,同时它又是多个Char设备的驱动程序,所以,似乎有点难搞。现在我采用的数据结构是 > > > > typedef struct port{ > > int filed1; > > char filed2; > > struct mutex port_mutex; > > ... > > } port_t; > > > > struct foo_device { > > pci_dev pdev; > > spin_lock_t spin_lock; > > port_t port[10]; /**< 10 devices */ > > } foo_dev; > > > > > 如果从userspace过来的requst,只有先判断它的minor设备号才取得相应的port[minor(inode)]来操作的,所以效率相当低下...... > > 所以,我想将数据结构变更为 > > > > struct foo_device { > > int filed1; /**< what's in port_t originally */ > > char filed2; > > struct mutex dev_mutex; > > }; > > struct foo_device devices[10]; > > 十个设备有各自不同的数据结构啊, mutex 不会争用问题,什么效率低呢? > > 试试类似于 misc 设备构造一个虚拟的 class, 或者直接使用 misc 是否可以? > > int misc_register(struct miscdevice * misc) > > misc->this_device = device_create(misc_class, misc->parent, dev, > misc, "%s", misc->name); > > misc_class = class_create(THIS_MODULE, "misc"); > > > > > > 继续寻找更好的解决办法。 > > > > /大头阿当 > > ------------------------------ > > Message: 9 > Date: Tue, 13 Apr 2010 15:47:32 +0800 > From: Cheng Renquan > To: Adam Jiang > Cc: delphij在gmail.com, linux-kernel在zh-kernel.org, zxdker在gmail.com, > imterry在gmail.com, lyy.henry在gmail.com > Subject: Re: Oracle/SUN 招聘真正的内核开发 > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 2010/4/12 Adam Jiang : > > 2010/4/12 oliver yang : > >> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX > >> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实現。 > >> > >> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 > >> > >> 此职位不适合工作经验少于5年的朋友。谢谢。 > > > > 这个职位在美国可以拿到8-10万美刀/年,不知道在北京可以拿到什么水平? > > 五年水平也是在美国 8-10万美刀/年 较多了;看过的一些小不点硅谷创业公司都敢宣称 "我们的SE平均工龄在七年以上," (因此软件质量是有保障的, > ...) > > 这个职位在日本可以拿到 5百万日元/年 ??? 合人民币30W, > 这个职位在新加坡可以拿到 6-8万新元/年,合人民币30W+, (但总体新加坡国家很小,此类职位相当稀缺) > 这个职位在澳洲可以拿到 6-8万澳元/年 ??? 合人民币40W+ > > 抄送里面 还有在澳洲、英国、迪拜工作的 同学继续; 邮件存档在 > http://zh-kernel.org/pipermail/linux-kernel/2010-April/014170.html > http://zh-kernel.org/pipermail/linux-kernel/2010-April/thread.html#14170 > > 不知道在北京可以拿到什么水平? 30W RMB? > > 楼主 oliver yang 是否可以给个明确(或者模糊)的下限上限? > > ------------------------------ > > _______________________________________________ > Linux内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > > 结束Linux-kernel 摘要, 卷 33, 发布 22 > ******************************************** > From jon_zhou在agilent.com Tue Apr 13 17:43:14 2010 From: jon_zhou在agilent.com (jon_zhou在agilent.com) Date: Tue, 13 Apr 2010 03:43:14 -0600 Subject: =?utf-8?B?UkU6IFJFOk9yYWNsZS9TVU4g5oub6IGY55yf5q2j55qE5YaF5qC45byA5Y+R?= In-Reply-To: References: Message-ID: <885FCCD8138809458C8E4FE0A71C0A121D20DD94B3@cos-us-mb10.agilent.com> hehe 北京的房价已经超越国际水平了, 我们的薪水还差得远 -----Original Message----- From: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] On Behalf Of yan xianming Sent: Tuesday, April 13, 2010 4:26 PM To: linux-kernel在zh-kernel.org Subject: RE:Oracle/SUN 招聘真正的内核开发 一个普通的,senior一点的C++程序员都能开到,20K/M以上,像这种,内核的,少说,也有,4-50K/M吧。要不然,用丰厚二字形容,有点过吧。 Message: 1 Date: Mon, 12 Apr 2010 22:39:26 +0800 From: "Figo.zhang" To: yao zhao Cc: linux-kernel在zh-kernel.org Subject: Re: Oracle/SUN 招聘真正的内核开发 Message-ID: <4BC3309E.4000603在126.com> Content-Type: text/plain; charset=GB2312 >>>>> 我们组在北京开了三个职位, > > 主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX > >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 > >>>>> > >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 > >>>>> > 这个职位年薪多少W RMB阿? 有20W RMB不 在 2010年4月13日 下午3:48, 写道: > 想在 Linux-kernel 邮件列表发言,请写信给: > linux-kernel在zh-kernel.org > > 要订阅或者退订列表,可以访问万维网地址: > http://zh-kernel.org/mailman/listinfo/linux-kernel > 或者可以向: > linux-kernel-request在zh-kernel.org > 发送主题或者正文为'help'的邮件。 > > 您可以通过邮件地址: > linux-kernel-owner在zh-kernel.org > 联系到此列表的管理员。 > > 当回信时,请给一个适当的标题,这样会比 "Re: > Contents of Linux-kernel digest..."更清楚明白。 > > > 这是邮件列表的摘要。如果想要回复此邮件,请务必注意: > 1. 根据要回复的主题,重新给邮件加上合适的标题 > 2. 去除和回复无关的其他引文。 > > 本日主题: > > 1. Re: Oracle/SUN 招聘真正的内核开发 (Figo.zhang) > 2. > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (lu) > 3. Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (kaih luo) > 4. Re: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (kaih luo) > 5. Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (Drunkard Zhang) > 6. Re: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > (Drunkard Zhang) > 7. RE: Oracle/SUN 招聘真正的内核开发 (jon_zhou在agilent.com) > 8. Re: Char型设备驱动怎样支持多个设备? (Cheng Renquan) > 9. Re: Oracle/SUN 招聘真正的内核开发 (Cheng Renquan) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 12 Apr 2010 22:39:26 +0800 > From: "Figo.zhang" > To: yao zhao > Cc: linux-kernel在zh-kernel.org > Subject: Re: Oracle/SUN 招聘真正的内核开发 > Message-ID: <4BC3309E.4000603在126.com> > Content-Type: text/plain; charset=GB2312 > > > >>>>> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX > >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 > >>>>> > >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 > >>>>> > 这个职位年薪多少W RMB阿? 有20W RMB不 > > > > > ------------------------------ > > Message: 2 > Date: Tue, 13 Apr 2010 12:29:04 +0800 (CST) > From: lu > To: linux-kernel在zh-kernel.org > Subject: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: <2db42849.661c.127f56d798e.Coremail.lujing9101在163.com> > Content-Type: text/plain; charset=gbk > > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > ------------------------------ > > Message: 3 > Date: Tue, 13 Apr 2010 12:46:08 +0800 > From: kaih luo > To: lu , Linux-kernel在zh-kernel.org > Subject: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: > > Content-Type: text/plain; charset=GB2312 > > 在 2010年4月13日 下午12:29,lu 写道: > > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > 磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 > > ------------------------------ > > Message: 4 > Date: Tue, 13 Apr 2010 13:11:13 +0800 > From: kaih luo > To: lu , Linux-kernel在zh-kernel.org > Subject: Re: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: > > Content-Type: text/plain; charset=GB2312 > > 在 2010年4月13日 下午1:03,lu 写道: > > 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 > 打开磁盘缓存,CPU占用率会下来? > > > > > > 在2010-04-13 12:46:08,"kaih luo" 写道: > >>在 2010年4月13日 下午12:29,lu 写道: > >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > >>> _______________________________________________ > >>> Linux 内核开发中文邮件列表 > >>> Linux-kernel在zh-kernel.org > >>> http://zh-kernel.org/mailman/listinfo/linux-kernel > >>> Linux 内核开发中文社区: http://zh-kernel.org > >> > >>磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 > > > > > > > > ------------------------------ > > Message: 5 > Date: Tue, 13 Apr 2010 13:23:06 +0800 > From: Drunkard Zhang > To: kaih luo > Cc: lu , Linux-kernel在zh-kernel.org > Subject: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 在 2010年4月13日 下午12:46,kaih luo 写道: > > > 在 2010年4月13日 下午12:29,lu 写道: > > > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > > > > CPU占用率高可能有多个起因。用htop或atop观察能看到是应用程序占用了CPU时间还是内核本身占用了很多CPU时间,对网卡驱动不太好的系统来说可能处理网卡的IRQ中断会占用大量时间,可能会达到50%以上。所以我原来用的开源的e1000e驱动换成Intel官方的驱动后性能好了很多。 > > 如果系统开始使用SWAP,它的性能就会急剧下降,建议关掉swap(或只留几十MB的交换空间,然后sysctl -w vm.swappiness=1)。 > > 如果怀疑是IO问题,试试 cache_dir null /tmp > > squid是单进程,不支持SMP确实是问题,可以尝试下这个: > http://eu.squid-cache.org/ConfigExamples/ExtremeCarpFrontend > > -- > 张绍文 > gongfan193在gmail.com > zhangsw在gwbnsh.net.cn > 18601633785 > > ------------------------------ > > Message: 6 > Date: Tue, 13 Apr 2010 13:28:50 +0800 > From: Drunkard Zhang > To: kaih luo > Cc: lu , Linux-kernel在zh-kernel.org > Subject: Re: Re: > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 在 2010年4月13日 下午1:11,kaih luo 写道: > > > 在 2010年4月13日 下午1:03,lu 写道: > > > 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 > > 打开磁盘缓存,CPU占用率会下来? > > > > > 如果你的流量很大(单台200Mbit左右),建议你只用内存,少用或不用硬盘。我自己的经验:用SATA-2硬盘,每块硬盘用10G空间,在高负载下流量不会超过120M,再高延时就明显增大或流量开始抖动。 > > 内存很大也未必是好事,squid本身有局限性,我现在的机器在24GB内存下跑的很好,但64GB的怎么也跑不起来,后来听说是squid本身的局限性... > > > > > > > > > 在2010-04-13 12:46:08,"kaih luo" 写道: > > >>在 2010年4月13日 下午12:29,lu 写道: > > >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 > > >>> _______________________________________________ > > >>> Linux 内核开发中文邮件列表 > > >>> Linux-kernel在zh-kernel.org > > >>> http://zh-kernel.org/mailman/listinfo/linux-kernel > > >>> Linux 内核开发中文社区: http://zh-kernel.org > > >> > > >>磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 > > > > > > > > > > > _______________________________________________ > > Linux 内核开发中文邮件列表 > > Linux-kernel在zh-kernel.org > > http://zh-kernel.org/mailman/listinfo/linux-kernel > > Linux 内核开发中文社区: http://zh-kernel.org > > > > > > -- > 张绍文 > gongfan193在gmail.com > zhangsw在gwbnsh.net.cn > 18601633785 > > ------------------------------ > > Message: 7 > Date: Tue, 13 Apr 2010 01:13:01 -0600 > From: > To: > Subject: RE: Oracle/SUN 招聘真正的内核开发 > Message-ID: > <885FCCD8138809458C8E4FE0A71C0A121D20DD91F1在cos-us-mb10.agilent.com > > > Content-Type: text/plain; charset="gb2312" > > 我看少于30w 没人来 > > -----Original Message----- > From: linux-kernel-bounces在zh-kernel.org [mailto: > linux-kernel-bounces在zh-kernel.org] On Behalf Of Figo.zhang > Sent: Monday, April 12, 2010 10:39 PM > To: yao zhao > Cc: linux-kernel在zh-kernel.org > Subject: Re: Oracle/SUN 招聘真正的内核开发 > > > >>>>> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX > >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 > >>>>> > >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 > >>>>> > 这个职位年薪多少W RMB阿? 有20W RMB不 > > > > ------------------------------ > > Message: 8 > Date: Tue, 13 Apr 2010 15:27:30 +0800 > From: Cheng Renquan > To: Peter Chen , Adam Jiang > > Cc: 中文内核邮件列表 > Subject: Re: Char型设备驱动怎样支持多个设备? > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 2010/4/12 Adam Jiang : > > Hi, Peter > > > > > 星期天的时候我仔细看了一下platform_device和platform_driver,似乎这个距离我想要的东西还有一段距离。因为,plafrom_bus提供了一种虚拟bus把设备连接起来的,而我的设备确确实实在pci > > > bus上,它的probe可以用pci_driver和pci_register_driver注册,似乎不需要platform_driver提供的probe等函数。 > > > > 这个dirver是驱动一个在pci bus上的设备,同时它又是多个Char设备的驱动程序,所以,似乎有点难搞。现在我采用的数据结构是 > > > > typedef struct port{ > > int filed1; > > char filed2; > > struct mutex port_mutex; > > ... > > } port_t; > > > > struct foo_device { > > pci_dev pdev; > > spin_lock_t spin_lock; > > port_t port[10]; /**< 10 devices */ > > } foo_dev; > > > > > 如果从userspace过来的requst,只有先判断它的minor设备号才取得相应的port[minor(inode)]来操作的,所以效率相当低下...... > > 所以,我想将数据结构变更为 > > > > struct foo_device { > > int filed1; /**< what's in port_t originally */ > > char filed2; > > struct mutex dev_mutex; > > }; > > struct foo_device devices[10]; > > 十个设备有各自不同的数据结构啊, mutex 不会争用问题,什么效率低呢? > > 试试类似于 misc 设备构造一个虚拟的 class, 或者直接使用 misc 是否可以? > > int misc_register(struct miscdevice * misc) > > misc->this_device = device_create(misc_class, misc->parent, dev, > misc, "%s", misc->name); > > misc_class = class_create(THIS_MODULE, "misc"); > > > > > > 继续寻找更好的解决办法。 > > > > /大头阿当 > > ------------------------------ > > Message: 9 > Date: Tue, 13 Apr 2010 15:47:32 +0800 > From: Cheng Renquan > To: Adam Jiang > Cc: delphij在gmail.com, linux-kernel在zh-kernel.org, zxdker在gmail.com, > imterry在gmail.com, lyy.henry在gmail.com > Subject: Re: Oracle/SUN 招聘真正的内核开发 > Message-ID: > > Content-Type: text/plain; charset=UTF-8 > > 2010/4/12 Adam Jiang : > > 2010/4/12 oliver yang : > >> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX > >> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实現。 > >> > >> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 > >> > >> 此职位不适合工作经验少于5年的朋友。谢谢。 > > > > 这个职位在美国可以拿到8-10万美刀/年,不知道在北京可以拿到什么水平? > > 五年水平也是在美国 8-10万美刀/年 较多了;看过的一些小不点硅谷创业公司都敢宣称 "我们的SE平均工龄在七年以上," (因此软件质量是有保障的, > ...) > > 这个职位在日本可以拿到 5百万日元/年 ??? 合人民币30W, > 这个职位在新加坡可以拿到 6-8万新元/年,合人民币30W+, (但总体新加坡国家很小,此类职位相当稀缺) > 这个职位在澳洲可以拿到 6-8万澳元/年 ??? 合人民币40W+ > > 抄送里面 还有在澳洲、英国、迪拜工作的 同学继续; 邮件存档在 > http://zh-kernel.org/pipermail/linux-kernel/2010-April/014170.html > http://zh-kernel.org/pipermail/linux-kernel/2010-April/thread.html#14170 > > 不知道在北京可以拿到什么水平? 30W RMB? > > 楼主 oliver yang 是否可以给个明确(或者模糊)的下限上限? > > ------------------------------ > > _______________________________________________ > Linux内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > > 结束Linux-kernel 摘要, 卷 33, 发布 22 > ******************************************** > _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From vividfe在gmail.com Tue Apr 13 18:05:41 2010 From: vividfe在gmail.com (tiejun chen) Date: Tue, 13 Apr 2010 18:05:41 +0800 Subject: =?GB2312?B?UmU6IFJFOk9yYWNsZS9TVU4g1dDGuNXm1f21xMTausu/qrei?= In-Reply-To: <885FCCD8138809458C8E4FE0A71C0A121D20DD94B3@cos-us-mb10.agilent.com> References: <885FCCD8138809458C8E4FE0A71C0A121D20DD94B3@cos-us-mb10.agilent.com> Message-ID: 听说Solaris要被收费,所以就薪水高? 楼主出来说说到底多少钱? 在 2010年4月13日 下午5:43, 写道: > hehe > 北京的房价已经超越国际水平了, > 我们的薪水还差得远 > > > -----Original Message----- > From: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] On Behalf Of yan xianming > Sent: Tuesday, April 13, 2010 4:26 PM > To: linux-kernel在zh-kernel.org > Subject: RE:Oracle/SUN 招聘真正的内核开发 > > 一个普通的,senior一点的C++程序员都能开到,20K/M以上,像这种,内核的,少说,也有,4-50K/M吧。要不然,用丰厚二字形容,有点过吧。 > > > > > Message: 1 > Date: Mon, 12 Apr 2010 22:39:26 +0800 > From: "Figo.zhang" > To: yao zhao > Cc: linux-kernel在zh-kernel.org > Subject: Re: Oracle/SUN 招聘真正的内核开发 > Message-ID: <4BC3309E.4000603在126.com> > Content-Type: text/plain; charset=GB2312 > > >>>>>> 我们组在北京开了三个职位, >> >> 主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX >> >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 >> >>>>> >> >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 >> >>>>> >> 这个职位年薪多少W RMB阿? 有20W RMB不 > > > > 在 2010年4月13日 下午3:48, 写道: > >> 想在 Linux-kernel 邮件列表发言,请写信给: >>        linux-kernel在zh-kernel.org >> >> 要订阅或者退订列表,可以访问万维网地址: >>        http://zh-kernel.org/mailman/listinfo/linux-kernel >> 或者可以向: >>        linux-kernel-request在zh-kernel.org >> 发送主题或者正文为'help'的邮件。 >> >> 您可以通过邮件地址: >>        linux-kernel-owner在zh-kernel.org >> 联系到此列表的管理员。 >> >> 当回信时,请给一个适当的标题,这样会比 "Re: >> Contents of Linux-kernel digest..."更清楚明白。 >> >> >> 这是邮件列表的摘要。如果想要回复此邮件,请务必注意: >> 1. 根据要回复的主题,重新给邮件加上合适的标题 >> 2. 去除和回复无关的其他引文。 >> >> 本日主题: >> >>   1. Re: Oracle/SUN 招聘真正的内核开发 (Figo.zhang) >>   2. >>      squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>      (lu) >>   3. Re: >>      squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>      (kaih luo) >>   4. Re: Re: >>      squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>      (kaih luo) >>   5. Re: >>      squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>      (Drunkard Zhang) >>   6. Re: Re: >>      squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>      (Drunkard Zhang) >>   7. RE: Oracle/SUN 招聘真正的内核开发 (jon_zhou在agilent.com) >>   8. Re: Char型设备驱动怎样支持多个设备? (Cheng Renquan) >>   9. Re: Oracle/SUN 招聘真正的内核开发 (Cheng Renquan) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Mon, 12 Apr 2010 22:39:26 +0800 >> From: "Figo.zhang" >> To: yao zhao >> Cc: linux-kernel在zh-kernel.org >> Subject: Re: Oracle/SUN 招聘真正的内核开发 >> Message-ID: <4BC3309E.4000603在126.com> >> Content-Type: text/plain; charset=GB2312 >> >> >> >>>>> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX >> >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 >> >>>>> >> >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 >> >>>>> >> 这个职位年薪多少W RMB阿? 有20W RMB不 >> >> >> >> >> ------------------------------ >> >> Message: 2 >> Date: Tue, 13 Apr 2010 12:29:04 +0800 (CST) >> From: lu >> To: linux-kernel在zh-kernel.org >> Subject: >>        squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> >> Message-ID: <2db42849.661c.127f56d798e.Coremail.lujing9101在163.com> >> Content-Type: text/plain; charset=gbk >> >> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> >> ------------------------------ >> >> Message: 3 >> Date: Tue, 13 Apr 2010 12:46:08 +0800 >> From: kaih luo >> To: lu , Linux-kernel在zh-kernel.org >> Subject: Re: >>        squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> >> Message-ID: >>         >> Content-Type: text/plain; charset=GB2312 >> >> 在 2010年4月13日 下午12:29,lu 写道: >> > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> > _______________________________________________ >> > Linux 内核开发中文邮件列表 >> > Linux-kernel在zh-kernel.org >> > http://zh-kernel.org/mailman/listinfo/linux-kernel >> > Linux 内核开发中文社区: http://zh-kernel.org >> >> 磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 >> >> ------------------------------ >> >> Message: 4 >> Date: Tue, 13 Apr 2010 13:11:13 +0800 >> From: kaih luo >> To: lu , Linux-kernel在zh-kernel.org >> Subject: Re: Re: >>        squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> >> Message-ID: >>         >> Content-Type: text/plain; charset=GB2312 >> >> 在 2010年4月13日 下午1:03,lu 写道: >> > 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 >> 打开磁盘缓存,CPU占用率会下来? >> > >> > >> > 在2010-04-13 12:46:08,"kaih luo" 写道: >> >>在 2010年4月13日 下午12:29,lu 写道: >> >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> >>> _______________________________________________ >> >>> Linux 内核开发中文邮件列表 >> >>> Linux-kernel在zh-kernel.org >> >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >> >>> Linux 内核开发中文社区: http://zh-kernel.org >> >> >> >>磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 >> > >> > >> > >> >> ------------------------------ >> >> Message: 5 >> Date: Tue, 13 Apr 2010 13:23:06 +0800 >> From: Drunkard Zhang >> To: kaih luo >> Cc: lu , Linux-kernel在zh-kernel.org >> Subject: Re: >>        squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> >> Message-ID: >>         >> Content-Type: text/plain; charset=UTF-8 >> >> 在 2010年4月13日 下午12:46,kaih luo 写道: >> >> > 在 2010年4月13日 下午12:29,lu 写道: >> > > squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> > >> >> >> CPU占用率高可能有多个起因。用htop或atop观察能看到是应用程序占用了CPU时间还是内核本身占用了很多CPU时间,对网卡驱动不太好的系统来说可能处理网卡的IRQ中断会占用大量时间,可能会达到50%以上。所以我原来用的开源的e1000e驱动换成Intel官方的驱动后性能好了很多。 >> >> 如果系统开始使用SWAP,它的性能就会急剧下降,建议关掉swap(或只留几十MB的交换空间,然后sysctl -w vm.swappiness=1)。 >> >> 如果怀疑是IO问题,试试 cache_dir null /tmp >> >> squid是单进程,不支持SMP确实是问题,可以尝试下这个: >> http://eu.squid-cache.org/ConfigExamples/ExtremeCarpFrontend >> >> -- >> 张绍文 >> gongfan193在gmail.com >> zhangsw在gwbnsh.net.cn >> 18601633785 >> >> ------------------------------ >> >> Message: 6 >> Date: Tue, 13 Apr 2010 13:28:50 +0800 >> From: Drunkard Zhang >> To: kaih luo >> Cc: lu , Linux-kernel在zh-kernel.org >> Subject: Re: Re: >>        squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> >> Message-ID: >>         >> Content-Type: text/plain; charset=UTF-8 >> >> 在 2010年4月13日 下午1:11,kaih luo 写道: >> >> > 在 2010年4月13日 下午1:03,lu 写道: >> > > 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 >> > 打开磁盘缓存,CPU占用率会下来? >> > >> >> >> 如果你的流量很大(单台200Mbit左右),建议你只用内存,少用或不用硬盘。我自己的经验:用SATA-2硬盘,每块硬盘用10G空间,在高负载下流量不会超过120M,再高延时就明显增大或流量开始抖动。 >> >> 内存很大也未必是好事,squid本身有局限性,我现在的机器在24GB内存下跑的很好,但64GB的怎么也跑不起来,后来听说是squid本身的局限性... >> >> > >> > > >> > > 在2010-04-13 12:46:08,"kaih luo" 写道: >> > >>在 2010年4月13日 下午12:29,lu 写道: >> > >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >> > >>> _______________________________________________ >> > >>> Linux 内核开发中文邮件列表 >> > >>> Linux-kernel在zh-kernel.org >> > >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >> > >>> Linux 内核开发中文社区: http://zh-kernel.org >> > >> >> > >>磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 >> > > >> > > >> > > >> > _______________________________________________ >> > Linux 内核开发中文邮件列表 >> > Linux-kernel在zh-kernel.org >> > http://zh-kernel.org/mailman/listinfo/linux-kernel >> > Linux 内核开发中文社区: http://zh-kernel.org >> > >> >> >> >> -- >> 张绍文 >> gongfan193在gmail.com >> zhangsw在gwbnsh.net.cn >> 18601633785 >> >> ------------------------------ >> >> Message: 7 >> Date: Tue, 13 Apr 2010 01:13:01 -0600 >> From: >> To: >> Subject: RE: Oracle/SUN 招聘真正的内核开发 >> Message-ID: >>        <885FCCD8138809458C8E4FE0A71C0A121D20DD91F1在cos-us-mb10.agilent.com >> > >> Content-Type: text/plain; charset="gb2312" >> >> 我看少于30w 没人来 >> >> -----Original Message----- >> From: linux-kernel-bounces在zh-kernel.org [mailto: >> linux-kernel-bounces在zh-kernel.org] On Behalf Of Figo.zhang >> Sent: Monday, April 12, 2010 10:39 PM >> To: yao zhao >> Cc: linux-kernel在zh-kernel.org >> Subject: Re: Oracle/SUN 招聘真正的内核开发 >> >> >> >>>>> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX >> >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 >> >>>>> >> >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 >> >>>>> >> 这个职位年薪多少W RMB阿? 有20W RMB不 >> >> >> >> ------------------------------ >> >> Message: 8 >> Date: Tue, 13 Apr 2010 15:27:30 +0800 >> From: Cheng Renquan >> To: Peter Chen , Adam Jiang >>         >> Cc: 中文内核邮件列表 >> Subject: Re: Char型设备驱动怎样支持多个设备? >> Message-ID: >>         >> Content-Type: text/plain; charset=UTF-8 >> >> 2010/4/12 Adam Jiang : >> > Hi, Peter >> > >> > >> 星期天的时候我仔细看了一下platform_device和platform_driver,似乎这个距离我想要的东西还有一段距离。因为,plafrom_bus提供了一种虚拟bus把设备连接起来的,而我的设备确确实实在pci >> > >> bus上,它的probe可以用pci_driver和pci_register_driver注册,似乎不需要platform_driver提供的probe等函数。 >> > >> > 这个dirver是驱动一个在pci bus上的设备,同时它又是多个Char设备的驱动程序,所以,似乎有点难搞。现在我采用的数据结构是 >> > >> > typedef struct port{ >> >  int filed1; >> >  char filed2; >> >  struct mutex port_mutex; >> >  ... >> > } port_t; >> > >> > struct foo_device { >> >   pci_dev pdev; >> >   spin_lock_t spin_lock; >> >   port_t    port[10]; /**< 10 devices */ >> > } foo_dev; >> > >> > >> 如果从userspace过来的requst,只有先判断它的minor设备号才取得相应的port[minor(inode)]来操作的,所以效率相当低下...... >> > 所以,我想将数据结构变更为 >> > >> > struct foo_device { >> >  int filed1;      /**< what's in port_t originally */ >> >  char filed2; >> >  struct mutex dev_mutex; >> > }; >> > struct foo_device  devices[10]; >> >> 十个设备有各自不同的数据结构啊, mutex 不会争用问题,什么效率低呢? >> >> 试试类似于 misc 设备构造一个虚拟的 class, 或者直接使用 misc 是否可以? >> >> int misc_register(struct miscdevice * misc) >> >>        misc->this_device = device_create(misc_class, misc->parent, dev, >>                                          misc, "%s", misc->name); >> >>        misc_class = class_create(THIS_MODULE, "misc"); >> >> >> > >> > 继续寻找更好的解决办法。 >> > >> > /大头阿当 >> >> ------------------------------ >> >> Message: 9 >> Date: Tue, 13 Apr 2010 15:47:32 +0800 >> From: Cheng Renquan >> To: Adam Jiang >> Cc: delphij在gmail.com, linux-kernel在zh-kernel.org, zxdker在gmail.com, >>        imterry在gmail.com, lyy.henry在gmail.com >> Subject: Re: Oracle/SUN 招聘真正的内核开发 >> Message-ID: >>         >> Content-Type: text/plain; charset=UTF-8 >> >> 2010/4/12 Adam Jiang : >> > 2010/4/12 oliver yang : >> >> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX >> >> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实現。 >> >> >> >> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 >> >> >> >> 此职位不适合工作经验少于5年的朋友。谢谢。 >> > >> > 这个职位在美国可以拿到8-10万美刀/年,不知道在北京可以拿到什么水平? >> >> 五年水平也是在美国 8-10万美刀/年 较多了;看过的一些小不点硅谷创业公司都敢宣称 "我们的SE平均工龄在七年以上," (因此软件质量是有保障的, >> ...) >> >> 这个职位在日本可以拿到 5百万日元/年 ??? 合人民币30W, >> 这个职位在新加坡可以拿到 6-8万新元/年,合人民币30W+, (但总体新加坡国家很小,此类职位相当稀缺) >> 这个职位在澳洲可以拿到 6-8万澳元/年 ??? 合人民币40W+ >> >> 抄送里面 还有在澳洲、英国、迪拜工作的 同学继续; 邮件存档在 >> http://zh-kernel.org/pipermail/linux-kernel/2010-April/014170.html >> http://zh-kernel.org/pipermail/linux-kernel/2010-April/thread.html#14170 >> >> 不知道在北京可以拿到什么水平? 30W RMB? >> >> 楼主 oliver yang 是否可以给个明确(或者模糊)的下限上限? >> >> ------------------------------ >> >> _______________________________________________ >> Linux内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org >> >> 结束Linux-kernel 摘要, 卷 33, 发布 22 >> ******************************************** >> > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From figure1802在126.com Tue Apr 13 19:31:13 2010 From: figure1802在126.com (Figo.zhang) Date: Tue, 13 Apr 2010 19:31:13 +0800 Subject: Oracle/SUN =?UTF-8?B?5oub6IGY55yf5q2j55qE5YaF5qC45byA5Y+R?= In-Reply-To: References: <885FCCD8138809458C8E4FE0A71C0A121D20DD94B3@cos-us-mb10.agilent.com> Message-ID: <4BC45601.2040802@126.com> >> 一个普通的,senior一点的C++程序员都能开到,20K/M以上,像这种,内核的,少说,也有,4-50K/M吧。要不然,用丰厚二字形容,有点过吧。 >> 20K/月,这么高工资,那一年 20K x 13 = 26W,那个公司能给这么多阿?要本科 毕业多少年? >> >> >> >> Message: 1 >> Date: Mon, 12 Apr 2010 22:39:26 +0800 >> From: "Figo.zhang" >> To: yao zhao >> Cc: linux-kernel在zh-kernel.org >> Subject: Re: Oracle/SUN 招聘真正的内核开发 >> Message-ID:<4BC3309E.4000603在126.com> >> Content-Type: text/plain; charset=GB2312 >> >> >> >>>>>>> 我们组在北京开了三个职位, >>>>>>> >>> 主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX >>> >>>>>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 >>>>>>>> >>>>>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 >>>>>>>> >>>>>>>> >>> 这个职位年薪多少W RMB阿? 有20W RMB不 >>> >> >> >> 在 2010年4月13日 下午3:48,写道: >> >> >>> 想在 Linux-kernel 邮件列表发言,请写信给: >>> linux-kernel在zh-kernel.org >>> >>> 要订阅或者退订列表,可以访问万维网地址: >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>> 或者可以向: >>> linux-kernel-request在zh-kernel.org >>> 发送主题或者正文为'help'的邮件。 >>> >>> 您可以通过邮件地址: >>> linux-kernel-owner在zh-kernel.org >>> 联系到此列表的管理员。 >>> >>> 当回信时,请给一个适当的标题,这样会比 "Re: >>> Contents of Linux-kernel digest..."更清楚明白。 >>> >>> >>> 这是邮件列表的摘要。如果想要回复此邮件,请务必注意: >>> 1. 根据要回复的主题,重新给邮件加上合适的标题 >>> 2. 去除和回复无关的其他引文。 >>> >>> 本日主题: >>> >>> 1. Re: Oracle/SUN 招聘真正的内核开发 (Figo.zhang) >>> 2. >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> (lu) >>> 3. Re: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> (kaih luo) >>> 4. Re: Re: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> (kaih luo) >>> 5. Re: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> (Drunkard Zhang) >>> 6. Re: Re: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> (Drunkard Zhang) >>> 7. RE: Oracle/SUN 招聘真正的内核开发 (jon_zhou在agilent.com) >>> 8. Re: Char型设备驱动怎样支持多个设备? (Cheng Renquan) >>> 9. Re: Oracle/SUN 招聘真正的内核开发 (Cheng Renquan) >>> >>> >>> ---------------------------------------------------------------------- >>> >>> Message: 1 >>> Date: Mon, 12 Apr 2010 22:39:26 +0800 >>> From: "Figo.zhang" >>> To: yao zhao >>> Cc: linux-kernel在zh-kernel.org >>> Subject: Re: Oracle/SUN 招聘真正的内核开发 >>> Message-ID:<4BC3309E.4000603在126.com> >>> Content-Type: text/plain; charset=GB2312 >>> >>> >>> >>>>>>>> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX >>>>>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 >>>>>>>> >>>>>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 >>>>>>>> >>>>>>>> >>> 这个职位年薪多少W RMB阿? 有20W RMB不 >>> >>> >>> >>> >>> ------------------------------ >>> >>> Message: 2 >>> Date: Tue, 13 Apr 2010 12:29:04 +0800 (CST) >>> From: lu >>> To: linux-kernel在zh-kernel.org >>> Subject: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> >>> Message-ID:<2db42849.661c.127f56d798e.Coremail.lujing9101在163.com> >>> Content-Type: text/plain; charset=gbk >>> >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> >>> ------------------------------ >>> >>> Message: 3 >>> Date: Tue, 13 Apr 2010 12:46:08 +0800 >>> From: kaih luo >>> To: lu, Linux-kernel在zh-kernel.org >>> Subject: Re: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> >>> Message-ID: >>> >>> Content-Type: text/plain; charset=GB2312 >>> >>> 在 2010年4月13日 下午12:29,lu 写道: >>> >>>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>>> _______________________________________________ >>>> Linux 内核开发中文邮件列表 >>>> Linux-kernel在zh-kernel.org >>>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>>> Linux 内核开发中文社区: http://zh-kernel.org >>>> >>> 磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 >>> >>> ------------------------------ >>> >>> Message: 4 >>> Date: Tue, 13 Apr 2010 13:11:13 +0800 >>> From: kaih luo >>> To: lu, Linux-kernel在zh-kernel.org >>> Subject: Re: Re: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> >>> Message-ID: >>> >>> Content-Type: text/plain; charset=GB2312 >>> >>> 在 2010年4月13日 下午1:03,lu 写道: >>> >>>> 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 >>>> >>> 打开磁盘缓存,CPU占用率会下来? >>> >>>> >>>> 在2010-04-13 12:46:08,"kaih luo" 写道: >>>> >>>>> 在 2010年4月13日 下午12:29,lu 写道: >>>>> >>>>>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>>>>> _______________________________________________ >>>>>> Linux 内核开发中文邮件列表 >>>>>> Linux-kernel在zh-kernel.org >>>>>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>>>>> Linux 内核开发中文社区: http://zh-kernel.org >>>>>> >>>>> 磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 >>>>> >>>> >>>> >>>> >>> ------------------------------ >>> >>> Message: 5 >>> Date: Tue, 13 Apr 2010 13:23:06 +0800 >>> From: Drunkard Zhang >>> To: kaih luo >>> Cc: lu, Linux-kernel在zh-kernel.org >>> Subject: Re: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> >>> Message-ID: >>> >>> Content-Type: text/plain; charset=UTF-8 >>> >>> 在 2010年4月13日 下午12:46,kaih luo写道: >>> >>> >>>> 在 2010年4月13日 下午12:29,lu 写道: >>>> >>>>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>>>> >>>> >>> >>> CPU占用率高可能有多个起因。用htop或atop观察能看到是应用程序占用了CPU时间还是内核本身占用了很多CPU时间,对网卡驱动不太好的系统来说可能处理网卡的IRQ中断会占用大量时间,可能会达到50%以上。所以我原来用的开源的e1000e驱动换成Intel官方的驱动后性能好了很多。 >>> >>> 如果系统开始使用SWAP,它的性能就会急剧下降,建议关掉swap(或只留几十MB的交换空间,然后sysctl -w vm.swappiness=1)。 >>> >>> 如果怀疑是IO问题,试试 cache_dir null /tmp >>> >>> squid是单进程,不支持SMP确实是问题,可以尝试下这个: >>> http://eu.squid-cache.org/ConfigExamples/ExtremeCarpFrontend >>> >>> -- >>> 张绍文 >>> gongfan193在gmail.com >>> zhangsw在gwbnsh.net.cn >>> 18601633785 >>> >>> ------------------------------ >>> >>> Message: 6 >>> Date: Tue, 13 Apr 2010 13:28:50 +0800 >>> From: Drunkard Zhang >>> To: kaih luo >>> Cc: lu, Linux-kernel在zh-kernel.org >>> Subject: Re: Re: >>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>> >>> Message-ID: >>> >>> Content-Type: text/plain; charset=UTF-8 >>> >>> 在 2010年4月13日 下午1:11,kaih luo写道: >>> >>> >>>> 在 2010年4月13日 下午1:03,lu 写道: >>>> >>>>> 不是内存问题,内存很大,有可能是报文从内核传到用户空间这块,不知道怎么优化 >>>>> >>>> 打开磁盘缓存,CPU占用率会下来? >>>> >>>> >>> >>> 如果你的流量很大(单台200Mbit左右),建议你只用内存,少用或不用硬盘。我自己的经验:用SATA-2硬盘,每块硬盘用10G空间,在高负载下流量不会超过120M,再高延时就明显增大或流量开始抖动。 >>> >>> 内存很大也未必是好事,squid本身有局限性,我现在的机器在24GB内存下跑的很好,但64GB的怎么也跑不起来,后来听说是squid本身的局限性... >>> >>> >>>> >>>>> 在2010-04-13 12:46:08,"kaih luo" 写道: >>>>> >>>>>> 在 2010年4月13日 下午12:29,lu 写道: >>>>>> >>>>>>> squid高负载时,不开磁盘缓存,内核CPU占用过高,怎么解决 >>>>>>> _______________________________________________ >>>>>>> Linux 内核开发中文邮件列表 >>>>>>> Linux-kernel在zh-kernel.org >>>>>>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>>>>>> Linux 内核开发中文社区: http://zh-kernel.org >>>>>>> >>>>>> 磁盘上有swap分区吗?如果有swap分区,可能是内存换入换出的问题,那样只有加大内存了 >>>>>> >>>>> >>>>> >>>>> >>>> _______________________________________________ >>>> Linux 内核开发中文邮件列表 >>>> Linux-kernel在zh-kernel.org >>>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>>> Linux 内核开发中文社区: http://zh-kernel.org >>>> >>>> >>> >>> >>> -- >>> 张绍文 >>> gongfan193在gmail.com >>> zhangsw在gwbnsh.net.cn >>> 18601633785 >>> >>> ------------------------------ >>> >>> Message: 7 >>> Date: Tue, 13 Apr 2010 01:13:01 -0600 >>> From: >>> To: >>> Subject: RE: Oracle/SUN 招聘真正的内核开发 >>> Message-ID: >>> <885FCCD8138809458C8E4FE0A71C0A121D20DD91F1在cos-us-mb10.agilent.com >>> >>>> >>> Content-Type: text/plain; charset="gb2312" >>> >>> 我看少于30w 没人来 >>> >>> -----Original Message----- >>> From: linux-kernel-bounces在zh-kernel.org [mailto: >>> linux-kernel-bounces在zh-kernel.org] On Behalf Of Figo.zhang >>> Sent: Monday, April 12, 2010 10:39 PM >>> To: yao zhao >>> Cc: linux-kernel在zh-kernel.org >>> Subject: Re: Oracle/SUN 招聘真正的内核开发 >>> >>> >>> >>>>>>>> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX >>>>>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实�。 >>>>>>>> >>>>>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 >>>>>>>> >>>>>>>> >>> 这个职位年薪多少W RMB阿? 有20W RMB不 >>> >>> >>> >>> ------------------------------ >>> >>> Message: 8 >>> Date: Tue, 13 Apr 2010 15:27:30 +0800 >>> From: Cheng Renquan >>> To: Peter Chen, Adam Jiang >>> >>> Cc: 中文内核邮件列表 >>> Subject: Re: Char型设备驱动怎样支持多个设备? >>> Message-ID: >>> >>> Content-Type: text/plain; charset=UTF-8 >>> >>> 2010/4/12 Adam Jiang: >>> >>>> Hi, Peter >>>> >>>> >>>> >>> 星期天的时候我仔细看了一下platform_device和platform_driver,似乎这个距离我想要的东西还有一段距离。因为,plafrom_bus提供了一种虚拟bus把设备连接起来的,而我的设备确确实实在pci >>> >>>> >>> bus上,它的probe可以用pci_driver和pci_register_driver注册,似乎不需要platform_driver提供的probe等函数。 >>> >>>> 这个dirver是驱动一个在pci bus上的设备,同时它又是多个Char设备的驱动程序,所以,似乎有点难搞。现在我采用的数据结构是 >>>> >>>> typedef struct port{ >>>> int filed1; >>>> char filed2; >>>> struct mutex port_mutex; >>>> ... >>>> } port_t; >>>> >>>> struct foo_device { >>>> pci_dev pdev; >>>> spin_lock_t spin_lock; >>>> port_t port[10]; /**< 10 devices */ >>>> } foo_dev; >>>> >>>> >>>> >>> 如果从userspace过来的requst,只有先判断它的minor设备号才取得相应的port[minor(inode)]来操作的,所以效率相当低下...... >>> >>>> 所以,我想将数据结构变更为 >>>> >>>> struct foo_device { >>>> int filed1; /**< what's in port_t originally */ >>>> char filed2; >>>> struct mutex dev_mutex; >>>> }; >>>> struct foo_device devices[10]; >>>> >>> 十个设备有各自不同的数据结构啊, mutex 不会争用问题,什么效率低呢? >>> >>> 试试类似于 misc 设备构造一个虚拟的 class, 或者直接使用 misc 是否可以? >>> >>> int misc_register(struct miscdevice * misc) >>> >>> misc->this_device = device_create(misc_class, misc->parent, dev, >>> misc, "%s", misc->name); >>> >>> misc_class = class_create(THIS_MODULE, "misc"); >>> >>> >>> >>>> 继续寻找更好的解决办法。 >>>> >>>> /大头阿当 >>>> >>> ------------------------------ >>> >>> Message: 9 >>> Date: Tue, 13 Apr 2010 15:47:32 +0800 >>> From: Cheng Renquan >>> To: Adam Jiang >>> Cc: delphij在gmail.com, linux-kernel在zh-kernel.org, zxdker在gmail.com, >>> imterry在gmail.com, lyy.henry在gmail.com >>> Subject: Re: Oracle/SUN 招聘真正的内核开发 >>> Message-ID: >>> >>> Content-Type: text/plain; charset=UTF-8 >>> >>> 2010/4/12 Adam Jiang: >>> >>>> 2010/4/12 oliver yang: >>>> >>>>> 我们组在北京开了三个职位,主要是做Solaris操作系统内核IO方面的项目,要求有内核开发经验,熟悉Linux/UNIX >>>>> 驱动程序和内核IO子系统PCI/Interrupt/DMA的实現。 >>>>> >>>>> 有虚拟化开发经验和熟读PCI规范的优先考虑。英语要好,要到可以开电话会议的程度,薪水很丰厚,有意者请发简历给我。 >>>>> >>>>> 此职位不适合工作经验少于5年的朋友。谢谢。 >>>>> >>>> 这个职位在美国可以拿到8-10万美刀/年,不知道在北京可以拿到什么水平? >>>> >>> 五年水平也是在美国 8-10万美刀/年 较多了;看过的一些小不点硅谷创业公司都敢宣称 "我们的SE平均工龄在七年以上," (因此软件质量是有保障的, >>> ...) >>> >>> 这个职位在日本可以拿到 5百万日元/年 ??? 合人民币30W, >>> 这个职位在新加坡可以拿到 6-8万新元/年,合人民币30W+, (但总体新加坡国家很小,此类职位相当稀缺) >>> 这个职位在澳洲可以拿到 6-8万澳元/年 ??? 合人民币40W+ >>> >>> 抄送里面 还有在澳洲、英国、迪拜工作的 同学继续; 邮件存档在 >>> http://zh-kernel.org/pipermail/linux-kernel/2010-April/014170.html >>> http://zh-kernel.org/pipermail/linux-kernel/2010-April/thread.html#14170 >>> >>> 不知道在北京可以拿到什么水平? 30W RMB? >>> >>> 楼主 oliver yang 是否可以给个明确(或者模糊)的下限上限? >>> >>> ------------------------------ >>> >>> _______________________________________________ >>> Linux内核开发中文邮件列表 >>> Linux-kernel在zh-kernel.org >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>> Linux 内核开发中文社区: http://zh-kernel.org >>> >>> 结束Linux-kernel 摘要, 卷 33, 发布 22 >>> ******************************************** >>> >>> >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org >> > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From qingshenlwy在gmail.com Wed Apr 14 12:03:24 2010 From: qingshenlwy在gmail.com (Wenyi Liu) Date: Wed, 14 Apr 2010 12:03:24 +0800 Subject: =?GB2312?B?s8m2vM/W1NrT0LrPysq1xExpbnV4IEtlcm5lbLXEz+C52Nawzrs=?= =?GB2312?B?wvCjvw==?= Message-ID: 不好意思,打扰大家了,我打算在成都找一个Linux 内核相关的职位,不知道谁能推荐推荐谢谢了。 因为我家里的原因和我不习惯南京的气候,所以我回到了成都,工作经验比较短,但是对Linux内核有两年的研究,希望别太在意我的工作经验。 现在我自认为能够胜任的岗位有: Linux Kernel 维护和Linux驱动开发。如果贵公司有相关职位,还请您帮忙推荐推荐,谢谢。 个 人简 历 基 本 资 料 姓 名:刘文溢 性 别:男 籍 贯:四川 眉山 出生年月:1986.03 学 历:本科 手 机:13056618633 Email : qingshenlwy在gmail.com 教 育 背 景 2005.09 ~ 2009.07 西南石油大学 计算机科学学院 软件工程 专 业 技 能 ・ 熟悉 Linux Kernel --熟悉Linux内核框架(文件系统,内存管理,进程调度,中断控制等) --对btrfs(B-Tree Filesystem)有一定研究 --熟悉Linux Kernel社区开发、维护流程 --熟悉Linux驱动开发模式 ・ 熟悉算法设计和优化; --大学期间参与ACM/ICPC,对主要算法设计和代码优化有一定的经验 工 作 经 历 公司名称:诚迈科技(南京)有限公司 时 间:2009.07~2010.01 所在部门:研发部 职 位:软件工程师 工 作 项 目 工作项目:某公司芯片Android项目 时 间:2009.07 ~ 2010.01 项目简述:为某公司研发的ARM11芯片提供Android开发支持。 工作内容: 2009.7 ~ 2009.8 在Alpha版芯片上调试Linux 2.6.27 BSP包。 2009.8 ~ 2009.10 在HDK版芯片上测试Linux 2.6.27 BSP包,并给出BUG分析和修改意见。 2009.10 将Linux 2.6.27项目移植到Linux 2.6.29上。 2009.10 ~ 2009.11 ,带领一个二人小组在HDK版本芯片上调试Linux 2.6.29。 2009.12,编写下一款芯片的 Linux PCM相关驱动的设计文档。 英 语 水 平 在工作中能够熟练使用英文同项目组与客户进行无障碍交流。 在社区中熟练使用英文与全世界Linux Kernel开发者讨论开发经验和提交代码修正。 社区参与 OpenOffice.org中文计划 Community Translation Interface(OS.org - XWiki modules) Linux Kernel Mail List 自 我 评 价 热爱生活,热爱技术。 良好的沟通,协作,学习,心理承受能力 爱好广泛、身体健康、有活力 富有创新精神和创新能力。 From csduan2009在gmail.com Wed Apr 14 12:43:24 2010 From: csduan2009在gmail.com (chensheng duan) Date: Wed, 14 Apr 2010 12:43:24 +0800 Subject: =?GB2312?B?UmU6ILPJtrzP1tTa09C6z8rKtcRMaW51eCBLZXJuZWy1xM/gudjWsA==?= =?GB2312?B?zrvC8KO/?= In-Reply-To: References: Message-ID: 有印象中兴成都最近在招bsp这块 在 2010年4月14日 下午12:03,Wenyi Liu 写道: > 不好意思,打扰大家了,我打算在成都找一个Linux 内核相关的职位,不知道谁能推荐推荐谢谢了。 > > 因为我家里的原因和我不习惯南京的气候,所以我回到了成都,工作经验比较短,但是对Linux内核有两年的研究,希望别太在意我的工作经验。 > > 现在我自认为能够胜任的岗位有: Linux Kernel 维护和Linux驱动开发。如果贵公司有相关职位,还请您帮忙推荐推荐,谢谢。 > > > > 个 人简 历 > > > 基 本 资 料 > 姓 名:刘文溢 性 别:男 > 籍 贯:四川 眉山 出生年月:1986.03 > 学 历:本科 手 机:13056618633 > Email : qingshenlwy在gmail.com > > 教 育 背 景 > 2005.09 ~ 2009.07 西南石油大学 计算机科学学院 软件工程 > > 专 业 技 能 > ・ 熟悉 Linux Kernel > --熟悉Linux内核框架(文件系统,内存管理,进程调度,中断控制等) > --对btrfs(B-Tree Filesystem)有一定研究 > --熟悉Linux Kernel社区开发、维护流程 > --熟悉Linux驱动开发模式 > > ・ 熟悉算法设计和优化; > --大学期间参与ACM/ICPC,对主要算法设计和代码优化有一定的经验 > > 工 作 经 历 > 公司名称:诚迈科技(南京)有限公司 > 时 间:2009.07~2010.01 > 所在部门:研发部 > 职 位:软件工程师 > > 工 作 项 目 > 工作项目:某公司芯片Android项目 > 时 间:2009.07 ~ 2010.01 > 项目简述:为某公司研发的ARM11芯片提供Android开发支持。 > 工作内容: > 2009.7 ~ 2009.8 在Alpha版芯片上调试Linux 2.6.27 BSP包。 > 2009.8 ~ 2009.10 在HDK版芯片上测试Linux 2.6.27 BSP包,并给出BUG分析和修改意见。 > 2009.10 将Linux 2.6.27项目移植到Linux 2.6.29上。 > 2009.10 ~ 2009.11 ,带领一个二人小组在HDK版本芯片上调试Linux 2.6.29。 > 2009.12,编写下一款芯片的 Linux PCM相关驱动的设计文档。 > > 英 语 水 平 > 在工作中能够熟练使用英文同项目组与客户进行无障碍交流。 > 在社区中熟练使用英文与全世界Linux Kernel开发者讨论开发经验和提交代码修正。 > > 社区参与 > OpenOffice.org中文计划 > Community Translation Interface(OS.org - XWiki modules) > Linux Kernel Mail List > > 自 我 评 价 > 热爱生活,热爱技术。 > 良好的沟通,协作,学习,心理承受能力 > 爱好广泛、身体健康、有活力 > 富有创新精神和创新能力。 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From r58472在freescale.com Wed Apr 14 12:46:44 2010 From: r58472在freescale.com (Li Yang-R58472) Date: Wed, 14 Apr 2010 12:46:44 +0800 Subject: =?utf-8?B?UkU6IOaIkOmDveeOsOWcqOacieWQiOmAgueahExpbnV4IEtlcm5l?= =?utf-8?B?bOeahOebuOWFs+iBjOS9jeWQl++8nw==?= In-Reply-To: References: Message-ID: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> 招聘信息数量不是很多,发在这里还好。 求职或者个人简历就别往这发了,去智联一类的网站发好么? >-----Original Message----- >From: linux-kernel-bounces在zh-kernel.org >[mailto:linux-kernel-bounces在zh-kernel.org] On Behalf Of Wenyi Liu >Sent: Wednesday, April 14, 2010 12:03 PM >To: linux-kernel >Subject: 成都现在有合适的Linux Kernel的相关职位吗? > >不好意思,打扰大家了,我打算在成都找一个Linux 内核相关的职位,不知道谁能推荐推荐谢谢了。 > >因为我家里的原因和我不习惯南京的气候,所以我回到了成都,工作经验比较短,但是对Linux内核有两年的研究,希望别太在意我的工作经验。 > >现在我自认为能够胜任的岗位有: Linux Kernel 维护和Linux驱动开发。如果贵公司有相关职位,还请您帮忙推荐推荐,谢谢。 From yorkzhuo在gmail.com Mon Apr 12 12:35:39 2010 From: yorkzhuo在gmail.com (york zhuo) Date: Mon, 12 Apr 2010 12:35:39 +0800 Subject: =?UTF-8?B?RndkOiBbT1Rde+aLm+iBmH13ZWLpmLLngavlopnlvIDlj5Hlt6XnqIvluIg=?= In-Reply-To: References: Message-ID: ---------- Forwarded message ---------- From: york zhuo Date: 2010/4/12 Subject: [OT]{招聘}web防火墙开发工程师 To: shlug在googlegroups.com, szlug在googlegroups.com, zeuux-universe在zeuux.org, linuxdriver在googlegroups.com, pongba在googlegroups.com 产品:web防火墙 要求: 1. 有linux内核开发经验(主要为网络这一块,对此块感兴趣亦可) 2. IDS优先 3. 2年以上经验(含2年) 工作地点:杭州 滨江 待遇:面议 (基本为 5金 + 年薪,年终另算, 最低6k/月税后,上不封顶) -- =========== -york.zhuo -- =========== -york.zhuo From yujian.china在gmail.com Wed Apr 14 14:26:15 2010 From: yujian.china在gmail.com (yujian) Date: Wed, 14 Apr 2010 14:26:15 +0800 Subject: =?GB2312?B?UmU6ILPJtrzP1tTa09C6z8rKtcRMaW51eCBLZXJuZWy1xM/gudjWsA==?= =?GB2312?B?zrvC8KO/?= In-Reply-To: References: Message-ID: 朋友, 你参加的那个 “OpenOffice.org中文计划 ” 是翻译里面的文档,还是做开发? 在 2010年4月14日 下午12:03,Wenyi Liu 写道: > 不好意思,打扰大家了,我打算在成都找一个Linux 内核相关的职位,不知道谁能推荐推荐谢谢了。 > > 因为我家里的原因和我不习惯南京的气候,所以我回到了成都,工作经验比较短,但是对Linux内核有两年的研究,希望别太在意我的工作经验。 > > 现在我自认为能够胜任的岗位有: Linux Kernel 维护和Linux驱动开发。如果贵公司有相关职位,还请您帮忙推荐推荐,谢谢。 > > > > 个 人简 历 > > > 基 本 资 料 > 姓 名:刘文溢 性 别:男 > 籍 贯:四川 眉山 出生年月:1986.03 > 学 历:本科 手 机:13056618633 > Email : qingshenlwy在gmail.com > > 教 育 背 景 > 2005.09 ~ 2009.07 西南石油大学 计算机科学学院 软件工程 > > 专 业 技 能 > ・ 熟悉 Linux Kernel > --熟悉Linux内核框架(文件系统,内存管理,进程调度,中断控制等) > --对btrfs(B-Tree Filesystem)有一定研究 > --熟悉Linux Kernel社区开发、维护流程 > --熟悉Linux驱动开发模式 > > ・ 熟悉算法设计和优化; > --大学期间参与ACM/ICPC,对主要算法设计和代码优化有一定的经验 > > 工 作 经 历 > 公司名称:诚迈科技(南京)有限公司 > 时 间:2009.07~2010.01 > 所在部门:研发部 > 职 位:软件工程师 > > 工 作 项 目 > 工作项目:某公司芯片Android项目 > 时 间:2009.07 ~ 2010.01 > 项目简述:为某公司研发的ARM11芯片提供Android开发支持。 > 工作内容: > 2009.7 ~ 2009.8 在Alpha版芯片上调试Linux 2.6.27 BSP包。 > 2009.8 ~ 2009.10 在HDK版芯片上测试Linux 2.6.27 BSP包,并给出BUG分析和修改意见。 > 2009.10 将Linux 2.6.27项目移植到Linux 2.6.29上。 > 2009.10 ~ 2009.11 ,带领一个二人小组在HDK版本芯片上调试Linux 2.6.29。 > 2009.12,编写下一款芯片的 Linux PCM相关驱动的设计文档。 > > 英 语 水 平 > 在工作中能够熟练使用英文同项目组与客户进行无障碍交流。 > 在社区中熟练使用英文与全世界Linux Kernel开发者讨论开发经验和提交代码修正。 > > 社区参与 > OpenOffice.org中文计划 > Community Translation Interface(OS.org - XWiki modules) > Linux Kernel Mail List > > 自 我 评 价 > 热爱生活,热爱技术。 > 良好的沟通,协作,学习,心理承受能力 > 爱好广泛、身体健康、有活力 > 富有创新精神和创新能力。 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From chenlong在ctbri.com.cn Wed Apr 14 14:26:30 2010 From: chenlong在ctbri.com.cn (Chenlong) Date: Wed, 14 Apr 2010 14:26:30 +0800 Subject: =?UTF-8?B?5o+S5YWlYXNsYeeahHNuZC5rb+aooeWdl+WHuueOsE1vZHVsZSBJbnZhaWxkIA==?= =?UTF-8?B?Rm9ybWF05piv5LuA5LmI5Y6f5Zug5ZWK77yf?= In-Reply-To: <4BC45601.2040802@126.com> References: <885FCCD8138809458C8E4FE0A71C0A121D20DD94B3@cos-us-mb10.agilent.com> <4BC45601.2040802@126.com> Message-ID: <002401cadb9b$6d7fdb30$487f9190$@com.cn> 插入模块出现Module invalid format会是有什么原因导致的?模块都是同内核一起编译出来的,不应该出现二进制错的问题啊? From zhitong.wangzt在alibaba-inc.com Wed Apr 14 15:00:49 2010 From: zhitong.wangzt在alibaba-inc.com (=?utf-8?B?546L5pm66YCa?=) Date: Wed, 14 Apr 2010 15:00:49 +0800 Subject: =?utf-8?B?562U5aSNOiDmj5LlhaVhc2xh55qEc25kLmtv5qih5Z2X5Ye6546wTW9kdWxl?= =?utf-8?B?IEludmFpbGQgRm9ybWF05piv5LuA5LmI5Y6f5Zug5ZWK77yf?= In-Reply-To: <002401cadb9b$6d7fdb30$487f9190$@com.cn> References: <885FCCD8138809458C8E4FE0A71C0A121D20DD94B3@cos-us-mb10.agilent.com> <4BC45601.2040802@126.com> <002401cadb9b$6d7fdb30$487f9190$@com.cn> Message-ID: <65ACD41B97C6E842BC99888E21CB46533AA7018605@CNHZ-EXCMS-03.ali.com> 这里有仔细的分析, 可以参考下: http://blog.lilinux.net/2010/03/kernel-module-verify/ -----邮件原件----- 发件人: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] 代表 Chenlong 发送时间: 2010年4月14日 14:27 收件人: linux-kernel在zh-kernel.org 主题: 插入asla的snd.ko模块出现Module Invaild Format是什么原因啊? 插入模块出现Module invalid format会是有什么原因导致的?模块都是同内核一起编译出来的,不应该出现二进制错的问题啊? _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org This email (including any attachments) is confidential and may be legally privileged. If you received this email in error, please delete it immediately and do not copy it or use it for any purpose or disclose its contents to any other person. Thank you. 本电邮(包括任何附件)可能含有机密资料并受法律保护。如您不是正确的收件人,请您立即删除本邮件。请不要将本电邮进行复制并用作任何其他用途、或透露本邮件之内容。谢谢。 From figure1802在126.com Wed Apr 14 20:16:12 2010 From: figure1802在126.com (Figo.zhang) Date: Wed, 14 Apr 2010 20:16:12 +0800 Subject: =?UTF-8?B?5oiQ6YO9546w5Zyo5pyJ5ZCI6YCC55qETGludXggS2VybmVs55qE?= =?UTF-8?B?55u45YWz6IGM5L2N5ZCX77yf?= In-Reply-To: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> References: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> Message-ID: <4BC5B20C.3060106@126.com> On 04/14/2010 12:46 PM, Li Yang-R58472 wrote: > 招聘信息数量不是很多,发在这里还好。 > 求职或者个人简历就别往这发了,去智联一类的网站发好么? > 发到这里挺好的,有伯乐可以帮你推荐推荐。 > >> -----Original Message----- >> From: linux-kernel-bounces在zh-kernel.org >> [mailto:linux-kernel-bounces在zh-kernel.org] On Behalf Of Wenyi Liu >> Sent: Wednesday, April 14, 2010 12:03 PM >> To: linux-kernel >> Subject: 成都现在有合适的Linux Kernel的相关职位吗? >> >> 不好意思,打扰大家了,我打算在成都找一个Linux 内核相关的职位,不知道谁能推荐推荐谢谢了。 >> >> 因为我家里的原因和我不习惯南京的气候,所以我回到了成都,工作经验比较短,但是对Linux内核有两年的研究,希望别太在意我的工作经验。 >> >> 现在我自认为能够胜任的岗位有: Linux Kernel 维护和Linux驱动开发。如果贵公司有相关职位,还请您帮忙推荐推荐,谢谢。 >> > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From hangbing0203在gmail.com Thu Apr 15 08:25:50 2010 From: hangbing0203在gmail.com (=?UTF-8?B?5YiY6Ziz?=) Date: Thu, 15 Apr 2010 08:25:50 +0800 Subject: =?UTF-8?B?YXUxMjUwIGNzM+eJh+mAieWcsOWdgOaYr+WkmuWwke+8nw==?= Message-ID: 大家好: 由于数据手册给的不是很完整,找不到CS的地址。 所以想问大家 mips au1250 cs3地址是多少? From hujb在bjcarnation.com.cn Thu Apr 15 19:38:21 2010 From: hujb在bjcarnation.com.cn (=?GB2312?B?uvq9qLH2?=) Date: Thu, 15 Apr 2010 19:38:21 +0800 Subject: mmap =?GB2312?B?t7W72LXEtdjWt9T1w7TAz7eiyfqx5Luvo78=?= Message-ID: <4BC6FAAD.8080003@bjcarnation.com.cn> 各位: 我在内起启动的时候分配了bootmem,申请了64MB,在驱动中实现了一个mmap映射的 调用。 现在有个问题是mmap系统调用返回的地址并不总指向这64M的其实地址,有一个偏 差(offset),这个差值是稳定的。原来是可以的,但我重新编译了内核以后就出现 上面那种情况,同一个内核的两次编译都可能不一样。不得其解,各位有没有遇到 这种情况的? 我的平台是:powerpc(AMCC 460EX),原来的内核是2.6.25,现在用的是2.6.33 (有问题的) From kaih.luo.cn在gmail.com Thu Apr 15 12:57:23 2010 From: kaih.luo.cn在gmail.com (kaih luo) Date: Thu, 15 Apr 2010 12:57:23 +0800 Subject: =?GB2312?B?UmU6IG1tYXAgt7W72LXEtdjWt9T1w7TAz7eiyfqx5Luvo78=?= In-Reply-To: <4BC6FAAD.8080003@bjcarnation.com.cn> References: <4BC6FAAD.8080003@bjcarnation.com.cn> Message-ID: 在 2010年4月15日 下午7:38,胡建宾 写道: > 各位: > > 我在内起启动的时候分配了bootmem,申请了64MB,在驱动中实现了一个mmap映射的 > 调用。 > 现在有个问题是mmap系统调用返回的地址并不总指向这64M的其实地址,有一个偏 > 差(offset),这个差值是稳定的。原来是可以的,但我重新编译了内核以后就出现 > 上面那种情况,同一个内核的两次编译都可能不一样。不得其解,各位有没有遇到 > 这种情况的? > > 我的平台是:powerpc(AMCC 460EX),原来的内核是2.6.25,现在用的是2.6.33 > (有问题的) > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org mmap返回的是用户空间的地址,这个地址和内核线性地址之间没有必然的关系 From Xiuwen.a.Wu在alcatel-sbell.com.cn Thu Apr 15 14:01:55 2010 From: Xiuwen.a.Wu在alcatel-sbell.com.cn (WU XIUWEN A) Date: Thu, 15 Apr 2010 14:01:55 +0800 Subject: =?gb2312?B?c2l6ZW9mILHg0uu07c7z?= In-Reply-To: References: <4BC6FAAD.8080003@bjcarnation.com.cn> Message-ID: Hello, 下面代码片段用GCC编译出现错误: `sizeof' applied to incomplete type `char[]' 大家有什么建议么? unsigned char dataHasKeyword[] = { "abc\n" "def\n" }; length = sizeof(dataHasKeyword); Regards, -Jason From threeleafzerg在hotmail.com Thu Apr 15 14:06:36 2010 From: threeleafzerg在hotmail.com (=?gb2312?B?0rbW3bqj?=) Date: Thu, 15 Apr 2010 06:06:36 +0000 Subject: =?gb2312?Q?RE:_sizeof?= =?gb2312?B?ILHg0uu07c7z?= In-Reply-To: References: <4BC6FAAD.8080003@bjcarnation.com.cn>, , Message-ID: > Subject: sizeof 编译错误 > Date: Thu, 15 Apr 2010 14:01:55 +0800 > From: Xiuwen.a.Wu在alcatel-sbell.com.cn > To: Linux-kernel在zh-kernel.org > > Hello, > > 下面代码片段用GCC编译出现错误: > `sizeof' applied to incomplete type `char[]' > > 大家有什么建议么? > > unsigned char dataHasKeyword[] = { > "abc\n" > "def\n" > }; > > length = sizeof(dataHasKeyword); > > Regards, > -Jason sizeof 后的对象大小是编译期必须能确定下来的。 我估计 你这2段代码不是同一个文件的。同一个编译单元应该能确定。 你一个用全局变量,在另外文件 extern这个全局变量,才会这样。 全局变量是链接时才确定地址的。 我的一点个人见解。 > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org _________________________________________________________________ 一张照片的自白――Windows Live照片的可爱视频介绍 http://windowslivesky.spaces.live.com/blog/cns!5892B6048E2498BD!889.entry From wangzhzh在neusoft.com Thu Apr 15 14:10:37 2010 From: wangzhzh在neusoft.com (=?UTF-8?B?546L5b+X5b+g?=) Date: Thu, 15 Apr 2010 14:10:37 +0800 Subject: sizeof =?UTF-8?B?57yW6K+R6ZSZ6K+v?= In-Reply-To: References: <4BC6FAAD.8080003@bjcarnation.com.cn> Message-ID: <4BC6ADDD.3030104@neusoft.com> incomplete type 是对象大小不明确,sizeof不能作用于不完整类型的变量或类型 这样呢? WU XIUWEN A wrote: > Hello, > > 下面代码片段用GCC编译出现错误: > `sizeof' applied to incomplete type `char[]' > > 大家有什么建议么? > > unsigned char dataHasKeyword[] = { > "abc\n" > "def\n" > }; > > length = sizeof(dataHasKeyword); > > Regards, > -Jason > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org --------------------------------------------------------------------------------------------------- Confidentiality Notice: The information contained in this e-mail and any accompanying attachment(s) is intended only for the use of the intended recipient and may be confidential and/or privileged of Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of this communication is not the intended recipient, unauthorized use, forwarding, printing, storing, disclosure or copying is strictly prohibited, and may be unlawful.If you have received this communication in error,please immediately notify the sender by return e-mail, and delete the original message and all copies from your system. Thank you. --------------------------------------------------------------------------------------------------- From Xiuwen.a.Wu在alcatel-sbell.com.cn Thu Apr 15 14:14:48 2010 From: Xiuwen.a.Wu在alcatel-sbell.com.cn (WU XIUWEN A) Date: Thu, 15 Apr 2010 14:14:48 +0800 Subject: =?gb2312?B?UkU6IHNpemVvZiCx4NLrtO3O8w==?= In-Reply-To: References: <4BC6FAAD.8080003@bjcarnation.com.cn>, , Message-ID: 叶说的是对的,谢谢, 放在一个文件就OK了。 Regards, -Jason ---------------------------- Alcatel-Lucent WLPD - Wireline Product Division Office Tel: +86-21-50554550-6498 (2712-6498) /lab 6239 Mobile: 13918477119 ________________________________ From: 叶州海 [mailto:threeleafzerg在hotmail.com] Sent: 2010年4月15日 14:07 To: WU XIUWEN A; linux-kernel在zh-kernel.org Subject: RE: sizeof 编译错误 > Subject: sizeof 编译错误 > Date: Thu, 15 Apr 2010 14:01:55 +0800 > From: Xiuwen.a.Wu在alcatel-sbell.com.cn > To: Linux-kernel在zh-kernel.org > > Hello, > > 下面代码片段用GCC编译出现错误: > `sizeof' applied to incomplete type `char[]' > > 大家有什么建议么? > > unsigned char dataHasKeyword[] = { > "abc\n" > "def\n" > }; > > length = sizeof(dataHasKeyword); > > Regards, > -Jason sizeof 后的对象大小是编译期必须能确定下来的。 我估计 你这2段代码不是同一个文件的。同一个编译单元应该能确定。 你一个用全局变量,在另外文件 extern这个全局变量,才会这样。 全局变量是链接时才确定地址的。 我的一点个人见解。 > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kerne l > Linux 内核开发中文社区: http://zh-kernel.org ________________________________ 使用Messenger保护盾2.0,支持多账号登录! 现在就下载! From zhaolei在cn.fujitsu.com Thu Apr 15 14:13:25 2010 From: zhaolei在cn.fujitsu.com (Zhaolei) Date: Thu, 15 Apr 2010 14:13:25 +0800 Subject: =?UTF-8?B?UmU6IHNpemVvZiDnvJbor5HplJnor68=?= References: <4BC6FAAD.8080003@bjcarnation.com.cn> Message-ID: <056601cadc62$c2c07920$458da70a@zhaoleiwin> [root在VM_LINUX tmp]# cat t.c #include unsigned char dataHasKeyword[] = { "abc\n" "def\n" }; int main() { int length = sizeof(dataHasKeyword); printf("%d\n", length); } [root在VM_LINUX tmp]# gcc t.c [root在VM_LINUX tmp]# ./a.out 9 [root在VM_LINUX tmp]# ----- Original Message ----- From: "WU XIUWEN A" To: Sent: Thursday, April 15, 2010 2:01 PM Subject: sizeof 编译错误 > Hello, > > 下面代码片段用GCC编译出现错误: > `sizeof' applied to incomplete type `char[]' > > 大家有什么建议么? > > unsigned char dataHasKeyword[] = { > "abc\n" > "def\n" > }; > > length = sizeof(dataHasKeyword); > > Regards, > -Jason > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From jiang.adam在gmail.com Thu Apr 15 14:55:22 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Thu, 15 Apr 2010 15:55:22 +0900 Subject: =?GB2312?B?UENJyeixuNTatuC6y7SmwO3G98nPtcTW0LbPtKbA7cjnus4=?= =?GB2312?B?1/a4/Ljf0Kejvw==?= Message-ID: Hi, 大家好。 对于PCI设备的驱动程序,在多核处理器(不是hype-rthreading)上的如何处理中断可 以获得更好的效率?各位是否又这方面的经验,有没有好的解决方法? 此外,我还有一个更一般的问题。在多核系统上,编写驱动程序时有没有特别注意的地 方?如果有,有哪些方面? 谢谢。 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From jack_wang在usish.com Thu Apr 15 15:53:10 2010 From: jack_wang在usish.com (jack wang) Date: Thu, 15 Apr 2010 15:53:10 +0800 Subject: =?gb2312?B?tPC4tDogUENJyeixuNTatuC6y7SmwO3G98nPtcTW0LbPtKbA7cjnus7X9rj8?= =?gb2312?B?uN/Qp6O/?= In-Reply-To: References: Message-ID: 发件人: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] 代表 Adam Jiang 发送时间: 2010年4月15日 14:55 收件人: 中文内核邮件列表 主题: PCI设备在多核处理器上的中断处理如何做更高效? Hi, 大家好。 对于PCI设备的驱动程序,在多核处理器(不是hype-rthreading)上的如何处理中断可 以获得更好的效率?各位是否又这方面的经验,有没有好的解决方法? 此外,我还有一个更一般的问题。在多核系统上,编写驱动程序时有没有特别注意的地 方?如果有,有哪些方面? 谢谢。 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- 如果设备支持msi或者msix的话,可以申请多个中断向量,多个中断处理函数来处理。 系统会把中断派发到各个cpu的。其他的好处 1) MSI 是独占的.不需要处理函数中判断是不是它的中断。 2) MSI 可以避免 DMA/IRQ 抢占. 具体可以看Documentation 下的文档 Best Regards ************************************************************************* Jack Wang _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From r58472在freescale.com Thu Apr 15 15:53:51 2010 From: r58472在freescale.com (Li Yang-R58472) Date: Thu, 15 Apr 2010 15:53:51 +0800 Subject: =?utf-8?B?UkU6IOaIkOmDveeOsOWcqOacieWQiOmAgueahExpbnV4IEtlcm5l?= =?utf-8?B?bOeahOebuOWFs+iBjOS9jeWQl++8nw==?= In-Reply-To: <4BC5B20C.3060106@126.com> References: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> <4BC5B20C.3060106@126.com> Message-ID: <3A45394FD742FA419B760BB8D398F9ED017AFD71@zch01exm26.fsl.freescale.net> >Subject: Re: 成都现在有合适的Linux Kernel的相关职位吗? > >On 04/14/2010 12:46 PM, Li Yang-R58472 wrote: >> 招聘信息数量不是很多,发在这里还好。 >> 求职或者个人简历就别往这发了,去智联一类的网站发好么? >> >发到这里挺好的,有伯乐可以帮你推荐推荐。 但是这里不是用来干这件事情的。更何况想找工作的人那么多,都到这里发信哪里受得了。如果圈内的人想找人推荐工作,可以私下联系。 - Leo From jiang.adam在gmail.com Thu Apr 15 16:03:27 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Thu, 15 Apr 2010 17:03:27 +0900 Subject: =?GB2312?B?UmU6ILPJtrzP1tTa09C6z8rKtcRMaW51eCBLZXJuZWy1xM/gudjWsA==?= =?GB2312?B?zrvC8KO/?= In-Reply-To: <3A45394FD742FA419B760BB8D398F9ED017AFD71@zch01exm26.fsl.freescale.net> References: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> <4BC5B20C.3060106@126.com> <3A45394FD742FA419B760BB8D398F9ED017AFD71@zch01exm26.fsl.freescale.net> Message-ID: 2010/4/15 Li Yang-R58472 : > >>Subject: Re: 成都现在有合适的Linux Kernel的相关职位吗? >> >>On 04/14/2010 12:46 PM, Li Yang-R58472 wrote: >>> 招聘信息数量不是很多,发在这里还好。 >>> 求职或者个人简历就别往这发了,去智联一类的网站发好么? >>> >>发到这里挺好的,有伯乐可以帮你推荐推荐。 > > 但是这里不是用来干这件事情的。更何况想找工作的人那么多,都到这里发信哪里受得了。如果圈内的人想找人推荐工作,可以私下联系。 何不重新开一个mailing list来专门发布招聘求职信息?这样做的好处在于 1. 将这些消息于linux-kernel-zh分离; 2. 对kernel开发者很有帮助,毕竟社区资源还是不小的力量; 3. 促进社区更好的发展 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From elricfu在gmail.com Thu Apr 15 16:04:45 2010 From: elricfu在gmail.com (elric fu) Date: Thu, 15 Apr 2010 16:04:45 +0800 Subject: =?GB2312?B?yeixuMrHyOe6zsf4t9a5ss/t1tC2z8/ftcTQxbrFysfX1A==?= =?GB2312?B?vLqy+sn6tcTBy6O/?= Message-ID: 大家好, 请问一下,当一个设备跟别的设备共享一根中断线的时候,发生中断时是如何确认到是它发生的中断而 执行它的ISR,而不是执行别的设备的ISR的。 看到很多书上都有说到:发生中断时共享中断线上的所有的注册的中断处理程序都会执行,但是现实使 用过程中很多中断线都是被设备共享使用的,但是当发生中断是,似乎并没有运行所有的ISR呀?这里是 不是有什么机制来进行区分发出中断的设备? 谢谢 elric From jiang.adam在gmail.com Thu Apr 15 16:09:20 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Thu, 15 Apr 2010 17:09:20 +0900 Subject: =?GB2312?B?UmU6ILTwuLQ6IFBDScnosbjU2rbgusu0psDtxvfJz7XE1tC2zw==?= =?GB2312?B?tKbA7cjnus7X9rj8uN/Qp6O/?= In-Reply-To: References: Message-ID: 2010/4/15 jack wang : > 发件人: linux-kernel-bounces在zh-kernel.org > [mailto:linux-kernel-bounces在zh-kernel.org] 代表 Adam Jiang > 发送时间: 2010年4月15日 14:55 > 收件人: 中文内核邮件列表 > 主题: PCI设备在多核处理器上的中断处理如何做更高效? > > Hi, 大家好。 > > 对于PCI设备的驱动程序,在多核处理器(不是hype-rthreading)上的如何处理中断可 > 以获得更好的效率?各位是否又这方面的经验,有没有好的解决方法? > > 此外,我还有一个更一般的问题。在多核系统上,编写驱动程序时有没有特别注意的地 > 方?如果有,有哪些方面? > > 谢谢。 > > 如果设备支持msi或者msix的话,可以申请多个中断向量,多个中断处理函数来处理。 > 系统会把中断派发到各个cpu的。其他的好处 > 1) MSI 是独占的.不需要处理函数中判断是不是它的中断。 > 2) MSI 可以避免 DMA/IRQ 抢占. > 具体可以看Documentation 下的文档 > 非常感谢。MSI确实是比传统的Pin IRQ更先进的方法,但是遗憾的是很多设备都不支持。Pin IRQ的方式中,因为中断bit被set了以后,设备将不能产生新的中断,这是否意味着PCI设备如果在没有MSI的情况下,最多只能同时处理一个中断?能不能通过登录多个softirq,比如tasklet或者workqueue来提高效率?怎样在一个驱动中登录多个tasklet?tasklet之间的并发如何控制? /大头阿当 From zhangshengheng在126.com Thu Apr 15 16:24:30 2010 From: zhangshengheng在126.com (=?gbk?B?1cXKpLri?=) Date: Thu, 15 Apr 2010 16:24:30 +0800 (CST) Subject: =?gbk?B?1Nqx4NLrxNq6y8qxo6zWuLao0qrTw0FSTVY1tcTWuMHuvK+1xM7KzOKjvw==?= Message-ID: <128fcec.82a1.1280091bbd3.Coremail.zhangshengheng@126.com> 大家好: 1. 我想在编译内核时指定用armv5的指令集,该如何来做?只是 make -march=armv5te 就可以里吗? 2. 如果我不指定,它会在那里给默认指定? 3. 如果我为2440编译内核,我可不可以编译成同时支持armv4和armv5的呢?应该如何做? 谢谢! From jiang.adam在gmail.com Thu Apr 15 16:28:30 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Thu, 15 Apr 2010 17:28:30 +0900 Subject: =?GB2312?B?UmU6IMnosbjKx8jnus7H+LfWubLP7dbQts/P37XE0MW6xcrH?= =?GB2312?B?19S8urL6yfq1xMHLo78=?= In-Reply-To: References: Message-ID: 2010/4/15 elric fu : > 大家好, > > 请问一下,当一个设备跟别的设备共享一根中断线的时候,发生中断时是如何确认到是它发生的中断而 > 执行它的ISR,而不是执行别的设备的ISR的。 > > 看到很多书上都有说到:发生中断时共享中断线上的所有的注册的中断处理程序都会执行,但是现实使 > 用过程中很多中断线都是被设备共享使用的,但是当发生中断是,似乎并没有运行所有的ISR呀?这里是 > 不是有什么机制来进行区分发出中断的设备? 中断处理如果是以共享方式注册的,那内核保持一个列表,这里列表里包含所有与此中断号相关的中断处理程序;如果中断发生了,那么内核会根据dev_id来区别到底是哪个设备的中断,从而运行相应的中断处理函数。 大致是这样...... /大头阿当 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From jack_wang在usish.com Thu Apr 15 16:32:20 2010 From: jack_wang在usish.com (jack wang) Date: Thu, 15 Apr 2010 16:32:20 +0800 Subject: =?gb2312?B?tPC4tDogtPC4tDogUENJyeixuNTatuC6y7SmwO3G98nPtcTW0LbPtKbA7cjn?= =?gb2312?B?us7X9rj8uN/Qp6O/?= In-Reply-To: References: Message-ID: <1EC15EB2E3F54A369AFEC013157B4DF7@usish.com.cn> 发件人: Adam Jiang [mailto:jiang.adam在gmail.com] 发送时间: 2010年4月15日 16:09 收件人: jack wang 抄送: 中文内核邮件列表 主题: Re: 答复: PCI设备在多核处理器上的中断处理如何做更高效? 2010/4/15 jack wang : > 发件人: linux-kernel-bounces在zh-kernel.org > [mailto:linux-kernel-bounces在zh-kernel.org] 代表 Adam Jiang > 发送时间: 2010年4月15日 14:55 > 收件人: 中文内核邮件列表 > 主题: PCI设备在多核处理器上的中断处理如何做更高效? > > Hi, 大家好。 > > 对于PCI设备的驱动程序,在多核处理器(不是hype-rthreading)上的如何处理中断 可 > 以获得更好的效率?各位是否又这方面的经验,有没有好的解决方法? > > 此外,我还有一个更一般的问题。在多核系统上,编写驱动程序时有没有特别注意的 地 > 方?如果有,有哪些方面? > > 谢谢。 > > 如果设备支持msi或者msix的话,可以申请多个中断向量,多个中断处理函数来处 理。 > 系统会把中断派发到各个cpu的。其他的好处 > 1) MSI 是独占的.不需要处理函数中判断是不是它的中断。 > 2) MSI 可以避免 DMA/IRQ 抢占. > 具体可以看Documentation 下的文档 > 非常感谢。MSI确实是比传统的Pin IRQ更先进的方法,但是遗憾的是很多设备都不支 持。Pin IRQ的方式中,因为中断bit被set了以后,设备将不能产生新的中断,这是否意味着PCI 设备如果在没有MSI的情况下,最多只能同时处理一个中断? [jack]是的 能不能通过登录多个softirq,比如tasklet或者workqueue来提高效率? [jack]理论可以,但一般设备其实中断返回都很快的,不放在下半部也是可以的。可能 不需要这样。 怎样在一个驱动中登录多个tasklet?tasklet之间的并发如何控制? [jack]ditto,我的理解未必正确,呵呵 /大头阿当 Best Regards ************************************************************************* Jack Wang From r58472在freescale.com Thu Apr 15 16:37:30 2010 From: r58472在freescale.com (Li Yang-R58472) Date: Thu, 15 Apr 2010 16:37:30 +0800 Subject: =?utf-8?B?UkU6IOiuvuWkh+aYr+WmguS9leWMuuWIhuWFseS6q+S4reaWree6v+eahA==?= =?utf-8?B?5L+h5Y+35piv6Ieq5bex5Lqn55Sf55qE5LqG77yf?= In-Reply-To: References: Message-ID: <3A45394FD742FA419B760BB8D398F9ED017AFD89@zch01exm26.fsl.freescale.net> >Subject: Re: 设备是如何区分共享中断线的信号是自己产生的了? > >2010/4/15 elric fu : >> 大家好, >> >> 请问一下,当一个设备跟别的设备共享一根中断线的时候,发生中断时是如何确认到是它发生的中断而 >> 执行它的ISR,而不是执行别的设备的ISR的。 >> >> 看到很多书上都有说到:发生中断时共享中断线上的所有的注册的中断处理程序都会执行,但是现实使 >> 用过程中很多中断线都是被设备共享使用的,但是当发生中断是,似乎并没有运行所有的ISR呀?这里是 >> 不是有什么机制来进行区分发出中断的设备? > >中断处理如果是以共享方式注册的,那内核保持一个列表,这里列表里包含所有与此中断号相关的中断处理程序;如果中断发生了,那么内核会 >根据dev_id来区别到底是哪个设备的中断,从而运行相应的中断处理函数。 dev_id只是用来区分哪个驱动注册了这个中断处理函数,以便释放的时候不会释放错了。它不能用来区分是哪个设备来的中断。共享中断只能把所有的中断处理函数都执行一遍。 - Leo From elricfu在gmail.com Thu Apr 15 16:49:26 2010 From: elricfu在gmail.com (elric fu) Date: Thu, 15 Apr 2010 16:49:26 +0800 Subject: =?GB2312?B?UmU6IMnosbjKx8jnus7H+LfWubLP7dbQts/P37XE0MW6xcrH?= =?GB2312?B?19S8urL6yfq1xMHLo78=?= In-Reply-To: <3A45394FD742FA419B760BB8D398F9ED017AFD89@zch01exm26.fsl.freescale.net> References: <3A45394FD742FA419B760BB8D398F9ED017AFD89@zch01exm26.fsl.freescale.net> Message-ID: 在 2010年4月15日 下午4:37,Li Yang-R58472 写道: > > >Subject: Re: 设备是如何区分共享中断线的信号是自己产生的了? > > > >2010/4/15 elric fu : > >> 大家好, > >> > >> 请问一下,当一个设备跟别的设备共享一根中断线的时候,发生中断时是如何确认到是它发生的中断而 > >> 执行它的ISR,而不是执行别的设备的ISR的。 > >> > >> 看到很多书上都有说到:发生中断时共享中断线上的所有的注册的中断处理程序都会执行,但是现实使 > >> 用过程中很多中断线都是被设备共享使用的,但是当发生中断是,似乎并没有运行所有的ISR呀?这里是 > >> 不是有什么机制来进行区分发出中断的设备? > > > >中断处理如果是以共享方式注册的,那内核保持一个列表,这里列表里包含所有与此中断号相关的中断处理程序;如果中断发生了,那么内核会 > >根据dev_id来区别到底是哪个设备的中断,从而运行相应的中断处理函数。 > > > dev_id只是用来区分哪个驱动注册了这个中断处理函数,以便释放的时候不会释放错了。它不能用来区分是哪个设备来的中断。共享中断只能把所有的中断处理函数都执行一遍。 > > - Leo > 确实,dev_id应该用于释放中断处理程序,还有用来区分注册同一中断处理程序的不同设备的,应该是不能区分出那个设备来的中断,但是把共享中断线的所有中断处理程序全都执行一遍也样不会发生问题吗?比如,中断线上的其他设备并没有中断现在却执行它的中断处理程序这样不会带来不可测的问题吗? 感觉Jack说的doorbell寄存器来进行区分似乎比较有道理也。 elric From jiang.adam在gmail.com Thu Apr 15 16:56:04 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Thu, 15 Apr 2010 17:56:04 +0900 Subject: =?GB2312?B?UmU6IMnosbjKx8jnus7H+LfWubLP7dbQts/P37XE0MW6xcrH?= =?GB2312?B?19S8urL6yfq1xMHLo78=?= In-Reply-To: References: <3A45394FD742FA419B760BB8D398F9ED017AFD89@zch01exm26.fsl.freescale.net> Message-ID: 2010/4/15 elric fu : > 在 2010年4月15日 下午4:37,Li Yang-R58472 写道: > 感觉Jack说的doorbell寄存器来进行区分似乎比较有道理也。 没能看到Jack的消息,是不是没有reply all? 建议邮件列表配置以下 reply-to field,似乎建议了第二次...... -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From r58472在freescale.com Thu Apr 15 16:57:46 2010 From: r58472在freescale.com (Li Yang-R58472) Date: Thu, 15 Apr 2010 16:57:46 +0800 Subject: =?gb2312?B?UkU6IMnosbjKx8jnus7H+LfWubLP7dbQts/P37XE0MW6xcrH19S8ug==?= =?gb2312?B?svrJ+rXEwcujvw==?= In-Reply-To: References: <3A45394FD742FA419B760BB8D398F9ED017AFD89@zch01exm26.fsl.freescale.net> Message-ID: <3A45394FD742FA419B760BB8D398F9ED017AFD93@zch01exm26.fsl.freescale.net> >Subject: Re: 设备是如何区分共享中断线的信号是自己产生的了? > >在 2010年4月15日 下午4:37,Li Yang-R58472 写道: > > > > >Subject: Re: 设备是如何区分共享中断线的信号是自己产生的了? > > > > >2010/4/15 elric fu : > >> 大家好, > >> > >> 请问一下,当一个设备跟别的设备共享一根中断线的时候,发生中断时是如何确认到是它发生的中断而 > >> 执行它的ISR,而不是执行别的设备的ISR的。 > >> > >> 看到很多书上都有说到:发生中断时共享中断线上的所有的注册的中断处理程序都会执行,但是现实使 > >> 用过程中很多中断线都是被设备共享使用的,但是当发生中断是,似乎并没有运行所有的ISR呀?这里是 > >> 不是有什么机制来进行区分发出中断的设备? > > > >中断处理如果是以共享方式注册的,那内核保持一个列表,这里列表里包含所有与此中断号相关的中断处理程序;如果中断发生了,那么内核会 > >根据dev_id来区别到底是哪个设备的中断,从而运行相应的中断处理函数。 > > > >dev_id只是用来区分哪个驱动注册了这个中断处理函数,以便释放的时候不会释放错了。它不能用来区分是哪个设备来的中断。共享中断 >只能把所有的中断处理函数都执行一遍。 > > - Leo > > >确实,dev_id应该用于释放中断处理程序,还有用来区分注册同一中断处理程序的不同设备的,应该是不能区分出那个设备来的中断,但 >是把共享中断线的所有中断处理程序全都执行一遍也样不会发生问题吗?比如,中断线上的其他设备并没有中断现在却执行它的中断处理程序这 >样不会带来不可测的问题吗? 共享的中断处理程序必须能判断是否真的有自己的中断,如果没有直接退出。 Ps: 回信请用纯文本。 - Leo From 914059751在qq.com Thu Apr 15 16:59:54 2010 From: 914059751在qq.com (rocky) Date: Thu, 15 Apr 2010 16:59:54 +0800 Subject: =?gb2312?B?tPC4tDogyeixuMrHyOe6zsf4t9a5ss/t1tC2z8/ftcTQxbrFysfX1Ly6svo=?= =?gb2312?B?yfq1xMHLo78=?= In-Reply-To: References: <3A45394FD742FA419B760BB8D398F9ED017AFD89@zch01exm26.fsl.freescale.net> Message-ID: <01AFC088888A484FB43267AC49DA9595@dufan> dev_a h和dev_b 共享中断号irq_num,我理解处理中断的过程如下: 当irq_num对应的中断发生时, 内核会一次调用dev_a和dev_b注册的中断响应函数, 解决中断共享的关键就在于中断响应函数中会去查看自身设备的状态寄存器,看是否是 自己产生的中断,如果是自己设备产生了中断,就处理之;否则直接返回,这是内核会 调用共享中断的另外一个中断响应函数。 -----邮件原件----- 发件人: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] 代表 elric fu 发送时间: 2010年4月15日 16:49 收件人: Li Yang-R58472; jack_wang在usish.com 抄送: Linux-kernel在zh-kernel.org 主题: Re: 设备是如何区分共享中断线的信号是自己产生的了? 在 2010年4月15日 下午4:37,Li Yang-R58472 写道: > > >Subject: Re: 设备是如何区分共享中断线的信号是自己产生的了? > > > >2010/4/15 elric fu : > >> 大家好, > >> > >> 请问一下,当一个设备跟别的设备共享一根中断线的时候,发生中断时是如何确 认到是它发生的中断而 > >> 执行它的ISR,而不是执行别的设备的ISR的。 > >> > >> 看到很多书上都有说到:发生中断时共享中断线上的所有的注册的中断处理程序 都会执行,但是现实使 > >> 用过程中很多中断线都是被设备共享使用的,但是当发生中断是,似乎并没有运 行所有的ISR呀?这里是 > >> 不是有什么机制来进行区分发出中断的设备? > > > >中断处理如果是以共享方式注册的,那内核保持一个列表,这里列表里包含所有与 此中断号相关的中断处理程序;如果中断发生了,那么内核会 > >根据dev_id来区别到底是哪个设备的中断,从而运行相应的中断处理函数。 > > > dev_id只是用来区分哪个驱动注册了这个中断处理函数,以便释放的时候不会释放错 了。它不能用来区分是哪个设备来的中断。共享中断只能把所有的中断处理函数都执行 一遍。 > > - Leo > 确实,dev_id应该用于释放中断处理程序,还有用来区分注册同一中断处理程序的不同 设备的,应该是不能区分出那个设备来的中断,但是把共享中断线的所有中断处理程序 全都执行一遍也样不会发生问题吗?比如,中断线上的其他设备并没有中断现在却执行 它的中断处理程序这样不会带来不可测的问题吗? 感觉Jack说的doorbell寄存器来进行区分似乎比较有道理也。 elric _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From jack_wang在usish.com Thu Apr 15 17:01:34 2010 From: jack_wang在usish.com (jack wang) Date: Thu, 15 Apr 2010 17:01:34 +0800 Subject: =?gb2312?B?16q3ojogyeixuMrHyOe6zsf4t9a5ss/t1tC2z8/ftcTQxbrFysfX1Ly6svo=?= =?gb2312?B?yfq1xMHLo78=?= Message-ID: <80F3E8BE1A7F4AF5B6D08C828AC7CC0C@usish.com.cn> 发件人: jack wang [mailto:jack_wang在usish.com] 发送时间: 2010年4月15日 16:27 收件人: 'elric fu' 主题: 答复: 设备是如何区分共享中断线的信号是自己产生的了? 发件人: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] 代表 elric fu 发送时间: 2010年4月15日 16:05 收件人: Linux-kernel在zh-kernel.org 主题: 设备是如何区分共享中断线的信号是自己产生的了? 大家好, 请问一下,当一个设备跟别的设备共享一根中断线的时候,发生中断时是如何确认到是 它发生的中断而 执行它的ISR,而不是执行别的设备的ISR的。 看到很多书上都有说到:发生中断时共享中断线上的所有的注册的中断处理程序都会执 行,但是现实使 用过程中很多中断线都是被设备共享使用的,但是当发生中断是,似乎并没有运行所有 的ISR呀?这里是 不是有什么机制来进行区分发出中断的设备? 谢谢 elric 一般设备会有doorbell寄存器,可以通过读取寄存器的值,来判断是否是该设备发出的 中断。 ps:刚才回复的时候忘了,一般我都是回复全部的 Jack _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From elricfu在gmail.com Thu Apr 15 17:13:06 2010 From: elricfu在gmail.com (elric fu) Date: Thu, 15 Apr 2010 17:13:06 +0800 Subject: =?GB2312?B?UmU6ILTwuLQ6IMnosbjKx8jnus7H+LfWubLP7dbQts/P37XE?= =?GB2312?B?0MW6xcrH19S8urL6yfq1xMHLo78=?= In-Reply-To: <01AFC088888A484FB43267AC49DA9595@dufan> References: <3A45394FD742FA419B760BB8D398F9ED017AFD89@zch01exm26.fsl.freescale.net> <01AFC088888A484FB43267AC49DA9595@dufan> Message-ID: 明白了,谢谢大家。 elric 在 2010年4月15日 下午4:59,rocky <914059751在qq.com> 写道: > dev_a h和dev_b 共享中断号irq_num,我理解处理中断的过程如下: > 当irq_num对应的中断发生时, 内核会一次调用dev_a和dev_b注册的中断响应函数, > 解决中断共享的关键就在于中断响应函数中会去查看自身设备的状态寄存器,看是否是 > 自己产生的中断,如果是自己设备产生了中断,就处理之;否则直接返回,这是内核会 > 调用共享中断的另外一个中断响应函数。 > > > > -----邮件原件----- > 发件人: linux-kernel-bounces在zh-kernel.org > [mailto:linux-kernel-bounces在zh-kernel.org] 代表 elric fu > 发送时间: 2010年4月15日 16:49 > 收件人: Li Yang-R58472; jack_wang在usish.com > 抄送: Linux-kernel在zh-kernel.org > 主题: Re: 设备是如何区分共享中断线的信号是自己产生的了? > > 在 2010年4月15日 下午4:37,Li Yang-R58472 写道: > >> >> >Subject: Re: 设备是如何区分共享中断线的信号是自己产生的了? >> > >> >2010/4/15 elric fu : >> >> 大家好, >> >> >> >> 请问一下,当一个设备跟别的设备共享一根中断线的时候,发生中断时是如何确 > 认到是它发生的中断而 >> >> 执行它的ISR,而不是执行别的设备的ISR的。 >> >> >> >> 看到很多书上都有说到:发生中断时共享中断线上的所有的注册的中断处理程序 > 都会执行,但是现实使 >> >> 用过程中很多中断线都是被设备共享使用的,但是当发生中断是,似乎并没有运 > 行所有的ISR呀?这里是 >> >> 不是有什么机制来进行区分发出中断的设备? >> > >> >中断处理如果是以共享方式注册的,那内核保持一个列表,这里列表里包含所有与 > 此中断号相关的中断处理程序;如果中断发生了,那么内核会 >> >根据dev_id来区别到底是哪个设备的中断,从而运行相应的中断处理函数。 >> >> >> dev_id只是用来区分哪个驱动注册了这个中断处理函数,以便释放的时候不会释放错 > 了。它不能用来区分是哪个设备来的中断。共享中断只能把所有的中断处理函数都执行 > 一遍。 >> >> - Leo >> > 确实,dev_id应该用于释放中断处理程序,还有用来区分注册同一中断处理程序的不同 > 设备的,应该是不能区分出那个设备来的中断,但是把共享中断线的所有中断处理程序 > 全都执行一遍也样不会发生问题吗?比如,中断线上的其他设备并没有中断现在却执行 > 它的中断处理程序这样不会带来不可测的问题吗? > > 感觉Jack说的doorbell寄存器来进行区分似乎比较有道理也。 > > elric > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > From hujb在bjcarnation.com.cn Fri Apr 16 01:15:51 2010 From: hujb在bjcarnation.com.cn (=?GB2312?B?uvq9qLH2?=) Date: Fri, 16 Apr 2010 01:15:51 +0800 Subject: mmap =?GB2312?B?t7W72LXEtdjWt9T1w7TAz7eiyfqx5Luvo78=?= In-Reply-To: References: <4BC6FAAD.8080003@bjcarnation.com.cn> Message-ID: <4BC749C7.6080206@bjcarnation.com.cn> kaih luo 写道: > 在 2010年4月15日 下午7:38,胡建宾 写道: > >> 各位: >> >> 我在内起启动的时候分配了bootmem,申请了64MB,在驱动中实现了一个mmap映射的 >> 调用。 >> 现在有个问题是mmap系统调用返回的地址并不总指向这64M的其实地址,有一个偏 >> 差(offset),这个差值是稳定的。原来是可以的,但我重新编译了内核以后就出现 >> 上面那种情况,同一个内核的两次编译都可能不一样。不得其解,各位有没有遇到 >> 这种情况的? >> >> 我的平台是:powerpc(AMCC 460EX),原来的内核是2.6.25,现在用的是2.6.33 >> (有问题的) >> >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org >> > > mmap返回的是用户空间的地址,这个地址和内核线性地址之间没有必然的关系 > 我的意思是mmap返回的地址并不是指向我申请的64M内存空间的首地址。我要实现 内核和用户空间共享大内存。所以内核地址和用户空间地址必须指向一个物理地址。 From qingshenlwy在gmail.com Thu Apr 15 17:22:37 2010 From: qingshenlwy在gmail.com (Liuwenyi) Date: Thu, 15 Apr 2010 17:22:37 +0800 Subject: =?UTF-8?B?5oiQ6YO9546w5Zyo5pyJ5ZCI6YCC55qETGludXggS2VybmVs55qE?= =?UTF-8?B?55u45YWz6IGM5L2N5ZCX77yf?= In-Reply-To: <3A45394FD742FA419B760BB8D398F9ED017AFD71@zch01exm26.fsl.freescale.net> References: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> <4BC5B20C.3060106@126.com> <3A45394FD742FA419B760BB8D398F9ED017AFD71@zch01exm26.fsl.freescale.net> Message-ID: <4BC6DADD.1000502@gmail.com> 我在成都投过一些简历,大部分都是由于HR对我工作经验的不满意,我的简历根本 进不了技术部门的手里。 所以我想麻烦朋友们有合适的职位给推荐一个。谢谢!! 我知道发到这里不大合适,但是如果发出接简历后导致一个小时内接连接到三个诈 骗电话,你会如何想。 给朋友们带来的不便,我在此说声对不起。 于 2010-4-15 15:53, Li Yang-R58472 写道: > >> Subject: Re: 成都现在有合适的Linux Kernel的相关职位吗? >> >> On 04/14/2010 12:46 PM, Li Yang-R58472 wrote: >> >>> 招聘信息数量不是很多,发在这里还好。 >>> 求职或者个人简历就别往这发了,去智联一类的网站发好么? >>> >>> >> 发到这里挺好的,有伯乐可以帮你推荐推荐。 >> > 但是这里不是用来干这件事情的。更何况想找工作的人那么多,都到这里发信哪里受得了。如果圈内的人想找人推荐工作,可以私下联系。 > > - Leo > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From wangzhzh在neusoft.com Thu Apr 15 17:30:43 2010 From: wangzhzh在neusoft.com (=?UTF-8?B?546L5b+X5b+g?=) Date: Thu, 15 Apr 2010 17:30:43 +0800 Subject: =?UTF-8?B?5oiQ6YO9546w5Zyo5pyJ5ZCI6YCC55qETGludXggS2VybmVs55qE?= =?UTF-8?B?55u45YWz6IGM5L2N5ZCX77yf?= In-Reply-To: <4BC6DADD.1000502@gmail.com> References: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> <4BC5B20C.3060106@126.com> <3A45394FD742FA419B760BB8D398F9ED017AFD71@zch01exm26.fsl.freescale.net> <4BC6DADD.1000502@gmail.com> Message-ID: <4BC6DCC3.1030201@neusoft.com> 不会吧,悲剧阿,不能把简历公开在网络上。有些单位也太不负责了, 或许把你的简历乱丢。 我是不介意大家交流求职和招聘的事,这有助于技术人员了解 这个行业的各种社会需求,我们在用技术满足各种各样的需求。 ---------------------------------------------------------------------------------- Liuwenyi wrote: > 我在成都投过一些简历,大部分都是由于HR对我工作经验的不满意,我的简历根 > 本 进不了技术部门的手里。 > > 所以我想麻烦朋友们有合适的职位给推荐一个。谢谢!! > > 我知道发到这里不大合适,但是如果发出接简历后导致一个小时内接连接到三个 > 诈 骗电话,你会如何想。 > > 给朋友们带来的不便,我在此说声对不起。 > > > > > > 于 2010-4-15 15:53, Li Yang-R58472 写道: >> >>> Subject: Re: 成都现在有合适的Linux Kernel的相关职位吗? >>> >>> On 04/14/2010 12:46 PM, Li Yang-R58472 wrote: >>> >>>> 招聘信息数量不是很多,发在这里还好。 >>>> 求职或者个人简历就别往这发了,去智联一类的网站发好么? >>>> >>>> >>> 发到这里挺好的,有伯乐可以帮你推荐推荐。 >>> >> 但是这里不是用来干这件事情的。更何况想找工作的人那么多,都到这里发信 >> 哪里受得了。如果圈内的人想找人推荐工作,可以私下联系。 >> >> - Leo >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org --------------------------------------------------------------------------------------------------- Confidentiality Notice: The information contained in this e-mail and any accompanying attachment(s) is intended only for the use of the intended recipient and may be confidential and/or privileged of Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of this communication is not the intended recipient, unauthorized use, forwarding, printing, storing, disclosure or copying is strictly prohibited, and may be unlawful.If you have received this communication in error,please immediately notify the sender by return e-mail, and delete the original message and all copies from your system. Thank you. --------------------------------------------------------------------------------------------------- From xiaoguangrong在cn.fujitsu.com Thu Apr 15 17:33:58 2010 From: xiaoguangrong在cn.fujitsu.com (Xiao Guangrong) Date: Thu, 15 Apr 2010 17:33:58 +0800 Subject: =?UTF-8?B?5oiQ6YO9546w5Zyo5pyJ5ZCI6YCC55qETGludXggS2VybmVs55qE?= =?UTF-8?B?55u45YWz6IGM5L2N5ZCX77yf?= In-Reply-To: <4BC6DADD.1000502@gmail.com> References: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> <4BC5B20C.3060106@126.com> <3A45394FD742FA419B760BB8D398F9ED017AFD71@zch01exm26.fsl.freescale.net> <4BC6DADD.1000502@gmail.com> Message-ID: <4BC6DD86.5050208@cn.fujitsu.com> Liuwenyi wrote: > 我在成都投过一些简历,大部分都是由于HR对我工作经验的不满意,我的简历根本 > 进不了技术部门的手里。 > > 所以我想麻烦朋友们有合适的职位给推荐一个。谢谢!! > > 我知道发到这里不大合适,但是如果发出接简历后导致一个小时内接连接到三个诈 > 骗电话,你会如何想。 > > 给朋友们带来的不便,我在此说声对不起。 > :-( 小刘还挺有发展潜质的...大好青年却受此待遇...我也替你抱怨一下... From oncemore2000在gmail.com Thu Apr 15 17:43:23 2010 From: oncemore2000在gmail.com (Xingtai Wang) Date: Thu, 15 Apr 2010 17:43:23 +0800 Subject: =?UTF-8?B?5aaC5L2V6K+E5rWL572R57ucZHJpdmVy55qE5oCn6IO95ZGi77yf?= Message-ID: 有什么tool 推荐吗? 如何衡量不同的应用场景和 包大小 /不同协议的性能呢? drivers 性能有什么决定的呢?MSI/intx? Thanks From jack_wang在usish.com Thu Apr 15 17:52:06 2010 From: jack_wang在usish.com (jack wang) Date: Thu, 15 Apr 2010 17:52:06 +0800 Subject: =?gb2312?B?tPC4tDogyOe6zsbAsuLN+MLnZHJpdmVytcTQ1MTcxNijvw==?= In-Reply-To: References: Message-ID: 发件人: linux-kernel-bounces在zh-kernel.org [mailto:linux-kernel-bounces在zh-kernel.org] 代表 Xingtai Wang 发送时间: 2010年4月15日 17:43 收件人: Linux-kernel在zh-kernel.org 主题: 如何评测网络driver的性能呢? 有什么tool 推荐吗? 如何衡量不同的应用场景和 包大小 /不同协议的性能呢? drivers 性能有什么决定的呢?MSI/intx? Thanks netperf 可以 _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From elendil.wang在gmail.com Thu Apr 15 18:33:43 2010 From: elendil.wang在gmail.com (Elendil) Date: Thu, 15 Apr 2010 18:33:43 +0800 Subject: =?GB2312?B?UmU6ILTwuLQ6IMjnus7GwLLizfjC52RyaXZlcrXE0NTE3MTYo78=?= In-Reply-To: References: Message-ID: 条件允许的话,用SmartBits吧,不过很贵的。 2010/4/15 jack wang > 发件人: linux-kernel-bounces在zh-kernel.org > [mailto:linux-kernel-bounces在zh-kernel.org] 代表 Xingtai Wang > 发送时间: 2010年4月15日 17:43 > 收件人: Linux-kernel在zh-kernel.org > 主题: 如何评测网络driver的性能呢? > > 有什么tool 推荐吗? > 如何衡量不同的应用场景和 包大小 /不同协议的性能呢? > > > drivers 性能有什么决定的呢?MSI/intx? > Thanks > > netperf 可以 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > From figure1802在126.com Thu Apr 15 19:04:30 2010 From: figure1802在126.com (Figo.zhang) Date: Thu, 15 Apr 2010 19:04:30 +0800 Subject: =?UTF-8?B?5oiQ6YO9546w5Zyo5pyJ5ZCI6YCC55qETGludXggS2VybmVs55qE?= =?UTF-8?B?55u45YWz6IGM5L2N5ZCX77yf?= In-Reply-To: References: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> <4BC5B20C.3060106@126.com> <3A45394FD742FA419B760BB8D398F9ED017AFD71@zch01exm26.fsl.freescale.net> Message-ID: <4BC6F2BE.6050105@126.com> On 04/15/2010 04:03 PM, Adam Jiang wrote: > 2010/4/15 Li Yang-R58472: > >> >>> Subject: Re: 成都现在有合适的Linux Kernel的相关职位吗? >>> >>> On 04/14/2010 12:46 PM, Li Yang-R58472 wrote: >>> >>>> 招聘信息数量不是很多,发在这里还好。 >>>> 求职或者个人简历就别往这发了,去智联一类的网站发好么? >>>> >>>> >>> 发到这里挺好的,有伯乐可以帮你推荐推荐。 >>> >> 但是这里不是用来干这件事情的。更何况想找工作的人那么多,都到这里发信哪里受得了。如果圈内的人想找人推荐工作,可以私下联系。 >> 这里就是 kernel相关人士比较多的地方,这个领域伯乐最多的地方,不发到这 里,发到那呢? > > From coly.li在suse.de Thu Apr 15 20:26:02 2010 From: coly.li在suse.de (Coly Li) Date: Thu, 15 Apr 2010 20:26:02 +0800 Subject: =?UTF-8?B?5oiQ6YO9546w5Zyo5pyJ5ZCI6YCC55qETGludXggS2VybmVs55qE?= =?UTF-8?B?55u45YWz6IGM5L2N5ZCX77yf?= In-Reply-To: <4BC6F2BE.6050105@126.com> References: <3A45394FD742FA419B760BB8D398F9ED017AFB37@zch01exm26.fsl.freescale.net> <4BC5B20C.3060106@126.com> <3A45394FD742FA419B760BB8D398F9ED017AFD71@zch01exm26.fsl.freescale.net> <4BC6F2BE.6050105@126.com> Message-ID: <4BC705DA.1080507@suse.de> On 04/15/2010 07:04 PM, Figo.zhang Wrote: > On 04/15/2010 04:03 PM, Adam Jiang wrote: >> 2010/4/15 Li Yang-R58472: >> >>> >>>> Subject: Re: 成都现在有合适的Linux Kernel的相关职位吗? >>>> >>>> On 04/14/2010 12:46 PM, Li Yang-R58472 wrote: >>>> >>>>> 招聘信息数量不是很多,发在这里还好。 >>>>> 求职或者个人简历就别往这发了,去智联一类的网站发好么? >>>>> >>>>> >>>> 发到这里挺好的,有伯乐可以帮你推荐推荐。 >>>> >>> 但是这里不是用来干这件事情的。更何况想找工作的人那么多,都到这里发信 >>> 哪里受得了。如果圈内的人想找人推荐工作,可以私下联系。 >>> > 这里就是 kernel相关人士比较多的地方,这个领域伯乐最多的地方,不发到这 > 里,发到那呢? http://www.linuxforum.net/forum/postlist.php?Cat=&Board=job -- Coly Li SuSE Labs From jiang.adam在gmail.com Thu Apr 15 21:15:11 2010 From: jiang.adam在gmail.com (Adam Jiang) Date: Thu, 15 Apr 2010 22:15:11 +0900 Subject: =?GB2312?B?UmU6IG1tYXAgt7W72LXEtdjWt9T1w7TAz7eiyfqx5Luvo78=?= In-Reply-To: <4BC6FAAD.8080003@bjcarnation.com.cn> References: <4BC6FAAD.8080003@bjcarnation.com.cn> Message-ID: 2010/4/15 胡建宾 : > 各位: > > 我在内起启动的时候分配了bootmem,申请了64MB,在驱动中实现了一个mmap映射的 > 调用。 > 现在有个问题是mmap系统调用返回的地址并不总指向这64M的其实地址,有一个偏 > 差(offset),这个差值是稳定的。原来是可以的,但我重新编译了内核以后就出现 > 上面那种情况,同一个内核的两次编译都可能不一样。不得其解,各位有没有遇到 > 这种情况的? > > 我的平台是:powerpc(AMCC 460EX),原来的内核是2.6.25,现在用的是2.6.33 > (有问题的) 问题描述似乎有点模糊...... 我猜测你的意思是在bootmem中启动的时候reserve了一块连续的物理内存――也就是你说的大内存,这段内存并不受到kernel管理。然后,你在一个用户空间运行的程序中要使用mmap来映射这块物理内存进入进程的地址空间。 是否是这样? 然后发生了什么问题? /大头阿当 -- Adam Jiang ----------------------------------- e-mail:jiang.adam在gmail.com http://www.adamjiang.com ----------------------------------- From qingshenlwy在gmail.com Thu Apr 15 14:14:47 2010 From: qingshenlwy在gmail.com (Liuwenyi) Date: Thu, 15 Apr 2010 14:14:47 +0800 Subject: =?UTF-8?B?562U5aSNOiDlpoLkvZXor4TmtYvnvZHnu5xkcml2ZXLnmoTmgKc=?= =?UTF-8?B?6IO95ZGi77yf?= In-Reply-To: References: Message-ID: <4BC6AED7.9000108@gmail.com> 或许你可以尝试下ethtool,这个工具。 于 2010-4-15 17:52, jack wang 写道: > 发件人: linux-kernel-bounces在zh-kernel.org > [mailto:linux-kernel-bounces在zh-kernel.org] 代表 Xingtai Wang > 发送时间: 2010年4月15日 17:43 > 收件人: Linux-kernel在zh-kernel.org > 主题: 如何评测网络driver的性能呢? > > 有什么tool 推荐吗? > 如何衡量不同的应用场景和 包大小 /不同协议的性能呢? > > > drivers 性能有什么决定的呢?MSI/intx? > Thanks > > netperf 可以 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From xiao.zhang在windriver.com Fri Apr 16 09:14:29 2010 From: xiao.zhang在windriver.com (ZhangXiao) Date: Fri, 16 Apr 2010 09:14:29 +0800 Subject: =?UTF-8?B?5aaC5L2V6K+E5rWL572R57ucZHJpdmVy55qE5oCn6IO95ZGi77yf?= In-Reply-To: References: Message-ID: <4BC7B9F5.2070004@windriver.com> Xingtai Wang wrote: > 有什么tool 推荐吗? > 如何衡量不同的应用场景和 包大小 /不同协议的性能呢? > > > Netperf > drivers 性能有什么决定的呢?MSI/intx? > Thanks > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From lujing9101在gmail.com Fri Apr 16 09:41:51 2010 From: lujing9101在gmail.com (lu) Date: Fri, 16 Apr 2010 09:41:51 +0800 Subject: =?GB2312?B?0ru49s34v6jW0LbPusXIw8G9uPZjcHW++britKbA7dT1w7Q=?= =?GB2312?B?1/awoaO/?= Message-ID: 一个网卡中断号让两个cpu均衡处理怎么做啊? From hema6093在gmail.com Fri Apr 16 09:51:15 2010 From: hema6093在gmail.com (Zhou Lee) Date: Fri, 16 Apr 2010 09:51:15 +0800 Subject: =?GB2312?B?UmU6IG1tYXAgt7W72LXEtdjWt9T1w7TAz7eiyfqx5Luvo78=?= In-Reply-To: References: <4BC6FAAD.8080003@bjcarnation.com.cn> Message-ID: ���ǣ�MMap���������ӳ�������ռ�������������Ŀ�ʼ�ʹ��ϵͳ���һƬ����ռ䣬ӳ����������������������ƫ��� 2010/4/15 Adam Jiang > 2010/4/15 �� : > > ��� > > > > �������������bootmem,���64MB�������ʵ��һ��pӳ���> > ��� > > ������mmapϵͳ����صĵ�������ָ��64M���������һ��> > ��ffset)�����������ġ�ԭ����Եģ������������Ժ��> > ��������һ��˵���α�����ܲ�һ������������������ > > ������ > > > > ����̨���powerpc(AMCC 460EX)��ԭ���ں��.6.25��������.6.33 > > ������ģ� > > ����������. > > > ��²������bootmem���������erve�һ����������DҲ�����Ĵ�棬���ڴ沢�����kernel��Ȼ���һ����ռ���ij���ʹ�mmap�ӳ���������������ռ䡣 > > ������ > > Ȼ���ô���� > > /����� > -- > Adam Jiang > ----------------------------------- > e-mail:jiang.adam在gmail.com > http://www.adamjiang.com > ----------------------------------- > _______________________________________________ > Linux ��˿����������� Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux ��˿��������� http://zh-kernel.org > From jeff.liu在oracle.com Fri Apr 16 10:34:11 2010 From: jeff.liu在oracle.com (jeff.liu) Date: Fri, 16 Apr 2010 10:34:11 +0800 Subject: =?UTF-8?B?5aaC5L2V6K+E5rWL572R57ucZHJpdmVy55qE5oCn6IO95ZGi77yf?= In-Reply-To: <4BC7B9F5.2070004@windriver.com> References: <4BC7B9F5.2070004@windriver.com> Message-ID: <4BC7CCA3.5010808@oracle.com> ZhangXiao wrote: > Xingtai Wang wrote: >> 有什么tool 推荐吗? >> 如何衡量不同的应用场景和 包大小 /不同协议的性能呢? >> >> >> > Netperf >> drivers 性能有什么决定的呢?MSI/intx? >> Thanks also, iperf 也不错. 一般来说, 可以通过 'Mbytes/sec' 来检查driver的bindwith. scenarios like: differnet TCP Window size test run in uni-directional or bi-directional mode mutiple threads connection. Thanks, -Jeff >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From linfeng在cn.fujitsu.com Fri Apr 16 11:18:39 2010 From: linfeng在cn.fujitsu.com (Lin Feng) Date: Fri, 16 Apr 2010 11:18:39 +0800 Subject: =?UTF-8?B?5LiA5Liq572R5Y2h5Lit5pat5Y+36K6p5Lik5LiqY3B15Z2H6KGh?= =?UTF-8?B?5aSE55CG5oCO5LmI5YGa5ZWK77yf?= In-Reply-To: References: Message-ID: <4BC7D70F.6000201@cn.fujitsu.com> 试试设置/proc/irq/`中断号`/smp_affinity的屏蔽位,如00000011 lu 写道: > 一个网卡中断号让两个cpu均衡处理怎么做啊? > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From jeff.liu在oracle.com Fri Apr 16 11:34:44 2010 From: jeff.liu在oracle.com (jeff.liu) Date: Fri, 16 Apr 2010 11:34:44 +0800 Subject: =?UTF-8?B?5aaC5L2V6K+E5rWL572R57ucZHJpdmVy55qE5oCn6IO95ZGi77yf?= In-Reply-To: References: <4BC7B9F5.2070004@windriver.com> <4BC7CCA3.5010808@oracle.com> Message-ID: <4BC7DAD4.4010208@oracle.com> oliver yang wrote: > 在 2010年4月16日 上午10:34,jeff.liu 写道: >> ZhangXiao wrote: >>> Xingtai Wang wrote: >>>> 有什么tool 推荐吗? >>>> 如何衡量不同的应用场景和 包大小 /不同协议的性能呢? >>>> >>>> >>>> >>> Netperf >>>> drivers 性能有什么决定的呢?MSI/intx? >>>> Thanks >> also, iperf 也不错. >> >> 一般来说, 可以通过 'Mbytes/sec' 来检查driver的bindwith. > > Netperf 和 iperf 都有个显著的缺点,在大连接数测试的时候数据就不准确了。 > > 我推荐的uperf可以模拟Netperf和iperf测试但是可以提供真正的大连接情况下的同步测试。 looks cool. thanks for the sharing. :) btw: 我帮你add cc zh-kernel 了. > > >> scenarios like: >> differnet TCP Window size >> test run in uni-directional or bi-directional mode >> mutiple threads connection. >> >> >> Thanks, >> -Jeff >>>> _______________________________________________ >>>> Linux 内核开发中文邮件列表 >>>> Linux-kernel在zh-kernel.org >>>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>>> Linux 内核开发中文社区: http://zh-kernel.org >>> _______________________________________________ >>> Linux 内核开发中文邮件列表 >>> Linux-kernel在zh-kernel.org >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>> Linux 内核开发中文社区: http://zh-kernel.org >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > > > From hritian在gmail.com Fri Apr 16 11:39:45 2010 From: hritian在gmail.com (=?UTF-8?B?5rOT5pel5aSp?=) Date: Fri, 16 Apr 2010 11:39:45 +0800 Subject: =?utf-8?B?UmU6IFJlOiDkuIDkuKrnvZHljaHkuK3mlq3lj7forqnkuKTkuKpjcHXlnYfooaHlpITnkIbmgI7kuYjlgZrllYrvvJ8=?= References: , <4BC7D70F.6000201@cn.fujitsu.com> Message-ID: <201004161139420625663@gmail.com> 网卡中断有亲和力的,一般对上一个cpu以后,一段时间内都会只用这个cpu的。 发件人: Lin Feng 发送时间: 2010-04-16 11:18:43 收件人: lu 抄送: linux-kernel 主题: Re: 一个网卡中断号让两个cpu均衡处理怎么做啊? 试试设置/proc/irq/`中断号`/smp_affinity的屏蔽位,如00000011 lu 写道: > 一个网卡中断号让两个cpu均衡处理怎么做啊? > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From xiaosuo在gmail.com Fri Apr 16 11:43:24 2010 From: xiaosuo在gmail.com (Changli Gao) Date: Fri, 16 Apr 2010 11:43:24 +0800 Subject: =?GB2312?B?UmU6INK7uPbN+L+o1tC2z7rFyMPBvbj2Y3B1vvm64rSmwO3U9Q==?= =?GB2312?B?w7TX9rCho78=?= In-Reply-To: References: Message-ID: 2010/4/16 lu : > 一个网卡中断号让两个cpu均衡处理怎么做啊? RPS: http://lwn.net/Articles/362339/ From yangoliver在gmail.com Fri Apr 16 11:54:17 2010 From: yangoliver在gmail.com (oliver yang) Date: Fri, 16 Apr 2010 11:54:17 +0800 Subject: =?UTF-8?B?UmU6IOS4gOS4que9keWNoeS4reaWreWPt+iuqeS4pOS4qmNwdeWdh+ihoeWkhOeQhuaAjg==?= =?UTF-8?B?5LmI5YGa5ZWK77yf?= In-Reply-To: References: Message-ID: 在 2010年4月16日 上午11:50,Changli Gao 写道: > 2010/4/16 oliver yang : >> 在 2010年4月16日 上午11:43,Changli Gao 写道: >>> 2010/4/16 lu : >>>> 一个网卡中断号让两个cpu均衡处理怎么做啊? >>> >>> RPS: http://lwn.net/Articles/362339/ >> >> 大概看了一下,应该是和Solaris ip fanout类似的技术,这个在Solaris 10已经release了。 >> 不知道Linux这个patch现在是什么状态 >> > > 已经在Linux-next,2.6.25将会有。 忘记reply to all了,这个技术对legacy的网卡有帮助,但实际效果还是多队列支持RSS技术的网卡性能更好。 这个RPS就是一个软件实现的RSS。 -- Cheers, Oliver Yang Twitter: http://twitter.com/yangoliver Blog: http://blog.csdn.net/yayong -------------------------------------------------------------------- An OpenSolaris Developer From xiaosuo在gmail.com Fri Apr 16 12:08:18 2010 From: xiaosuo在gmail.com (Changli Gao) Date: Fri, 16 Apr 2010 12:08:18 +0800 Subject: =?GB2312?B?UmU6INK7uPbN+L+o1tC2z7rFyMPBvbj2Y3B1vvm64rSmwO3U9Q==?= =?GB2312?B?w7TX9rCho78=?= In-Reply-To: References: Message-ID: 2010/4/16 oliver yang : > 在 2010年4月16日 上午11:50,Changli Gao 写道: >> 2010/4/16 oliver yang : >>> 在 2010年4月16日 上午11:43,Changli Gao 写道: >>>> 2010/4/16 lu : >>>>> 一个网卡中断号让两个cpu均衡处理怎么做啊? >>>> >>>> RPS: http://lwn.net/Articles/362339/ >>> >>> 大概看了一下,应该是和Solaris ip fanout类似的技术,这个在Solaris 10已经release了。 >>> 不知道Linux这个patch现在是什么状态 >>> >> >> 已经在Linux-next,2.6.25将会有。 > > 忘记reply to all了,这个技术对legacy的网卡有帮助,但实际效果还是多队列支持RSS技术的网卡性能更好。 > > 这个RPS就是一个软件实现的RSS。 > 如果硬件提供的queue数量少于core数量,RPS也有用。实际上我有post一个patch,让RPS的queue数量可调,每个queue绑定的cpu可调,可以变相实现按权重分配流量,不过没被接收,说是有些超前了,还要看RPS的实际效果。对于application,Tom又有提RFS: http://lwn.net/Articles/382428/ 。看样子David比较赞成,进入mainline可能性比较大,大家还是倾向于让scheduler知道流量,而不是让流量知道scheduler。但是,LInux的内核网络协议栈的SoftIRQ就是不被scheudler管理的,真是矛盾。现在很多高性能的服务器设计都是自己管理调度的,所以我比较倾向于内核提供包接收CPU的queue number的socket option,用于知道应用程序编程。 -- Regards, Changli Gao(xiaosuo在gmail.com) From xiaosuo在gmail.com Fri Apr 16 12:10:13 2010 From: xiaosuo在gmail.com (Changli Gao) Date: Fri, 16 Apr 2010 12:10:13 +0800 Subject: =?GB2312?B?UmU6INK7uPbN+L+o1tC2z7rFyMPBvbj2Y3B1vvm64rSmwO3U9Q==?= =?GB2312?B?w7TX9rCho78=?= In-Reply-To: References: Message-ID: 2010/4/16 Changli Gao : > 2010/4/16 oliver yang : >> 在 2010年4月16日 上午11:50,Changli Gao 写道: >>> 2010/4/16 oliver yang : >>>> 在 2010年4月16日 上午11:43,Changli Gao 写道: >>>>> 2010/4/16 lu : >>>>>> 一个网卡中断号让两个cpu均衡处理怎么做啊? >>>>> >>>>> RPS: http://lwn.net/Articles/362339/ >>>> >>>> 大概看了一下,应该是和Solaris ip fanout类似的技术,这个在Solaris 10已经release了。 >>>> 不知道Linux这个patch现在是什么状态 >>>> >>> >>> 已经在Linux-next,2.6.25将会有。 >> >> 忘记reply to all了,这个技术对legacy的网卡有帮助,但实际效果还是多队列支持RSS技术的网卡性能更好。 >> >> 这个RPS就是一个软件实现的RSS。 >> > > 如果硬件提供的queue数量少于core数量,RPS也有用。实际上我有post一个patch,让RPS的queue数量可调,每个queue绑定的cpu可调,可以变相实现按权重分配流量,不过没被接收,说是有些超前了,还要看RPS的实际效果。对于application,Tom又有提RFS: > http://lwn.net/Articles/382428/ > 。看样子David比较赞成,进入mainline可能性比较大,大家还是倾向于让scheduler知道流量,而不是让流量知道scheduler。但是,LInux的内核网络协议栈的SoftIRQ就是不被scheudler管理的,真是矛盾。现在很多高性能的服务器设计都是自己管理调度的,所以我比较倾向于内核提供包接收CPU的queue > number的socket option,用于知道应用程序编程。 > sed -i 's/知道/指导/g' -- Regards, Changli Gao(xiaosuo在gmail.com) From yangoliver在gmail.com Fri Apr 16 12:45:52 2010 From: yangoliver在gmail.com (oliver yang) Date: Fri, 16 Apr 2010 12:45:52 +0800 Subject: =?UTF-8?B?UmU6IOS4gOS4que9keWNoeS4reaWreWPt+iuqeS4pOS4qmNwdeWdh+ihoeWkhOeQhuaAjg==?= =?UTF-8?B?5LmI5YGa5ZWK77yf?= In-Reply-To: References: Message-ID: 在 2010年4月16日 下午12:08,Changli Gao 写道: > 2010/4/16 oliver yang : >> 在 2010年4月16日 上午11:50,Changli Gao 写道: >>> 2010/4/16 oliver yang : >>>> 在 2010年4月16日 上午11:43,Changli Gao 写道: >>>>> 2010/4/16 lu : >>>>>> 一个网卡中断号让两个cpu均衡处理怎么做啊? >>>>> >>>>> RPS: http://lwn.net/Articles/362339/ >>>> >>>> 大概看了一下,应该是和Solaris ip fanout类似的技术,这个在Solaris 10已经release了。 >>>> 不知道Linux这个patch现在是什么状态 >>>> >>> >>> 已经在Linux-next,2.6.25将会有。 >> >> 忘记reply to all了,这个技术对legacy的网卡有帮助,但实际效果还是多队列支持RSS技术的网卡性能更好。 >> >> 这个RPS就是一个软件实现的RSS。 >> > > 如果硬件提供的queue数量少于core数量,RPS也有用。实际上我有post一个patch,让RPS的queue数量可调,每个queue绑定的cpu可调,可以变相实现按权重分配流量,不过没被接收,说是有些超前了,还要看RPS的实际效果。对于application,Tom又有提RFS: > http://lwn.net/Articles/382428/ > 。看样子David比较赞成,进入mainline可能性比较大,大家还是倾向于让scheduler知道流量,而不是让流量知道scheduler。但是,LInux的内核网络协议栈的SoftIRQ就是不被scheudler管理的,真是矛盾。现在很多高性能的服务器设计都是自己管理调度的,所以我比较倾向于内核提供包接收CPU的queue > number的socket option,用于知道应用程序编程。 Linux这方面的研究在Solaris的后面了。目前对多队列网卡的支持还可以有更高明的想法,只是不方便在这里说了。这方面最好的解决方案还是硬件来做的,RPS技术的改进是很有限的。 -- Cheers, Oliver Yang Twitter: http://twitter.com/yangoliver Blog: http://blog.csdn.net/yayong -------------------------------------------------------------------- An OpenSolaris Developer From xiaosuo在gmail.com Fri Apr 16 12:50:06 2010 From: xiaosuo在gmail.com (Changli Gao) Date: Fri, 16 Apr 2010 12:50:06 +0800 Subject: =?GB2312?B?UmU6INK7uPbN+L+o1tC2z7rFyMPBvbj2Y3B1vvm64rSmwO3U9Q==?= =?GB2312?B?w7TX9rCho78=?= In-Reply-To: References: Message-ID: 2010/4/16 oliver yang : > 在 2010年4月16日 下午12:08,Changli Gao 写道: >> 如果硬件提供的queue数量少于core数量,RPS也有用。实际上我有post一个patch,让RPS的queue数量可调,每个queue绑定的cpu可调,可以变相实现按权重分配流量,不过没被接收,说是有些超前了,还要看RPS的实际效果。对于application,Tom又有提RFS: >> http://lwn.net/Articles/382428/ >> 。看样子David比较赞成,进入mainline可能性比较大,大家还是倾向于让scheduler知道流量,而不是让流量知道scheduler。但是,LInux的内核网络协议栈的SoftIRQ就是不被scheudler管理的,真是矛盾。现在很多高性能的服务器设计都是自己管理调度的,所以我比较倾向于内核提供包接收CPU的queue >> number的socket option,用于知道应用程序编程。 > > > Linux这方面的研究在Solaris的后面了。目前对多队列网卡的支持还可以有更高明的想法,只是不方便在这里说了。这方面最好的解决方案还是硬件来做的,RPS技术的改进是很有限的。 > > Linux也是没办法,多是散兵。更高名的不会是用flow director把socket在哪个CPU的信息反馈给网卡吧?当然,要想获得大的吞吐量,NP等专门硬件可以做得更好。 -- Regards, Changli Gao(xiaosuo在gmail.com) From orphen.leiliu在gmail.com Fri Apr 16 13:09:29 2010 From: orphen.leiliu在gmail.com (Liu Lei) Date: Fri, 16 Apr 2010 13:09:29 +0800 Subject: =?GB2312?B?09DDu9PQyMvX9rn91NrE2rrLtPrC68r3wO/M7bzT06bTw7PM0PI=?= =?GB2312?B?o78=?= Message-ID: 大家好: 因为部分应用程序和内核的特定版本相关。 所以把这些应用程序也丢到了内核树的自定义目录中,通过git维护,以便co某个特定内核版本同时获得复合的应用程序。 现在想将这些应用程序也像内核模块一样添加到Kconfig和Makefile中。 但是看了一下内核根下的Makefile,有点头大。 有没有人做过类似的工作?能否共享一下。 致 礼! ──────────────────────────── Liu Lei From crquan在gmail.com Fri Apr 16 14:02:38 2010 From: crquan在gmail.com (Cheng Renquan) Date: Fri, 16 Apr 2010 14:02:38 +0800 Subject: =?UTF-8?B?UmU6IOacieayoeacieS6uuWBmui/h+WcqOWGheaguOS7o+eggeagkemHjOa3u+WKoOW6lA==?= =?UTF-8?B?55So56iL5bqP77yf?= In-Reply-To: References: Message-ID: 2010/4/16 Liu Lei : > 大家好: > >        因为部分应用程序和内核的特定版本相关。 >        所以把这些应用程序也丢到了内核树的自定义目录中,通过git维护,以便co某个特定内核版本同时获得复合的应用程序。 > >        现在想将这些应用程序也像内核模块一样添加到Kconfig和Makefile中。 >        但是看了一下内核根下的Makefile,有点头大。 > >        有没有人做过类似的工作?能否共享一下。 不行吧, 像 redhat cluster, lvm2, systemtap 项目都是与内核独立维护的, http://sources.redhat.com/git/?p=cluster.git;a=summary http://sources.redhat.com/git/ 又如 udev 项目也是严重与内核版本依赖的,也不与内核一起编译;只有文档描述哪些 udev 版本对应哪些内核版本可以工作,非任意匹配。 From xiyou.wangcong在gmail.com Fri Apr 16 14:13:38 2010 From: xiyou.wangcong在gmail.com (Amerigo Wang) Date: Fri, 16 Apr 2010 14:13:38 +0800 Subject: =?utf-8?B?5pyJ5rKh5pyJ5Lq65YGa6L+H5Zyo?= =?utf-8?B?5YaF5qC45Luj56CB5qCR6YeM5re75Yqg5bqU55So56iL5bqP77yf?= In-Reply-To: References: Message-ID: <20100416061338.GA4568@cr0.nay.redhat.com> On Fri, Apr 16, 2010 at 01:09:29PM +0800, Liu Lei wrote: >大家好: > > 因为部分应用程序和内核的特定版本相关。 > 所以把这些应用程序也丢到了内核树的自定义目录中,通过git维护,以便co某个特定内核版本同时获得复合的应用程序。 > 通常没必要非得去和内核放一起,那样包管理起来也不方便。 > 现在想将这些应用程序也像内核模块一样添加到Kconfig和Makefile中。 > 但是看了一下内核根下的Makefile,有点头大。 > > 有没有人做过类似的工作?能否共享一下。 > 你可以参考perf,见源代码:tools/perf/。 From orphen.leiliu在gmail.com Fri Apr 16 14:24:38 2010 From: orphen.leiliu在gmail.com (Liu Lei) Date: Fri, 16 Apr 2010 14:24:38 +0800 Subject: =?GB2312?B?UmU6INPQw7vT0MjL1/a5/dTaxNq6y7T6wuvK98DvzO2809Om08M=?= =?GB2312?B?s8zQ8qO/?= In-Reply-To: References: <16A98E94-EF91-4572-A989-AB608DB09C5D@gmail.com> Message-ID: <73BBD5D2-13B8-43A2-AA68-50150911C514@gmail.com> 在 2010-4-16,下午2:10, Adam Jiang 写道: > 2010/4/16 Liu Lei : >> >> 在 2010-4-16,下午1:48, Adam Jiang 写道: >> >>> 2010/4/16 Liu Lei : >>>> 大家好: >>>> >>>> 因为部分应用程序和内核的特定版本相关。 >>>> 所以把这些应用程序也丢到了内核树的自定义目录中,通过git维护,以便co某个特定内核版本同时获得复合的应用程序。 >>>> >>>> 现在想将这些应用程序也像内核模块一样添加到Kconfig和Makefile中。 >>>> 但是看了一下内核根下的Makefile,有点头大。 >>>> >>>> 有没有人做过类似的工作?能否共享一下。 >>> >>> 你想要的应该是一个Makesystem而不是在内核里面添加应用程序。 >>> 难道不能这样组织么?比如: >>> >>> -- git repository of kernel >>> -- another repository of application >>> -- yet another repository of makesystem >>> >>> 你可以自己做一个简易的makesystem,在其中让你的application依赖于kernel编译成功。 >>> 每次编译的时候只需要make整个project就好了。 > >> 感谢您的回复。 >> 我明白您的意思,就是做一个整体的项目树,包含内核和应用程序的。类似OpenWRT这种方式的,构建整个系统的。 >> >> 不过因为我的内核树其实是官方stable的git在本地创建出的一个branch。 >> 所以,如果采用上面的方式,似乎不太方便pull官方的git树。 > > 这样的话实质的问题是如何将官方的git树pull下来,而不是如何将应用程序加入内核的source tree里面去,对否? > > 如果要pull官方的kernel > source,通常应该是保持代码更新同步或者类似目的,如果逻辑很复杂,你可以用简单的perl/python脚本来解决问题。然后将这些脚本定义为SCRIPT_TARGET,给它一些合理的依赖条件,make的时候检查版本pull下来就好了。 > > 只是稍微费点功夫。 > > 将应用程序代码加入kernel代码里面可不是个好主意,倒不是因为不能做。 > > /大头阿当 其实,我这边还是以内核为主进行开发的,应用程序比较少。 主要目的就是保证co某个内核branch时,应用程序是正确的版本。 之前也是分开管理的,但是感觉很混乱,因为临时的branch很多,经常需要仔细寻找对应的应用版本。 我大概看了一下tools/perf,可惜没着到主Makefile在哪里调用了tools/perf/Makefile。 望指教。 致 礼! ──────────────────────────── Liu Lei From winricky在gmail.com Fri Apr 16 16:11:05 2010 From: winricky在gmail.com (Tong Xuan) Date: Fri, 16 Apr 2010 16:11:05 +0800 Subject: =?UTF-8?B?55So5oi356iL5bqP5ZKM6amx5Yqo5aaC5L2V5ZCM5q2l77yf?= Message-ID: 用户程序通过mmap映射了一页内存,然后用ioctl给驱动发指令,驱动将该内存数据发送出去 但在驱动发送数据的过程中,不希望用户空间修改内存,应该保持阻塞,直到驱动发完数据 这其中还需要DMA发送数据 对中间的同步过程不太理解,内核中有例子更好了 请指点,谢谢 From yuhh.hikvision在gmail.com Fri Apr 16 20:52:40 2010 From: yuhh.hikvision在gmail.com (=?UTF-8?B?5L+e54SV54SV?=) Date: Fri, 16 Apr 2010 20:52:40 +0800 Subject: =?UTF-8?B?55So5oi356iL5bqP5ZKM6amx5Yqo5aaC5L2V5ZCM5q2l77yf?= In-Reply-To: References: Message-ID: <4BC85D98.9080506@gmail.com> Tong Xuan 写道: > 用户程序通过mmap映射了一页内存,然后用ioctl给驱动发指令,驱动将该内存数据发送出去 > 但在驱动发送数据的过程中,不希望用户空间修改内存,应该保持阻塞,直到驱动发完数据 > hi Tong Xuan: 你已经说了,ioctl阻塞到发完数据再返回就可以,‘阻塞’则调用ioctl的用户线程 /进程就挂起了,也就没有机会访问这段内存了,但注意其他线程/ 进程还是可以 访问这段内存的! > 这其中还需要DMA发送数据 > 对中间的同步过程不太理解,内核中有例子更好了 > 请指点,谢谢 > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From winricky在gmail.com Fri Apr 16 22:00:37 2010 From: winricky在gmail.com (Tong Xuan) Date: Fri, 16 Apr 2010 22:00:37 +0800 Subject: =?UTF-8?B?UmU6IOeUqOaIt+eoi+W6j+WSjOmpseWKqOWmguS9leWQjOatpe+8nw==?= In-Reply-To: <4BC85D98.9080506@gmail.com> References: <4BC85D98.9080506@gmail.com> Message-ID: 谢谢 我在ioctl启动DMA传输之后,把自己挂载到一个等待队列上,在DMA中唤醒队列 在 2010年4月16日 下午8:52,俞焕焕 写道: > Tong Xuan 写道: >> >> 用户程序通过mmap映射了一页内存,然后用ioctl给驱动发指令,驱动将该内存数据发送出去 >> 但在驱动发送数据的过程中,不希望用户空间修改内存,应该保持阻塞,直到驱动发完数据 >> > > hi Tong Xuan: > 你已经说了,ioctl阻塞到发完数据再返回就可以,‘阻塞’则调用ioctl的用户线程 /进程就挂起了,也就没有机会访问这段内存了,但注意其他线程/ > 进程还是可以 访问这段内存的! > >> 这其中还需要DMA发送数据 >> 对中间的同步过程不太理解,内核中有例子更好了 >> 请指点,谢谢 >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > > From qingshenlwy在gmail.com Fri Apr 16 22:37:49 2010 From: qingshenlwy在gmail.com (Wenyi Liu) Date: Fri, 16 Apr 2010 22:37:49 +0800 Subject: =?GB2312?B?UmU6INPQw7vT0MjL1/a5/dTaxNq6y7T6wuvK98DvzO2809Om?= =?GB2312?B?08OzzNDyo78=?= In-Reply-To: References: Message-ID: 建议你看看perf,这个就是跟内核特定版本相关的工具,也是一个已经进入git树的应用程序。 应用程序在tools/perf目录下,还有个内核相关的源码在kernel/perf_event.c。 在 2010年4月16日 下午1:09,Liu Lei 写道: > 大家好: > > 因为部分应用程序和内核的特定版本相关。 > 所以把这些应用程序也丢到了内核树的自定义目录中,通过git维护,以便co某个特定内核版本同时获得复合的应用程序。 > > 现在想将这些应用程序也像内核模块一样添加到Kconfig和Makefile中。 > 但是看了一下内核根下的Makefile,有点头大。 > > 有没有人做过类似的工作?能否共享一下。 > > 致 > 礼! > > ──────────────────────────── > Liu Lei > > > > > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From tom.leiming在gmail.com Fri Apr 16 23:23:50 2010 From: tom.leiming在gmail.com (Ming Lei) Date: Fri, 16 Apr 2010 23:23:50 +0800 Subject: =?GB2312?B?UmU6INPQw7vT0MjL1/a5/dTaxNq6y7T6wuvK98DvzO2809Om?= =?GB2312?B?08OzzNDyo78=?= In-Reply-To: <20100416061338.GA4568@cr0.nay.redhat.com> References: <20100416061338.GA4568@cr0.nay.redhat.com> Message-ID: 在 2010年4月16日 下午2:13,Amerigo Wang 写道: > On Fri, Apr 16, 2010 at 01:09:29PM +0800, Liu Lei wrote: >>大家好: >> >> 因为部分应用程序和内核的特定版本相关。 >> 所以把这些应用程序也丢到了内核树的自定义目录中,通过git维护,以便co某个特定内核版本同时获得复合的应用程序。 >> > > > 通常没必要非得去和内核放一起,那样包管理起来也不方便。 > > >> 现在想将这些应用程序也像内核模块一样添加到Kconfig和Makefile中。 >> 但是看了一下内核根下的Makefile,有点头大。 >> >> 有没有人做过类似的工作?能否共享一下。 >> > > 你可以参考perf,见源代码:tools/perf/。 当时perf要进入mainline时候,好多大佬都不同意,最后好像Ingo说 先尝试进入看看效果如何,结果才得以进入。 其实把application并入mainline有好处: 容易吸引开发者,和kernel绑定, 版本配合好; 当然也有坏处: 易于导致ABI接口随意定义和改动; 容易开个"坏的"开端. 具体的争论可以到以前的lkml.org上搜索。 -- Lei Ming From kouucocu在126.com Sat Apr 17 13:39:26 2010 From: kouucocu在126.com (kouucocu) Date: Sat, 17 Apr 2010 13:39:26 +0800 (CST) Subject: =?gbk?B?zai5/W1tYXC2wc7EvP4sIL34s8zK1bW9U0lHQlVTtvjNy7P2?= Message-ID: <1d3eb3c.2b7c.1280a47554d.Coremail.kouucocu@126.com> http://linux.chinaunix.net/bbs/thread-1162037-1-1.html 最近注意到这样一个现象: 使用mmap映射一个文件以后, 如果文件大小被其他进程减小, 则访问map以内 文件大小以外的内存时, 进程将收到SIGBUS信号而退出. 设有进程A和B. 进程A 通过 mmap 映射一个普通文件, 设映射的到内存的起始地址为p, 大小为a(单位为page大小, 以下都使用相同的单位). 进程B 将该文件的size减小为b(b, Message-ID: <201004171422264848174@163.com> 最近在研究socket,但是当我看完内核相关代码的时候,对什么是socket? 却没有一点理解了! > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org _______________________________________________ Linux 内核开发中文邮件列表 Linux-kernel在zh-kernel.org http://zh-kernel.org/mailman/listinfo/linux-kernel Linux 内核开发中文社区: http://zh-kernel.org From jiayanchung在gmail.com Sat Apr 17 14:38:15 2010 From: jiayanchung在gmail.com (Juan Chung) Date: Sat, 17 Apr 2010 14:38:15 +0800 Subject: =?UTF-8?B?5Yiw5bqV5LuA5LmI5pivc29ja2V0?= In-Reply-To: <201004171422264848174@163.com> References: , <201004171422264848174@163.com> Message-ID: <4BC95757.5070009@gmail.com> wiki里有介绍什么是socket。看上面的文章对你理解什么是socket有帮助。 内核的socket是实现了,如果不知道规范就看实现确实会很吃力,就象不知道需求 但要写出满足需求的代码来一样。 On 04/17/2010 02:22 PM, yanan_111 wrote: > > 最近在研究socket,但是当我看完内核相关代码的时候,对什么是socket? 却没有一点理解了! > >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org >> > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From lujing9101在gmail.com Sat Apr 17 15:24:05 2010 From: lujing9101在gmail.com (lu) Date: Sat, 17 Apr 2010 15:24:05 +0800 Subject: =?GB2312?B?1PXDtMzhuN/N+L+oytW3orD8tcTQ1MTc?= Message-ID: 怎么提高网卡收发包的性能,我的测试结果是一个cpu只能处理每秒4k个包,这个中断号又不能再多个CPU上均衡处理,大家可不可以给点思路我,谢谢! From cyrusyzgtt在gmail.com Sat Apr 17 18:52:38 2010 From: cyrusyzgtt在gmail.com (CyrusYzgTt) Date: Sat, 17 Apr 2010 18:52:38 +0800 Subject: =?UTF-8?B?5pyJ5rKh5pyJ5Lq65YGa6L+H5Zyo5YaF5qC45Luj56CB5qCR6YeM?= =?UTF-8?B?5re75Yqg5bqU55So56iL5bqP77yf?= In-Reply-To: References: Message-ID: <4BC992F6.5050608@gmail.com> 我以外行人的看法是,[西***厢**计***划]*****貌似// 于 2010年04月16日 13:09, Liu Lei 写道: > 大家好: > > 因为部分应用程序和内核的特定版本相关。 > 所以把这些应用程序也丢到了内核树的自定义目录中,通过git维护,以便co某个特定内核版本同时获得复合的应用程序。 > > 现在想将这些应用程序也像内核模块一样添加到Kconfig和Makefile中。 > 但是看了一下内核根下的Makefile,有点头大。 > > 有没有人做过类似的工作?能否共享一下。 > > 致 > 礼! > > ──────────────────────────── > Liu Lei > > > > > > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org From yangxq在ustc.edu Sat Apr 17 19:34:51 2010 From: yangxq在ustc.edu (Yang) Date: Sat, 17 Apr 2010 19:34:51 +0800 Subject: =?gb2312?B?UmU6IFJlOrW9tdfKssO0ysdzb2NrZXQ=?= Message-ID: <4BC99CD8.06F39D.22752@ustc.edu> Juan Chung,您好! socket 其实是只是一个整数,但是该整数是和文件描述符联系在一起的,相当于一个文件,可以由这个文件来读取或者写入数据。 ======= 2010-04-17 14:38:15 您在来信中写道:======= >wiki里有介绍什么是socket。看上面的文章对你理解什么是socket有帮助。 > >内核的socket是实现了,如果不知道规范就看实现确实会很吃力,就象不知道需求 >但要写出满足需求的代码来一样。 > > >On 04/17/2010 02:22 PM, yanan_111 wrote: >> >> 最近在研究socket,但是当我看完内核相关代码的时候,对什么是socket? 却没有一点理解了! >> >>> Linux 内核开发中文邮件列表 >>> Linux-kernel在zh-kernel.org >>> http://zh-kernel.org/mailman/listinfo/linux-kernel >>> Linux 内核开发中文社区: http://zh-kernel.org >>> >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org >> _______________________________________________ >> Linux 内核开发中文邮件列表 >> Linux-kernel在zh-kernel.org >> http://zh-kernel.org/mailman/listinfo/linux-kernel >> Linux 内核开发中文社区: http://zh-kernel.org > >_______________________________________________ >Linux 内核开发中文邮件列表 >Linux-kernel在zh-kernel.org >http://zh-kernel.org/mailman/listinfo/linux-kernel >Linux 内核开发中文社区: http://zh-kernel.org = = = = = = = = = = = = = = = = = = = =         致 礼!         Yang         yangxq在ustc.edu           2010-04-17 From gongfan193在gmail.com Sat Apr 17 20:51:48 2010 From: gongfan193在gmail.com (Drunkard Zhang) Date: Sat, 17 Apr 2010 20:51:48 +0800 Subject: =?UTF-8?B?UmU6IOaAjuS5iOaPkOmrmOe9keWNoeaUtuWPkeWMheeahOaAp+iDvQ==?= In-Reply-To: References: Message-ID: 在 2010年4月17日 下午3:24,lu 写道: > 怎么提高网卡收发包的性能,我的测试结果是一个cpu只能处理每秒4k个包,这个中断号又不能再多个CPU上均衡处理,大家可不可以给点思路我,谢谢! 愚见:对硬件调整的余地很小,主要从各种内核缓冲区入手调整比价容易见效。可以参照一下10G网卡性能调优部分。 http://www.myri.com/Myri-10G/ > _______________________________________________ > Linux 内核开发中文邮件列表 > Linux-kernel在zh-kernel.org > http://zh-kernel.org/mailman/listinfo/linux-kernel > Linux 内核开发中文社区: http://zh-kernel.org -- 张绍文 gongfan193在gmail.com zhangsw在gwbnsh.net.cn 18601633785 From yangxq在ustc.edu Sun Apr 18 01:11:56 2010 From: yangxq在ustc.edu (Yang) Date: Sun, 18 Apr 2010 01:11:56 +0800 Subject: =?gb2312?B?UmU6IFJlOiDU9cO0zOG43834v6jK1beisPy1xNDUxNw=?= Message-ID: <4BC9EBDA.06FB71.22752@ustc.edu> Drunkard Zhang,您好! 减少中断(包括系统调用) 减少内存复制 减少处理过程,比如采用短路方式。 ======= 2010-04-17 20:51:48 您在来信中写道:======= >在 2010年4月17日 下午3:24,lu 写道: >> 怎么提高网卡收发包的性能,我的测试结果是一