主题:[讨论] ESM3354 读取串口 性能瓶颈 共有54014人关注过本帖 |
---|
barrypp |
1楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
[讨论] ESM3354 读取串口 性能瓶颈 Post By:2017-1-25 10:52:00 [只看该作者]
刚刚试了试,
程序仅仅读串口, 串口数据流量: 比较均匀的 32000字节/秒 就导致接近20%的cpu占用率,并且都是那个kworker占用的。 我不是很理解为啥会有这么高的cpu占用率?
|
单帖管理 | 引用 | 回复 |
lgz |
2楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-1-25 13:05:00 [只看该作者]
你好:
3354的串口收发没有使用dma,所以收发数据都会占用CPU,CPU占用率就会比较高
使用top查看CPU占用率并不准确
[此贴子已经被作者于2017-1-25 13:15:21编辑过]
|
单帖管理 | 引用 | 回复 |
barrypp |
3楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2017-1-25 15:03:00 [只看该作者]
除了top外,有哪些好用的开源工具来查看cpu占用率呢?
另外usb是不是也是这样的,接收数据时看起来cpu占用率也很高
[此贴子已经被作者于2017-1-25 15:07:31编辑过]
|
单帖管理 | 引用 | 回复 |
lgz |
4楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-1-25 15:22:00 [只看该作者]
你好
top是常用的了,CPU占用率计算的机制造成的占用率计算不准确,所有软件都一样的
usb有使用dma,USB数据量比较大
|
单帖管理 | 引用 | 回复 |
barrypp |
5楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2017-2-3 9:51:00 [只看该作者]
试了试FTDI的D2XX驱动。看起来cpu占用率依旧很高。开启DMA需要特殊的操作么?
|
单帖管理 | 引用 | 回复 |
lgz |
6楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-2-3 15:36:00 [只看该作者]
你好,是否使用dma是驱动里面的代码决定的
|
单帖管理 | 引用 | 回复 |
barrypp |
7楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2017-2-4 19:43:00 [只看该作者]
根据https://e2e.ti.com/support/arm/sitara_arm/f/791/t/550336,http://processors.wiki.ti.com/index.php/Sitara_Linux_UART_-_Switching_to_8250_Driver,https://e2e.ti.com/support/embedded/linux/f/354/t/485284,似乎AM3354最新的驱动可以支持UART(H/W flow control) + DMA
|
单帖管理 | 引用 | 回复 |
lgz |
8楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-2-6 10:00:00 [只看该作者]
你好,谢谢提供的信息,我们目前还没有支持使用dma,要支持使用dma的驱动我们还需要做些修改测试,有结果了会立即通知你
|
单帖管理 | 引用 | 回复 |
lgz |
9楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-2-6 12:54:00 [只看该作者]
请问你需要支持硬件流控吗
|
单帖管理 | 引用 | 回复 |
barrypp |
10楼 |
Post By:2017-2-7 9:11:00 [只看该作者]
需要
|
|
单帖管理 | 引用 | 回复 |
barrypp |
11楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2017-2-7 9:24:00 [只看该作者]
需要硬件流控
|
单帖管理 | 引用 | 回复 |
lgz |
12楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-2-7 9:53:00 [只看该作者]
我们只有COM2(ttyS1)有引出硬件流控的管脚,其他串口不支持硬件流控,需要硬件流控我们还要修改一下,现在dma的驱动已经测试了
|
单帖管理 | 引用 | 回复 |
lgz |
13楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-2-7 14:33:00 [只看该作者]
使用硬件流控,如果CTS信号频繁变化的话,CPU占用率还是会很高的,处理CTS是在中断中,与是否使用DMA无关,我先给你发一个测试的,使用dma收发支持硬件流控,你测试一下,发你邮箱了barry-hp@163.com,
|
单帖管理 | 引用 | 回复 |
barrypp |
14楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2017-2-11 0:22:00 [只看该作者]
使用DMA后,串口的输入缓冲区依旧是4K么?
|
单帖管理 | 引用 | 回复 |
lgz |
15楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-2-13 9:13:00 [只看该作者]
是对,除了使用dma收发数据,其他没有变化
|
单帖管理 | 引用 | 回复 |
barrypp |
16楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2017-2-13 10:44:00 [只看该作者]
使用dma后性能确实不错,同样的环境下,kworker仅有3%~5%
|
单帖管理 | 引用 | 回复 |
lgz |
17楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-2-13 16:02:00 [只看该作者]
那就好,再次感谢你提供的串口dma驱动相关的信息
|
单帖管理 | 引用 | 回复 |
barrypp |
18楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2017-2-14 12:21:00 [只看该作者]
有个严重问题,使用新内核后,eta503的驱动就没法载入了
insmod 返回 can't insert '/lib/modules/4.1.6/eta503_seria.ko' : unkown symbol in module or invalid parameter
[此贴子已经被作者于2017-2-14 12:23:19编辑过]
|
单帖管理 | 引用 | 回复 |
lgz |
19楼 信息 | 搜索 | 邮箱 |
加好友 发短信 员工 |
Post By:2017-2-14 13:57:00 [只看该作者]
已经更新,邮件发给你了
|
单帖管理 | 引用 | 回复 |
barrypp |
20楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2017-2-14 15:00:00 [只看该作者]
新的bug,eta503的驱动载入后,/dev目录下没有扩展串口
dmesg里的eta503驱动的信息是 [ 10.150791] ->eta503_serial_probe [ 10.154243] eta503_serial_probe: ETA503(4 ports) are found [ 10.159829] of_get_named_gpiod_flags: can't parse 'gpio-irq' property of node '/eta503[0]' [ 10.159845] eta503_uart eta503: can't get irq -2 [ 10.164488] <-eta503_serial_probe -2 [ 10.170294] eta503_uart: probe of eta503 failed with error -2 [此贴子已经被作者于2017-2-14 15:06:00编辑过]
|
单帖管理 | 引用 | 回复 |