嗯,今天又进了一步,把通信缓冲区从固定内存区域转为由Linux内核内存管理系统自己来管理,其实最开始就是这么做的,不过前一段双系统调试的时候为了减少出错点才移了出去,现在只是移回来
要改的地方很少,就是时间长了点忘记了两处,结果oops了好几次才找到,老啦 sigh~~
早上开会的时候突然想到,如果在内核tcpip实现中把根据mtu切割和组合packet包的地方改掉,那少了这部分开销,估计性能会有一个比较大的提高呢,不过这个肯定是要建立在一次拷贝的基础上了,不然就得搞变长通信缓冲区(似乎也行啊),不知道。先实现了一次拷贝的版本再说吧
不知道是不是犯了过早优化的错误,最近the art of unix programming看多了。。
嗯,今天还遇到kmalloc的大小限制的问题,这个比较郁闷,需要解决了
目前紧要的任务还是一次拷贝版本和处理器间中断的版本,不过一次拷贝版本改动太大,一直发懒不想搞,而处理器间中断又要去熟悉APIC,虽然改动不太大,不过总感觉性能上不一定好,试试看吧。。。
阅读(1099) | 评论(0) | 转发(0) |