8201|12

2144

帖子

3

TA的资源

五彩晶圆(中级)

楼主
 

helper2416_rawos_netio网速测试 [复制链接]

NETIO算是一个比较精简的网络测试工具吧,具体地址如下
http://www.nwlab.net/art/netio/netio.html


我把他添加到rawos中,想测试下网络底层的性能,这个代码在lwip/app/netio中,添加了命令行注册。

好吧,这个也不太成功,想让rawos作者帮忙看一下,仿真器跟踪了一下,可能是lwip配置问题或者是lan9220接收中断处理的问题,实际现象是在中断接收函数中此处问题
  1. block_ret = raw_block_allocate(e_mem_pool, &block_addr);
  2.                                 if (block_ret == RAW_SUCCESS) {
复制代码

这里分配不到内存了,尝试改大eth_mem_pool问题依旧,不一定是这里的问题,可能是其他地方导致的,上传netio的文件,直接添加到原始工程中就能测试,大家帮忙测试下,或者版主也可以测试下,看看是否有问题。

我先在windows上面使用tcpudp 调试工具模拟一个netio服务器,用netio命令行测试了一下,由于不能双向,只能看到发送的


好了后面是我的测试,结果,代码可以直接参考我上传的包或者lwip/app中的netio下的



1)先启动他


2)执行netio


3)ping一下看看是否通


4)执行结果


5)调试相关


从我的分析看,我怀疑是第一个发送的过程还没有结束,netio命令行超时发送三次后退出,前面已经用debug工具在windows上面测试,验证netio命令行是ok的,发送无问题。

那么只能是板子上面的问题,netio命令行的工作流程应该是发送出去然后发送空包,这样板子才会发送数据给netio命令行,这时候他在统计接收的速度。
  1. static err_t netio_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
  2. {

  3.         LWIP_UNUSED_ARG(arg);

  4.         if (err == ERR_OK && p != NULL) {
  5.                 DEBUG0(">>netio_recv--1");
  6.                 tcp_recved(pcb, p->tot_len);
  7.                 pbuf_free(p);
  8.         } else {
  9.                 pbuf_free(p);
  10.         }

  11.         if (err == ERR_OK && p == NULL) {
  12.                 DEBUG0(">>netio_recv--2");
  13.                 tcp_arg(pcb, NULL);
  14.                 tcp_sent(pcb, NULL);
  15.                 tcp_recv(pcb, NULL);
  16.                 tcp_close(pcb);
  17.         }

  18.         return ERR_OK;
  19. }
复制代码
可以从上面的代码看到,当P==NULL的时候证明是客户端(netio命令行)发送了空包。

如果不使用-b 指定大小的话他会连续执行 一个序列的大小包来测试,会有多个 发送--接收   发送--接收 。。。

NetIO.zip (1.5 KB, 下载次数: 62)

NetIO.zip (1.5 KB, 下载次数: 62)

最新回复

本帖最后由 jorya_txj 于 2014-9-1 16:04 编辑 分配内存不足,还有一种可能性是上层任务的优先级开的过高而且长时间占用cpu.网卡驱动那块接收数据开了一个优先级为5的workqueue, 代码在lan9220_process.c 中,你也可以把eth_rx_buf 这个数组调大,比如RAW_U32 eth_rx_buf[2048*5] 再把raw_block_pool_create(ð_mem_pool, "eth_mem_pool", 2048, eth_rx_buf, 2048*4); 这句话也调大内存看看, 比如raw_block_pool_create(ð_mem_pool, "eth_mem_pool", 2048, eth_rx_buf, 2048*20)。  详情 回复 发表于 2014-9-1 16:02
点赞 关注
个人签名电工

回复
举报

2144

帖子

3

TA的资源

五彩晶圆(中级)

沙发
 
先发上来,大家试试看,不知道流程有没有问题,主要是需要调用netio_init启动netio服务

我再去找找问题
 
个人签名电工
 

回复

554

帖子

0

TA的资源

版主

板凳
 
记得之前在linux下做过测试,时间久远了,忘记了。。。

点评

恩 我用wireshark抓包分析下吧 老大看下这篇帖子啊 https://bbs.eeworld.com.cn/thread-446549-1-1.html 已经把lua搞到rawos下面了  详情 回复 发表于 2014-8-30 17:58
 
个人签名My dreams will go on...
http://www.jyxtec.com
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

4
 
spacexplorer 发表于 2014-8-30 16:51
记得之前在linux下做过测试,时间久远了,忘记了。。。

恩  我用wireshark抓包分析下吧
老大看下这篇帖子啊   https://bbs.eeworld.com.cn/thread-446549-1-1.html  

已经把lua搞到rawos下面了


点评

很好的组件移植。  详情 回复 发表于 2014-9-1 15:47
 
个人签名电工
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

5
 
抓包看了下,TCP transmission windows full。。。这个有点尴尬,接收缓存满了,看最后一幅图,接了几次就full了,没来的及清缓存,这个看来不是我的问题哦,ping的数据很慢。这个netio客户端的数据很快,也比较多。
期待rawos作者帮忙分析一下

1)停止的地方细节


2)粗略图,使用tcp过滤,其他未显示


3)又测了一下


点评

看一下lwip的config文件是否能把tcp相关的配置开大点?驱动那块的内存移植应该不是问题,因为大数据量的tftp等测试过。如果说不是驱动问题的话,那应该是lwip的配置问题或者是应用问题。  详情 回复 发表于 2014-9-1 15:51
 
个人签名电工
 
 

回复

420

帖子

0

TA的资源

纯净的硅(初级)

6
 
lyzhangxiang 发表于 2014-8-30 17:58
恩  我用wireshark抓包分析下吧
老大看下这篇帖子啊   https://bbs.eeworld.com.cn/thread-446549-1-1.h ...

很好的组件移植。

点评

jorya_txj帮我看下啊,或者您直接用我上传的两个文件测试一下。。我感觉是lan9220的驱动有一点不太完善,不敢下结论,您测试下,给个方向我好去找问题啊  详情 回复 发表于 2014-9-1 15:50
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

7
 
jorya_txj 发表于 2014-9-1 15:47
很好的组件移植。

jorya_txj帮我看下啊,或者您直接用我上传的两个文件测试一下。。我感觉是lan9220的驱动有一点不太完善,不敢下结论,您测试下,给个方向我好去找问题啊

点评

加一下我的qq号码,方便沟通。  详情 回复 发表于 2014-9-1 15:52
 
个人签名电工
 
 

回复

420

帖子

0

TA的资源

纯净的硅(初级)

8
 
lyzhangxiang 发表于 2014-8-30 18:02
抓包看了下,TCP transmission windows full。。。这个有点尴尬,接收缓存满了,看最后一幅图,接了几次就f ...

看一下lwip的config文件是否能把tcp相关的配置开大点?驱动那块的内存移植应该不是问题,因为大数据量的tftp等测试过。如果说不是驱动问题的话,那应该是lwip的配置问题或者是应用问题。
 
 
 

回复

420

帖子

0

TA的资源

纯净的硅(初级)

9
 
lyzhangxiang 发表于 2014-9-1 15:50
jorya_txj帮我看下啊,或者您直接用我上传的两个文件测试一下。。我感觉是lan9220的驱动有一点不太完善, ...

加一下我的qq号码,方便沟通。

点评

好的 私信您了 晚上回去找您 找了很久问题了opt配置我改过  详情 回复 发表于 2014-9-1 15:58
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

10
 
jorya_txj 发表于 2014-9-1 15:52
加一下我的qq号码,方便沟通。

好的 私信您了 晚上回去找您
找了很久问题了opt配置我改过
 
个人签名电工
 
 

回复

420

帖子

0

TA的资源

纯净的硅(初级)

11
 
本帖最后由 jorya_txj 于 2014-9-1 16:04 编辑

分配内存不足,还有一种可能性是上层任务的优先级开的过高而且长时间占用cpu.网卡驱动那块接收数据开了一个优先级为5的workqueue, 代码在lan9220_process.c 中,你也可以把eth_rx_buf 这个数组调大,比如RAW_U32 eth_rx_buf[2048*5] 再把raw_block_pool_create(ð_mem_pool, "eth_mem_pool", 2048, eth_rx_buf, 2048*4); 这句话也调大内存看看, 比如raw_block_pool_create(ð_mem_pool, "eth_mem_pool", 2048, eth_rx_buf, 2048*20)。

点评

晚上回去和您讨论 试了很多方法,对于rawos的一些机制不太了解,所以关于这一块的都没怎么去看  详情 回复 发表于 2014-9-1 16:40
我统一调整了这三个地方是10240都不行哦  详情 回复 发表于 2014-9-1 16:36
 
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

12
 
jorya_txj 发表于 2014-9-1 16:02
分配内存不足,还有一种可能性是上层任务的优先级开的过高而且长时间占用cpu.网卡驱动那块接收数据开了一个 ...

我统一调整了这三个地方是10240都不行哦
 
个人签名电工
 
 

回复

2144

帖子

3

TA的资源

五彩晶圆(中级)

13
 
jorya_txj 发表于 2014-9-1 16:02
分配内存不足,还有一种可能性是上层任务的优先级开的过高而且长时间占用cpu.网卡驱动那块接收数据开了一个 ...

晚上回去和您讨论  试了很多方法,对于rawos的一些机制不太了解,所以关于这一块的都没怎么去看
 
个人签名电工
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表